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 实现了高度的组织性和可维护性,无论是开发、运维还是故障排查都能快速定位文件位置。