Linux目录结构怎么理解_标准流程剖析适用于全部场景【教学】

2次阅读

linux目录结构遵循 FHS 规范,以用途和权限 / 生命周期为理解主线:根目录 / 为起点,/home 存用户目录,/etc 存配置,/var存变动数据,/usr 存只读系统资源,/tmp 和 /run 分担临时数据,/bin 与 /usr/bin 按启动与运行阶段分工,/lib 与 /lib64 依 架构 存放动态库,排查时聚焦“谁建、谁用、多久变”。

Linux 目录结构怎么理解_标准流程剖析适用于全部场景【教学】

Linux 目录结构不是随意设计的,而是遵循 Filesystem Hierarchy Standard(FHS) 规范,目的是让不同发行版保持基本一致,方便管理、维护和协作。理解它不靠死记硬背,而要抓住“用途驱动”和“权限 / 生命周期”两条主线。

根目录 / 是所有路径的起点,不是“ c 盘

windows习惯把系统、程序、用户数据分在不同盘符,Linux 全从 / 开始展开。比如:

  • /home 存用户主目录(类似 Windows 的 Users),每个普通用户有自己的子目录(如 /home/alice
  • /etc 放全局配置文件(如 /etc/nginx/nginx.conf),只有 root 能改
  • /var 存运行时变化的数据:日志(/var/log)、数据库 文件(/var/lib/mysql)、邮件队列等
  • /usr 是“只读”的系统资源区(实际可写,但不建议手动改),包含命令(/usr/bin)、库(/usr/lib)、文档(/usr/share
  • /tmp/run 都是临时空间,但 /tmp 重启可能清空,/run 是内存中的运行时状态(如 PID 文件)

/bin 与 /usr/bin 的分工:启动阶段 vs 运行阶段

早期 Linux 把所有命令塞进 /bin,后来为精简启动镜像,把基础命令(lscpbash)保留在 /bin/sbin(管理员命令如 fdiskiptables),其余归到 /usr/bin。现代发行版(如 ubuntu 20.04+、Fedora)已合并两者(通过符号链接),但逻辑仍存在:

  • 系统刚开机、/usr 还没挂载时,/bin/sbin 必须能独立工作
  • 日常使用的 工具gitpython3curl)默认装在 /usr/bin
  • 自己编译安装的软件,通常走 /usr/local/bin,避免和包管理器冲突

/lib 与 /lib64:别乱放,要看架构和依赖

动态库不是随便扔一个目录就能用的。关键看三点:

  • 64 位系统一般用 /lib64 存 64 位库,/lib 存通用或 32 位兼容库(部分发行版如 debian/lib/x86_64-linux-gnu 更细分)
  • 程序启动时通过 ld.so.cache(由 ldconfig 生成)查库路径,不是遍历整个文件系统
  • 新增库别直接拷进 /lib —— 应放 /usr/local/lib 或自定义路径,再用 ldconfig -n /path 临时加载,或写入 /etc/ld.so.conf.d/xxx.conf

实际排查时,按“谁建的?谁在用?多久变一次?”三问定位目录

遇到问题别先翻手册,先观察:

  • 谁建的? —— ls -ld /opt 看属主和权限;rpm -qf /opt(RHEL 系)或 dpkg -S /opt(Debian 系)查归属包
  • 谁在用? —— lsof +D /var/log 看哪些进程正写日志;find /etc -name “*.conf” -mmin -5 找最近改过的配置
  • 多久变一次? —— stat /tmpaccess/Modify/Change 时间;journalctl –disk-usage 判断 /var/log/journal 是否占满

基本上就这些。FHS 不是铁律,但它是共识的骨架。真正用起来,结合发行版特点(如 systemd 把很多状态挪到 /run)、部署方式(容器常挂载 /app/data 自定义路径)灵活理解,比硬背路径表管用得多。

站长
版权声明:本站原创文章,由 站长 2025-12-20发表,共计1502字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources