FHS
Filesystem Hierarchy Standard (FHS) 是定义类 Unix 操作系统(如 Linux)中文件系统结构的标准。它规定了各种文件和目录的布局及用途,旨在确保不同操作系统之间的一致性,使得软件开发者和系统管理员更容易理解和管理文件系统。FHS 的设计使系统的结构更加统一,便于软件包的安装和维护。
下面是 FHS 的主要目录及其功能说明:
| 目录路径 | 描述 | 详细说明 |
|---|---|---|
/ |
根目录 | 系统中所有文件和目录的顶层。所有文件系统都挂载在此目录下,是整个文件系统的起点。 |
/bin |
基本用户命令二进制文件 | 存放系统启动和单用户模式下所需的基本命令,如 ls、cp、mv 等。通常这些命令在所有用户环境下都可以使用。 |
/boot |
引导加载器文件 | 包含引导加载器(如 GRUB)使用的文件,以及启动 Linux 系统所需的内核、初始内存盘(initrd)等。 |
/dev |
设备文件 | 包含与硬件设备(如磁盘、终端、打印机)相关的特殊文件。这些文件通常通过设备驱动程序与物理设备交互。 |
/etc |
配置文件 | 存储系统级配置文件和脚本,如网络配置、用户信息、服务启动脚本等。通常,所有的配置文件都应是纯文本格式。 |
/home |
用户主目录 | 每个用户都有一个独立的目录,用于存储用户的个人文件、配置文件、下载等。 |
/lib |
基本库文件 | 存放系统启动和基本命令所需的共享库文件(通常为 .so 文件),以及内核模块。 |
/media |
可移动媒体挂载点 | 挂载可移动设备的临时目录,如 USB 驱动器、CD-ROM 等。 |
/mnt |
临时挂载点 | 通常用于临时挂载文件系统或设备。例如系统管理员可能会在这里手动挂载网络文件系统或外部磁盘。 |
/opt |
可选软件包 | 存放第三方软件包或附加的应用程序。通常,这些软件包并不属于标准系统包管理器管理的范围。 |
/proc |
进程和内核信息 | 虚拟文件系统,提供内核和正在运行的进程的信息,如系统内存、硬件配置、当前进程等。 |
/root |
超级用户主目录 | root 用户的主目录,类似于普通用户的 /home/<username>,但权限更高。 |
/run |
运行时可变数据 | 存储运行时数据,如系统启动时的进程 ID 文件、socket 文件等。它是 /var/run 的替代方案。 |
/sbin |
系统管理命令 | 存放系统启动、修复和恢复操作所需的命令,通常只有 root 用户才能运行这些命令。 |
/srv |
服务数据 | 存放由系统提供的服务的数据,如 Web 服务器的网页文件、FTP 服务器的文件等。 |
/sys |
系统信息 | 虚拟文件系统,提供内核设备、模块和文件系统的信息,通常用于与设备交互。 |
/tmp |
临时文件 | 存放临时文件,系统重启时该目录下的内容可能会被清除。应用程序可以在这里创建临时文件。 |
/usr |
用户二进制和只读数据 | 存放系统的只读数据,如共享库、二进制文件、文档和应用程序文件。它是 / 目录的一个重要补充,包含更多用户和系统所需的工具和库。 |
/var |
可变数据 | 存放经常变动的数据,如日志文件、缓存文件、邮件队列、数据库等。与 /usr 相反,/var 包含需要随时间改变的数据。 |
关键目录详细解释
/usr
/usr/bin: 存放多用户环境下使用的二进制文件(非系统启动所需)。/usr/lib: 存放与/usr/bin程序相关的共享库文件。/usr/local: 用户自定义安装的软件和库文件,通常用于手动编译和安装的软件。
/var
/var/log: 存放系统日志文件。/var/tmp: 与/tmp类似,但用于保存需要跨系统重启的临时文件。/var/lib: 存储应用程序状态信息,如数据库文件、包管理器的状态数据等。
/etc
/etc/passwd: 用户账户信息文件。/etc/fstab: 文件系统挂载信息配置文件。
FHS 旨在为不同的 Unix 系统提供一致的文件系统布局,以提高系统的可移植性和软件的兼容性。理解 FHS 对于系统管理员和开发者来说至关重要,它不仅帮助他们有效地管理文件系统,还能避免混乱和错误配置。
更详细资料参考维基百科:Filesystem Hierarchy Standard - Wikipedia
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
