Linux 文件系统目录结构详解

Linux 文件系统目录结构详解

Linux 文件系统目录结构详解

Linux 文件系统遵循 Filesystem Hierarchy Standard (FHS) 标准,定义了各个目录的用途和文件存放规则。无论是开发者、运维工程师还是普通用户,理解这些目录的作用都至关重要。本文将全面解析 Linux 的目录结构,并结合实际场景说明其应用。

根目录 /

作为所有目录和文件的起点,类似于 Windows 的 C:\。所有其他目录均挂载在根目录下。

核心系统目录

1. /bin(基本用户命令)

作用:存放所有用户可用的基础命令(如 ls, cp, cat)。注意:现代系统中,/bin 通常是 /usr/bin 的符号链接。

2. /boot(启动文件)

内容:内核文件(vmlinuz-*)、引导加载程序(如 GRUB)、初始化内存盘(initramfs)。重要性:系统启动依赖此目录,切勿随意删除!

3. /dev(设备文件)

作用:以文件形式表示硬件或虚拟设备。示例:

/dev/sda:第一块物理磁盘。/dev/null:黑洞设备,丢弃所有写入数据。

4. /etc(配置文件)

关键目录:存放系统和应用程序的配置。常见文件:

/etc/passwd:用户账户信息。/etc/fstab:文件系统挂载表。/etc/nginx/nginx.conf:Nginx 服务配置。

5. /lib 与 /lib64(共享库)

作用:为 /bin 和 /sbin 中的程序提供依赖库。区别:/lib64 专用于 64 位系统(某些发行版直接合并到 /lib)。

6. /sbin(系统管理命令)

用途:存放管理员专用的命令(如 fdisk, iptables, reboot)。

用户与数据目录

7. /home(用户家目录)

规则:每个用户拥有独立子目录(如 /home/alice),存放个人文件和配置文件(如 ~/.bashrc)。

8. /root(超级用户的家目录)

权限:仅 root 用户可访问,普通用户无权查看。

9. /opt(第三方软件)

场景:存放独立于系统包管理器安装的第三方应用(如 MATLAB、大型商业软件)。

10. /usr(用户程序资源)

最大目录:包含用户级应用程序和文件。子目录:

/usr/bin:用户命令(如 python, gcc)。/usr/local:手动编译安装的软件(避免与系统包冲突)。/usr/share:共享数据(文档、字体、图标)。

11. /var(动态数据)

作用:存放频繁变化的文件。子目录:

/var/log:系统日志(如 syslog, nginx/access.log)。/var/cache:应用程序缓存。/var/lib:数据库文件(如 MySQL 数据)。

临时与运行时目录

12. /tmp(临时文件)

特点:系统重启后自动清理,某些系统使用内存(tmpfs)加速访问。

13. /run(运行时数据)

内容:存放系统启动后的临时文件(如 PID 文件、套接字文件)。注意:现代系统中,/var/run 通常符号链接到 /run。

特殊文件系统

14. /proc(内核与进程信息)

虚拟文件系统:实时反映系统和进程状态。示例:

/proc/cpuinfo:CPU 详细信息。/proc/[PID]:特定进程的运行状态。

15. /sys(内核设备与驱动)

用途:提供硬件和驱动的配置接口。常见操作:

查看网络接口:/sys/class/net。管理电源:/sys/power/state。

挂载与存储目录

16. /media(可移动设备挂载点)

自动挂载:U 盘、光盘等插入后通常挂载在此(如 /media/usb)。

17. /mnt(手动挂载点)

场景:临时挂载网络存储(NFS)或实验性文件系统。

18. /srv(服务数据)

规范:存放服务相关的数据文件(如 Web 站点的 /srv/www)。

进阶目录与场景

19. /etc/X11(图形界面配置)

作用:X Window 系统的配置文件(如 xorg.conf)。

20. /usr/src(源代码)

用途:存放内核源码和开发头文件(如 linux-headers-*)。

21. /var/spool(任务队列)

示例:

/var/spool/cron:用户定时任务(crontab)。/var/spool/mail:用户邮件暂存。

发行版差异

不同 Linux 发行版的目录结构可能略有调整:

发行版特点Debian/UbuntuWeb 根目录:/var/www/html;Snap 包目录:/snapRed Hat/CentOSWeb 根目录:/var/www;内核模块:/lib/modulesArch Linux简化结构,部分目录合并到 /usr

实用操作示例

1. 查找大文件

du -sh /* # 查看根目录下各目录大小

du -h /var/log | sort -rh # 按大小排序日志文件

2. 挂载外部设备

sudo mount /dev/sdb1 /mnt # 挂载磁盘分区到 /mnt

sudo umount /mnt # 卸载设备

3. 清理临时文件

sudo rm -rf /tmp/* # 清理 /tmp(谨慎操作!)

4. 实时查看日志

tail -f /var/log/syslog # 监控系统日志

journalctl -u nginx.service # 查看 Nginx 服务日志(systemd 系统)

安全与权限建议

关键目录权限

目录推荐权限说明/etc755配置文件需防止普通用户篡改。/var/log755日志文件通常仅允许 root 写入。/home750用户家目录应限制他人访问。

危险操作规避

勿随意删除系统目录:如 /bin, /lib,否则可能导致系统崩溃。谨慎操作 /proc 和 /sys:直接修改可能影响内核行为。

目录合并趋势

现代 Linux 发行版(如 Fedora、Ubuntu)逐步简化结构:

符号链接合并:/bin, /sbin, /lib 链接到 /usr 对应目录。历史背景:早期 / 和 /usr 分离是为适应小容量存储,现因存储设备升级而合并。

总结

核心目录:/bin, /etc, /home, /var, /usr。运维重点:

配置管理:/etc 和 /usr/local/etc。日志排查:/var

相关内容

525是什么意思?代表什么?
bt365体育备用网址

525是什么意思?代表什么?

⌛ 06-28 👁️ 5090
吉他调音器要怎么用_吉他调音有什么小技巧
365bet官网开户网址

吉他调音器要怎么用_吉他调音有什么小技巧

⌛ 06-28 👁️ 1223