FHS 定义 Linux 操作系统主要目录结构、目录内容及其用途的规范;Linux文件系统采用层次化的树状结构,所有目录都从根目录"/"开始。
FHS 主要目录摘要
目录 | 核心用途 | 关键内容示例 |
/
| 根目录,整个文件系统的起点。 | |
/bin
| 基本用户命令 (所有用户的基本全局命令存放位置) | ls, cp, bash
|
/sbin
| 系统管理命令(通常需要 root 权限,用于系统管理和修复)。 | fdisk, ifconfig, init
|
/boot
| 启动加载器文件和内核镜像。 | vmlinuz, initrd, grub/
|
/etc
| 主机特定的系统配置文件。 | /etc/passwd, /etc/fstab, 各种服务的配置
|
/lib
| /bin和 /sbin中命令所需的基本共享库和内核模块。
| libc.so.*, /lib/modules/
|
/lib64
| (64位系统)64位应用程序的基本共享库。 | 64位版本的 libc.so.* |
/usr
| 只读的用户应用程序和数据(二级层次结构)。 | 包含 /usr/bin, /usr/lib, /usr/share等 |
/opt
| 可选的应用软件包(通常为第三方大型独立软件)。 | 某些商业或自打包软件 |
/home
| 用户个人主目录。 | ~/.bashrc, 个人文档、设置
|
/root
| 超级用户 root 的主目录。 | |
/tmp
| 临时文件(所有用户可写,重启可能清空)。 | |
/var
| 可变数据文件(日志、缓存、队列等)。 | /var/log/, /var/cache/, /var/spool/
|
/dev
| 设备文件(硬件和特殊文件的接口)。 | sda(磁盘), tty(终端), null
|
/proc
| 虚拟文件系统,提供内核和进程信息的接口。 | 以文件形式查看系统状态和进程信息 |
/sys
| 虚拟文件系统,提供内核设备、驱动和硬件信息的接口。 | |
/mnt
| 临时手动挂载文件系统的挂载点。 | |
/media
| 可移动媒体设备(如U盘、光盘)的自动挂载点。 | |
/usr与 / 说明
/usr的主要子目录及其作用
子目录 | 核心内容与用途 |
/usr/bin
| 非基础的用户命令。系统中绝大多数供普通用户使用的命令行工具都位于此处(如 git, python, gcc)。 |
/usr/sbin
| 非基础的系统管理命令。供系统管理员使用的、非启动必需的管理工具(如 httpd, sshd)。 |
/usr/lib
| 应用程序和服务的共享库。为 /usr/bin和 /usr/sbin中的程序提供运行所需的库文件。 |
/usr/lib64
| (64位系统)64位应用程序的共享库。 |
/usr/include
| C/C++ 等编程语言的标准头文件,用于软件开发。 |
/usr/share
| 架构无关的只读数据。包含应用程序的共享数据,如文档、图标、字体、时区信息、字典等。子目录如 man(帮助手册)、doc(文档)等。 |
/usr/local
| 本地系统管理员自行安装的软件。用于安装那些不属于发行版标准包管理器的软件(如手动编译安装的程序)。其本身也拥有 bin, lib, share等子目录结构,是 /usr的一个镜像。 |
/usr/src
| 源代码。例如内核源代码包通常会安装在这里。 |
/usr/games
| (历史上)游戏程序,在现代发行版中已不常见。 |
实际使用
在现代许多 Linux 发行版(如 Fedora、Debian、Ubuntu 等)中,推行了 “usrmerge” 策略。为了实现简化,根目录下的几个关键目录现在实际是指向 /usr下对应目录的符号链接:
usrmerge 核心定位与设计原则