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 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步