文件系统层级标准
Linux 系统的所有内容都挂载在一个统一的根目录 / 之下,不存在类似 Windows 那样按盘符划分的多根结构。不同发行版在根目录下的组织方式高度一致,原因是它们都遵循同一套约定——文件系统层级标准(Filesystem Hierarchy Standard,FHS)。理解这套标准下各目录的用途,是后续查找配置文件、安装软件、排查问题的基础。
根目录下的核心结构
Section titled “根目录下的核心结构”文件夹/
文件夹bin/ 基础命令的可执行文件(现代发行版中通常是指向 /usr/bin 的符号链接)
- …
文件夹boot/ 引导加载程序和内核相关文件
- …
文件夹dev/ 设备文件,硬件以文件形式呈现在这里
- …
文件夹etc/ 系统级配置文件
- …
文件夹home/ 普通用户的个人目录
- …
文件夹lib/ 系统运行所需的共享库文件
- …
文件夹opt/ 第三方软件的可选安装位置
- …
文件夹proc/ 内核和进程信息的虚拟文件系统
- …
文件夹root/ root 用户的个人目录(不是根目录本身)
- …
文件夹tmp/ 临时文件,系统重启通常会清空
- …
文件夹usr/ 用户级程序和资源的主要存放位置
- …
文件夹var/ 经常变化的数据,如日志、缓存
- …
几个容易混淆的目录
Section titled “几个容易混淆的目录”/etc 与 /home 下的配置文件:系统级配置(影响所有用户)存放在 /etc 下,例如网络配置、服务配置;用户级配置(只影响当前用户)存放在对应用户 /home/<username> 目录下,通常是以 . 开头的隐藏文件,例如 .bashrc、.gitconfig。两者作用范围不同,排查配置问题时需要先确认改动的是哪一层。
/bin、/usr/bin、/usr/local/bin:这三个目录都存放可执行程序,区别在于来源。/usr/bin 存放发行版包管理器安装的程序;/usr/local/bin 存放不经过包管理器、手动编译或单独下载安装的程序;/bin 在现代发行版中大多已经合并为指向 /usr/bin 的符号链接,仅为保持向后兼容而保留。这也是为什么手动编译安装的工具通常会出现在 /usr/local/bin 而不是 /usr/bin 下。
/proc:这是一个虚拟文件系统,其中的文件并不对应磁盘上真实存在的数据,而是内核在运行时动态生成的、反映当前系统状态的信息,例如 /proc/cpuinfo 显示 CPU 信息,/proc/<pid>/ 下存放对应进程 ID 的运行时信息。查看和排查系统运行状态时会频繁用到这个目录。
为什么这套结构值得记住
Section titled “为什么这套结构值得记住”后续安装软件、配置服务、编写脚本时,路径几乎不可避免地要涉及这套目录结构——例如判断一个命令为什么“安装了却执行不了”,往往是因为它被安装到了不在 PATH 环境变量覆盖范围内的目录;判断某个服务的配置改动为什么没有生效,往往需要先确认改的是不是正确层级的配置文件。建立起对这套层级结构的整体认知,能显著减少后续排查问题时的盲目尝试。
为什么这很重要
Section titled “为什么这很重要”这个主题是构建可靠 Linux 开发流程的重要组成部分。对它有清晰的理解,会让后续任务变得更容易,因为你能更快地判断某一步是否缺失或使用不当。
- 在安全的测试环境中尝试这里展示的命令和配置。
- 比较这些概念在不同发行版或工具之间的适用差异。
- 记下一次实践中哪些步骤成功,哪些失败,这样下次遇到问题时更容易定位。
- 将这篇文章与系列中相关内容结合起来,加深整体理解。
- 跳过验证步骤,默认系统已经配置正确。
- 不对命令中的路径、软件包名称或工具版本进行适配,直接复制粘贴执行。
- 把这个主题当成孤立的技巧,而不是整个开发流程的一部分。