# Linux 文件系统层次结构
## 目标
了解基本的文件系统布局、组织,以及重要文件类型的位置。
## 文件系统层次结构
Linux 中所有文件存储在文件系统中,它们被组织到一个颠倒的目录树中,称为文件系统层次结构。这棵树是颠倒的,因为树根在该层次结构的顶部,树根的下方延伸出目录和子目录的分支。
![](https://box.kancloud.cn/f075453374d52e3ae00def2b6c7a3a41_1182x648.png)
因为树根在该层次结构的顶部,树根的下方延伸出目录和子目录的分支。
/ 目录是根目录,位于文件系统层次结构的顶部。/ 字符还用作文件名中的目录分隔符。例如,如果 etc 是 / 目录的子目录,我们把它称为 /etc 目录。类似的,如果 /etc 目录包含一个名为 issue 的文件,我们将该文件指代为 /etc/issue。
/ 的子目录用于标准化的用途,以便根据文件和用途组织文件。这可以方便查找文件。例如,在根目录中,子目录 /boot 用于存储启动系统所需的文件。
## 注意
在描述文件系统目录内容时会遇到下列术语:
- 静态,保持不变的内容,除非以显示方式编辑或重新配置。
- 动态或可变,通常由活动进程修改或附加的内容。
- 永久,在重启后依然保留的内容,尤其是配置设置。
- 运行时,重启期间清除的进程或系统特定内容或属性。
下表根据名称和用途列出了系统中一些最重要的目录。
重要的 Red Hat Enterprise Linux 目录
| 位置 | 用途 |
| --- | --- |
| /usr | 安装软件、共享的库,包括文件和静态只读程序数据。重要的子目录有:<br>- /usr/bin:用户命令。<br>- /usr/sbin:系统管理命令。<br>- /usr/local:本地自定义软件。 |
| /etc | 特定于此系统的配置文件。 |
| /var | 特定于此系统的可变数据,在系统启动之间保持永久性。动态变化的文件(如数据库、缓存目录、日志文件、打印机后台处理文档内容和网站内容)可以在 /var 下找到。 |
| /run | 自上一次系统启动以来启动的进程的运行时数据。这包括进程 ID 文件和锁定文件,等等。此目录中的内容在重启时重新创建。(此目录整合了旧版 Red Hat Enterprise Linux 中的 /var/run 和 /var/lock。) |
| /home | 普通用户存储其个人数据和配置文件的主目录。 |
| /root | 管理超级用户 root 的主目录。 |
| /tmp | 供临时文件使用的全局可写空间。10 天内未访问、未更改或未修改的文件将自动从该目录中删除。还有一个临时目录 /var/tmp,该目录中的文件如果在 30 天内未曾访问、更改或修改过,将自动删除。 |
| /boot | 开机启动过程中所需的文件。 |
| /dev | 包含特殊的设备文件,供系统用于访问硬件。 |
## 重要
在 Red Hat Enterprise Linux 7 中,/ 中的四个较旧的目录现在与它们在 /usr 中对应的目录拥有完全相同的内容:
- /bin 和 /usr/bin。
- /sbin 和 /usr/sbin。
- /lib 和 /usr/lib。
- /lib64 和 /usr/lib64。
在 Red Hat Enterprise Linux 的较早版本中,这些是不同的目录,包含几组不同的文件。在 RHEL 7 中,/ 中对应目录的符号链接。
## 参考
hier man 手册
文件系统层次结构标准
http://www.pathname.com/fhs