Linux文件系统层次标准(FHS)详解
Linux文件系统层次标准(FHS)详解
ZhangCurryLinux文件系统层次标准(FHS)详解
一、FHS概述
定义:Filesystem Hierarchy Standard(文件系统层次标准),是Linux系统采用的标准化目录结构规范。
特点:
- 树形层次结构(类似Windows的C盘目录)
- 定义了每个目录的用途、最小构成文件和目录
- 包含例外处理和矛盾处理规范
规范层级:
- 第一层:根目录(/)下的目录规范(如/etc放配置文件,/bin放可执行文件)
- 第二层:/usr和/var子目录的详细规范
二、Linux目录树结构
1 | / |
三、核心目录功能详解
1. 根目录(/)
- 最高一级目录,所有目录的起点
- 只有root用户具有写权限
- 通常只存放目录,不存放普通文件
2. /bin - 基础命令二进制文件
- 存放所有用户都可使用的基本命令
- 如:ls, cp, cat, mv, rm等
- 系统启动和修复所必需的命令
3. /sbin - 系统管理二进制文件
- 存放系统管理员使用的命令
- 通常需要root权限执行
- 如:fdisk, ifconfig, reboot等
4. /etc - 配置文件目录
- 包含系统和应用程序的配置文件
- 例如:
- /etc/passwd(用户账户信息)
- /etc/fstab(文件系统挂载信息)
- /etc/hosts(主机名解析)
5. /dev - 设备文件
- 包含所有硬件设备的文件接口
- 设备作为文件访问(一切皆文件)
- 例如:
- /dev/sda(第一块SATA硬盘)
- /dev/tty(终端设备)
- /dev/null(空设备)
6. /proc - 进程和内核信息
- 虚拟文件系统,内存中生成
- 提供系统和进程信息的实时访问
- 例如:
- /proc/cpuinfo(CPU信息)
- /proc/meminfo(内存信息)
- /proc/[PID]/(进程信息)
7. /usr - 用户程序资源
- 存放用户安装的应用程序和文件
- 子目录结构:
1 | /usr/ |
8. /home - 用户家目录
- 每个用户都有独立的子目录
- 存放用户个人文件、配置和文档
- 普通用户仅对自己的目录有写权限
9. /boot - 启动文件
- 包含系统启动所需的文件
- 例如:
- 内核镜像(vmlinuz)
- 引导加载程序(GRUB)
- 初始RAM磁盘(initrd)
10. /lib - 系统库文件
- 存放**/bin和/sbin中程序的共享库**
- 提供系统基本功能的库文件
11. /opt - 可选应用程序
- 存放第三方或大型应用程序
- 每个应用通常在独立子目录中
- 替代传统/usr/local的部分用途
12. /var - 可变数据
- 存放经常变化的文件
- 例如:
- /var/log(系统日志)
- /var/spool(队列数据)
- /var/cache(应用程序缓存)
- /var/lib(动态数据库)
13. /tmp - 临时文件
- 存放临时文件
- 系统重启可能清除
- 所有用户都有读写权限
14. /root - 管理员家目录
- root用户的个人目录
- 与普通用户的/home分开
15. /mnt 和 /media - 挂载目录
- /media:自动挂载可移动设备(U盘、光盘)
- /mnt:手动临时挂载文件系统
四、设备节点概念
设备文件:Linux中访问硬件设备的特殊文件
特点:
- 统一存放在/dev目录
- 提供标准文件接口访问设备
- 分为:
- 块设备(随机访问,如硬盘)
- 字符设备(顺序访问,如键盘)
示例:
1 | /dev/sda # 第一块SCSI/SATA硬盘 |
五、特殊目录项
每个目录都包含两个特殊项:
- **.**(单点) - 当前目录
1 | ./script.sh # 执行当前目录下的script.sh |
**2. ..**(双点) - 父目录
1 | cd .. # 返回上级目录 |
六、路径表示方法
绝对路径
- 以根目录(/)开始
- 完整描述文件位置
- 不受当前工作目录影响
示例:
1 | /home/user/documents/file.txt |
相对路径
- 不以根目录开始
- 相对于当前工作目录
- 使用.和..进行导航
示例:
1 | # 当前目录:/home/user |
七、实践建议
目录使用规范
- 用户文件 → 存放在/home/[username]/
- 系统配置 → 修改/etc/下的文件
- 安装软件:
- 系统包管理 → /usr/
- 手动编译 → /usr/local/
- 第三方商业软件 → /opt/
- 日志查看 → 检查/var/log/
路径操作技巧
bash
1 | # 快速切换目录cd - # 返回上一个目录cd ~ # 返回家目录cd ~/Desktop # 进入桌面目录# 路径补全# 按Tab键自动补全路径# 查看当前位置pwd# 打印当前绝对路径 |
八、扩展知识
FHS的历史意义
- 解决不同Linux发行版间的兼容性问题
- 为软件开发者提供统一的标准
- 简化系统管理和维护
现代Linux的变化
- 部分发行版合并/bin、/sbin到/usr对应目录
- systemd等新组件引入新目录结构
- 容器化技术带来新的文件系统视角
特殊文件系统
- /sys:sysfs,内核对象信息
- /run:运行时数据,替代/var/run
- /srv:服务数据(如网站文件)



