This is my blogs |

kongshuo

园龄:4年粉丝:26关注:6

Linux文件

Linux文件系统层次结构

Linux系统一切皆文件!

->Linux系统中的所有文件都存储在文件系统中,整个文件系统是一棵颠倒过来的树形结构,这个结构被称作文件系统层次结构,根目录(/)在顶部,下方延伸出来的子目录是这棵树的分支,且从根目录到下面的任一文件有且仅有一条路径。
->注意:/这个字符还用作文件名中的目录分隔符,例如/etc/issue这个文件,第一个/字符代表根目录,第二个/字符代表etc和issue两个文件之间的分隔符,且issue一定是/etc文件下面的一个子目录。

重要目录

/usr -> 存放普通用户命令(/usr/bin)、供root用户使用的系统管理命令(/usr/sbin)、及安装的软件等数据。
/etc -> 存放系统服务的配置文件。
/dev -> 存放设备文件,例如硬盘、cpu、网卡等数据。
/home -> 普通用户的家目录(或主目录),存放普通用户的配置文件。
/root -> root用户的家目录(或主目录),存放root用户的配置文件。
/boot -> 存放系统启动过程所需的文件。
/var -> 存放动态变化的文件,例如日志文件、缓存文件、数据库等。
/tmp -> 存放临时文件,10天内未访问更改的文件将自动删除。
/run -> 存放上一次系统启动过的进程文件。

4个链接文件

当查看这些链接文件的时候,系统会自动显示指向的对应文件内容

/bin -> /usr/bin -> 存放普通用户使用的命令。
/sbin -> /usr/sbin -> 存放root用户使用的命令。(s -> super!)
/lib -> /usr/lib
/lib64 -> /usr/lib64

绝对路径

绝对路径 -> 以“/”开头的所有路径都是绝对路径,这里的“/”指的是根分区,而不是文件之间的分隔符!

如:/etc/crontab

每一个文件有且仅有一个绝对路径!

相对路径

相对路径 -> 不以/开头的路径都是相对路径

如:etc/crontab

通配符

*号简单模式匹配 -> 由0个或更多字符组成的字符串
?号简单模式匹配 -> 任何1个字符
{ }大括号扩展 -> 批量执行命令,可以连续使用或者嵌套使用
[root@localhost /]# echo file{a{1,2},b,c}.log
filea1.log filea2.log fileb.log filec.log
[root@localhost /]# echo file{a,b,c}{1..3}.log
filea1.log filea2.log filea3.log fileb1.log fileb2.log fileb3.log filec1.log filec2.log filec3.log
``反引号命令替换 ->
[root@localhost /]# echo today is 'date +%X%x'
today is 12:59:11 PM03/13/2019
\反斜杠转意字符 ->
[root@localhost /]# echo the hostname is &HOSTNAME
the hostname is &HOSTNAME

文件描述符

标准输入(stdin)、标准输出(stdout)、标准错误(stderr)

在linux中,一个运行的程序(或称为进程)需要通过shell从键盘读取输入并将输出写入到终端或者文件。进程使用一个名为文件描述符的编号通道来获取输入并发送输出。所有进程在开始时至少需要具有三个文件描述符:标准输入(通道0)标准输出(通道1)标准错误(通道2)

重定向操作符

重定向符 -> 覆盖写入 -> 文件里的原有数据不保留
追加重定向符 -> 追加写入 -> 不覆盖已有内容,直接写在文件末尾,原数据保留

root@localhost /]# touch err.txt
[root@localhost /]# systemctl restart unbound
Failed to restart unbound.service: Unit not found.
[root@localhost /]# systemctl restart unbound 2>err.txt
[root@localhost /]# cat err.txt
Failed to restart unbound.service: Unit not found.

管道

管道是一个或多个命令的序列,由管道字符 | 分隔。将前面的执行结果丢到管道符后面的命令去执行。也可以形象地这么理解:数据从一个进程经管道“流向”另一个进程。

[root@chenglu etc]# ls | grep ssh
ssh
[root@localhost /]# ls -l > 1.txt |tee less

注:管道符前面有重定向符号时,管道符后面要加上一个tee命令。

本文作者:kongshuo

本文链接:https://www.cnblogs.com/kongshuo/p/15545923.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   kongshuo  阅读(54)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起