当前位置: 首页 > news >正文

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 包目录:/snap
Red Hat/CentOSWeb 根目录:/var/www;内核模块:/lib/modules
Arch 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

相关文章:

  • 什么是 IDE?集成开发环境的功能与优势
  • 基于springboot+vue的仓库管理系统
  • AWS Linux快速指南:5分钟搭建多用户图形界面
  • 使用 Docker Swarm 纳管节点并实现容器通信
  • 【网络】数据链路层知识梳理
  • Hi3518E官方录像例程源码流程分析(四)
  • 【NLP 62、实践 ⑮、基于RAG + 智谱语言模型的Dota2英雄故事与技能介绍系统】
  • 13【生命周期·进阶】省略规则与静态生命周期 (`‘static`)
  • 08【工具赋能】深入 Cargo:依赖管理、构建配置与工作空间 (Workspace)
  • C++类继承关键点总结
  • MySQL数据库(基础篇)
  • 量子计算与经典计算融合:开启计算新时代
  • 读一篇AI论文并理解——通过幻觉诱导优化缓解大型视觉语言模型中的幻觉
  • UE5 UI 教程系列全集
  • llama factory
  • 7、sentinel
  • 微信小程序通过mqtt控制esp32
  • 手写call,bind,apply
  • Jetson Orin Nano GPIO 实战,用 devmem 玩转 Pinmux 引脚复用配置
  • 【数据可视化-19】智能手机用户行为可视化分析
  • 首届中国—海湾阿拉伯国家合作委员会和平利用核技术论坛在成都召开
  • 一年一CT,十年进ICU?关于CT检查致癌的真相
  • 阿塞拜疆总统阿利耶夫将访华
  • 习近平结束对越南、马来西亚和柬埔寨国事访问回到北京
  • 巡视杭州市工作动员会召开,市长姚高员表态
  • 公安部道研中心:虚假宣传自动驾驶致严重后果,责任人或处2年以下刑期