Linux 的目录结构遵循 Filesystem Hierarchy Standard (FHS) 标准,旨在统一系统文件的存储位置,提高可维护性和可预测性。以下是核心目录及其意义的详解:
/)| 目录 | 用途 | 示例内容 |
|---|---|---|
/bin |
基础用户命令(所有用户可用) | ls, cp, bash |
/sbin |
系统管理命令(需 root 权限) | fdisk, ifconfig, init |
/lib |
共享库文件(/bin 和 /sbin 依赖的库) |
.so 文件(如 libc.so) |
/etc |
系统配置文件 | /etc/passwd, /etc/nginx/ |
/dev |
设备文件(硬件抽象为文件) | /dev/sda, /dev/tty |
/proc |
内核和进程信息(虚拟文件系统,实时数据) | /proc/cpuinfo, /proc/pid/ |
/sys |
内核设备树(调整硬件参数) | CPU 频率、电源管理设置 |
| 目录 | 用途 | 示例内容 |
|---|---|---|
/home |
用户主目录(普通用户存储个人文件) | /home/alice, /home/bob |
/root |
root 用户的主目录(非 /home/root) |
root 的配置文件 |
/var |
可变数据(日志、缓存等动态文件) | /var/log/, /var/cache/ |
/tmp |
临时文件(重启后可能清空) | 临时下载、进程锁文件 |
/usr |
用户程序与只读数据(二级系统目录) | /usr/bin/, /usr/lib/ |
/opt |
第三方软件(可选安装的独立程序) | /opt/google/chrome/ |
| 目录 | 用途 |
|---|---|
/boot |
启动文件(内核、GRUB 配置) |
/mnt |
临时挂载点(如手动挂载 U 盘) |
/media |
自动挂载点(插入光盘/USB 时生成) |
/run |
运行时数据(进程 PID、锁文件等,替代旧版 /var/run) |
/srv |
服务数据(如 Web 服务器的 /srv/http/) |
分层管理
/bin, /etc)与用户文件(/home, /var)分离。/usr)与可变数据(/var)分离。兼容性
/bin → /usr/bin)保持旧程序兼容。安全性
/tmp 通常设置 noexec 防止执行恶意脚本。扩展性
/opt 和 /usr/local 允许管理员灵活安装软件。为什么 /bin 和 /usr/bin 分开?
历史原因:早期 /bin 存放启动必需命令,/usr 挂载在独立分区。现代系统常合并二者。
用户程序放哪里?
普通用户:~/bin/(个人)、/usr/local/bin/(全局);第三方软件:/opt/。
日志在哪里?
系统日志:/var/log/(如 syslog、nginx 日志)。
通过这种结构,Linux 实现了高度的组织性和可维护性,无论是开发、运维还是故障排查都能快速定位文件位置。