目录结构(FHS 标准)

Linux FHS 标准核心目录详解

FHS(Filesystem Hierarchy Standard,文件系统层次结构标准)是 Linux 发行版统一遵循的目录架构规范,核心目的是标准化系统文件的存放位置,让程序和用户可预测地定位文件。以下是你指定的 7 个核心目录的完整说明,包含核心定位、存放内容、关键特性、生产环境注意事项,同时补充现代 Linux 系统的适配变化。


一、核心系统二进制目录(单用户模式必备)

/bin

  • 核心定位:所有用户可用的、单用户 / 救援模式必须的核心二进制命令目录
  • 存放内容 :系统启动、修复、基础操作必备的通用命令,例如lscpmvrmcatbashshmkdir
  • 关键特性
    1. 无需挂载/usr分区即可访问,是系统最小化运行的核心依赖
    2. 所有用户(普通用户 + root)均默认拥有执行权限
    3. 现代 Linux(CentOS 7+/Ubuntu 16+/Debian 9+)已普遍将/bin软链接到/usr/bin,遵循 FHS 3.0 的 /usr 合并规范,兼容传统使用习惯

/sbin

  • 核心定位:仅限 root 用户使用的、系统管理专属核心二进制工具目录
  • 存放内容 :系统启动、修复、磁盘管理、网络配置、权限管控等管理员专属命令,例如fdiskmkfsiprebootshutdowniptablesifconfig
  • 关键特性
    1. 单用户模式下必须可用,用于系统故障修复与初始化
    2. 普通用户默认无执行权限,仅 root / 具备 sudo 权限的用户可执行
    3. 现代系统普遍软链接到/usr/sbin,与 /usr 目录完成合并

二、系统配置核心目录

/etc

  • 核心定位:系统全局静态配置文件目录,是 Linux 系统的 "配置中枢"
  • 核心存放内容
    • 系统核心配置:/etc/passwd(用户信息)、/etc/shadow(密码哈希)、/etc/fstab(磁盘挂载表)、/etc/hosts(主机名映射)、/etc/profile(全局环境变量)、/etc/systemd/(系统服务管理)
    • 服务 / 软件配置:/etc/ssh/sshd_config/etc/nginx/nginx.conf/etc/sysconfig/(RHEL/CentOS 系)、/etc/default/(Debian/Ubuntu 系)
  • 关键特性
    1. FHS 强制要求:仅存放静态配置文件,禁止存放二进制可执行文件
    2. 绝大多数为文本文件,可直接编辑修改,配置默认对本机全局生效
    3. 生产环境建议定期备份该目录,是系统故障恢复的核心配置源

三、动态可变数据目录

/var

  • 核心定位:可变数据目录,存放系统运行过程中持续产生、动态变化的文件
  • 核心存放内容
    • 日志文件:/var/log/(系统日志、服务日志,如messagessecure、内核日志、应用日志)
    • 运行时数据:/var/run/(进程 PID 文件,现代系统软链接到/run)、/var/lock/(文件锁)
    • 持久化状态数据:/var/lib/(数据库、Docker 镜像、软件运行状态数据)
    • 缓存与队列:/var/cache/(yum/apt 软件包缓存)、/var/spool/(邮件、定时任务队列)
  • 关键特性
    1. /etc的静态配置完全区分,/var内容随系统运行持续写入、修改、增长
    2. 生产环境必须单独分区,避免日志、业务数据占满根分区导致系统崩溃
    3. 不可存放程序运行必须的静态二进制文件,重启后不会丢失核心持久化数据

四、系统软件资源核心目录

/usr

  • 核心定位:全称 Unix Software Resource,Unix 系统软件资源目录,是 Linux 系统最大的目录之一,存放用户级程序、库、文档等只读资源

  • FHS 标准核心子目录

    表格

    子目录 核心用途
    /usr/bin 普通用户使用的非核心二进制命令(绝大多数包管理器安装的软件命令)
    /usr/sbin 管理员使用的非核心系统管理工具
    /usr/lib /usr/lib64 系统函数库、内核模块,分别对应 32 位 / 64 位架构
    /usr/include C/C++ 程序开发头文件
    /usr/share 架构无关的共享数据(man 手册、文档、图标、本地化语言包)
    /usr/local 管理员手动编译安装的软件,不会被系统包管理器覆盖,子目录结构与 /usr 完全对齐
  • 关键特性

    1. 历史上为用户家目录,现已演变为系统全局软件资源核心,默认具备只读属性(仅/usr/local/usr/tmp可写)
    2. 现代系统已完成 **/usr 合并 **,根目录的/bin/sbin/lib均软链接到/usr下对应目录,单用户模式下必须保证/usr分区可正常挂载
    3. 核心区分:包管理器安装的软件默认写入/usr,手动编译安装的软件必须放入/usr/local,避免版本冲突和包管理器覆盖

五、内核态伪文件系统(内存驻留,无磁盘占用)

/proc

  • 核心定位:进程与内核运行时状态伪文件系统(procfs),完全驻留在内存中,不占用磁盘空间,是用户空间与内核交互的传统接口
  • 核心存放内容
    • 进程专属信息:以数字命名的目录,对应进程 PID,例如/proc/1/是 systemd/init 进程的完整信息,包含cmdlinestatusfdmaps
    • 内核全局状态:/proc/cpuinfo(CPU 详情)、/proc/meminfo(内存详情)、/proc/version(内核版本)、/proc/net/(网络栈信息)、/proc/sys/(内核可调参数,对应 sysctl)
  • 关键特性
    1. 所有文件均为内核实时动态生成,重启后全部重置,无持久化存储
    2. 核心面向进程管理、内核运行时状态查询,是 top、ps、free 等命令的核心数据源
    3. 可通过修改/proc/sys/下的文件临时调整内核参数,永久生效需修改/etc/sysctl.conf

/sys

  • 核心定位 :系统设备与驱动伪文件系统(sysfs),Linux 2.6 内核引入,完全驻留内存,用于替代/proc中混乱的设备相关接口,是现代 Linux 设备管理的核心
  • 核心存放内容 :按层级化结构组织硬件设备、驱动、总线、内核模块的完整信息,核心子目录:
    • /sys/devices:所有硬件设备的完整层级树,是 sysfs 的核心
    • /sys/bus:按总线类型分类的设备(PCI、USB、SATA 等)
    • /sys/class:按设备功能分类(网卡、磁盘、输入设备、显卡等)
    • /sys/module:已加载的内核模块信息
    • /sys/dev:设备号(主设备号 / 次设备号)映射
  • 关键特性
    1. 内存驻留、实时生成,重启后全部重置,无磁盘占用
    2. 核心面向硬件设备、驱动、内核子系统的管理与信息查询,结构规范、层级清晰,是 udev、systemd 等设备管理工具的核心依赖
    3. /proc的核心区别:/sys是结构化的硬件 / 驱动管理接口,/proc是传统的进程 / 内核状态接口,两者功能互补,现代 Linux 优先使用/sys管理硬件设备
相关推荐
前端技术3 分钟前
03_网络层与IP编址:理解网络寻址的核心逻辑
服务器·网络·php
智慧物业老杨4 分钟前
智慧物业收费系统的数智化落地实践:从人工硬扛到自动化闭环
运维·自动化
Championship.23.2425 分钟前
Linux Top 命令族深度解析与实战指南
java·linux·服务器·top·linux调试
techdashen30 分钟前
Cloudflare 为何抛弃 NGINX,用 Rust 自研了一个代理
运维·nginx·rust
南城猿43 分钟前
保姆级 Ubuntu 部署 禅道
linux·运维·ubuntu
ITHAOGE151 小时前
下载 | Windows Server 2025官方原版ISO映像!(4月更新、标准版、数据中心版、26100.32690)
服务器·windows·科技·微软·电脑
zhangrelay1 小时前
三分钟云课实践速通--模拟电子技术-模电--SimulIDE
linux·笔记·学习·ubuntu·lubuntu
珠海西格电力1 小时前
零碳园区产业园管理系统的全场景源网荷储氢协同调度功能是如何实现的
大数据·运维·人工智能·物联网·能源
木木_王1 小时前
嵌入式Linux学习 | 数据结构 (Day05) 栈与队列详解(原理 + C 语言实现 + 实战实验 + 易错点剖析)
linux·c语言·开发语言·数据结构·笔记·学习
Ether IC Verifier1 小时前
OSI网络七层协议详细介绍
服务器·网络·网络协议·计算机网络·php·dpu