开篇词
Linux 文件系统层次结构标准是由 Linux 基金会进行维护的,它定义了各种 Linux 分发版里目录的结构以及各目录所包含的内容。
Linux 的世界里:万物皆文件。
分发版 CentOS 7 的文件系统层次结构
文件系统层次结构
我们可以来一起看一下系统根路径下个目录的职责和作用:
bin
存放的是软链接文件,连接的源头是用户的可执行二进制文件存放目录:/usr/bin。
boot
系统在启动期间会用到的一些文件。
dev
由系统底层的硬件设备映射而来的文件。
etc
存放了绝大部分程序的配置文件。
home
存放了用户的各种信息,包括用户所对应的启动参数和执行脚本等等。
lib
存放的是软链接文件,连接的源头是内核模块文件、静态库文件以及动态库文件的存放目录:/usr/lib。
lib64
存放的是软链接文件,连接的源头是 64 位的库文件存放目录:/usr/lib64。
media
存放的是可移动设备挂载点文件。
mnt
存放的是临时挂载点文件。
opt
存放的是第三方应用程序文件。
proc
存放的是内核详情映射文件。
root
根(root)用户的主目录。
sbin
存放的是软链接文件,连接的源头是管理员用户的可执行二进制文件存放目录:/usr/sbin。
sys
存放的是硬件详情映射文件,同时,它也是一个伪文件系统。
tmp
通常用于存放装完立马删除的安装包或压缩包等临时文件。
var
存放的是经常进行变更操作的文件,最典型的就是日志文件。
文件类型
当我们使用 ll 命令来列出一个目录里的文件时,输出结果里,每一行信息的第一个字符,代表了对应文件的类型。Linux 系统里的 7 种文件类型可以被归纳为三大类:
- 普通文件;
- 目录文件;
- 特殊文件。
我们来分别看一下这 7 种文件类型分别代表什么:
d(目录文件)
表示该行所对应的是目录文件。
-(普通文件)
表示该行所对应的是普通文件。
l(特殊文件)
表示该行所对应的是链接文件(也就是 Windows 里的快捷方式,但在 Linux 里,存在两种链接。软链接是比较常见的一种,还有一种是不怎么常见的硬链接)。
c(特殊文件)
表示该行所对应的是字符设备(character device)文件。
s(特殊文件)
表示该行所对应的是套接字(socket)文件。
b(特殊文件)
表示该行所对应的是块(block)文件。
p(特殊文件)
表示该行所对应的是命名管道(named pipe)文件。
文件命名规范
- 长度不能超过 255 个字符;
- 文件名不能包含斜线(/);
- 文件名大小写敏感。
文件路径
- 相对路径:从当前目录开始,类似于 ./…
-
绝对路径:从根目录开始,类似于 /…
我所撰写的英文版本
引用
文件系统层级标准、“另一个” 文件系统层级标准、细谈 Linux/Unix 文件类型、Linux 文件命名规范。