Appearance
Linux 文件系统层级标准(FHS)目录结构详解
更新: 7/19/2026 字数: 0 字 时长: 0 分钟
很多人刚接触 Linux,最懵的就是打开根目录一看,
bin、etc、var、proc……一堆三四个字母的文件夹,完全不知道谁是干嘛的。其实这套结构不是随便定的,它遵循一个叫 FHS(Filesystem Hierarchy Standard,文件系统层级标准) 的规范。理解了它的分类逻辑,整个目录树就从"一团乱麻"变成"井井有条的仓库"。

一、先建立一个总观念:一切从 / 开始
Windows 有 C 盘、D 盘多个"根",但 Linux 只有一个根,就是 /(读作"根目录",root)。所有的文件、所有的硬盘、所有的设备,最终都挂在这一棵树上。你插的 U 盘、第二块硬盘,也是"挂载"到这棵树的某个目录下,而不是变成一个新的盘符。
FHS 的核心思想就一句话:按"文件的用途和变化特性"来分类存放。它主要按两个维度切:
- 能不能共享:这些文件是只属于本机,还是可以给多台机器共用(如
/usr可共享,/etc通常本机专属)。 - 变不变:内容是基本不动的(如程序、命令),还是频繁变化的(如日志、缓存)。
记住这个"用途分类"的思路,下面每个目录你就能"顾名思义"了。文中会标注 FHS 对每个目录的要求:必选(FHS 规定必须存在)或可选(视系统而定)。
二、存放"程序和命令"的目录

你在终端敲的每一条命令(ls、cp、cat),背后都是一个可执行程序文件,它们就住在这几个目录里。
/bin(必选):基础命令。存放所有用户都能用的、系统最基本的命令,比如ls、cp、mv、cat。这些是系统启动和基本操作离不开的,即使在最小化的救援模式下也要能用。/sbin(必选):系统管理命令。s是 system 的意思,存放**管理员(root)**才用的系统管理命令,比如reboot(重启)、fdisk(分区)、ifconfig(网络配置)。普通用户一般不用、也没权限用。/usr(必选):用户级应用程序的"大本营"。注意别被名字骗了,它不是存用户个人文件的(那是/home)。usr其实是 "Unix System Resources" 的意思,绝大多数你后来安装的软件都在这。它下面有几个关键二级目录:/usr/bin:大部分应用程序的命令(非系统启动必需的)。/usr/sbin:非核心的系统管理命令。/usr/local:你自己手动编译安装的软件通常放这,跟系统自带的软件隔离开,方便管理。/usr/lib:/usr/bin里程序需要的库文件。
/lib、/lib64(必选):共享库文件(相当于 Windows 的.dll)。/bin和/sbin里的命令运行时需要的公共代码库就在这,还包括内核模块。
小结:要找命令去
bin/sbin,要找安装的软件去usr,程序依赖的库在lib。
三、存放"配置"和"用户数据"的目录

这类目录存的是"人和系统的设置与资料",改系统、找个人文件基本都在这里。
/etc(必选):系统配置文件的总部。几乎所有软件和系统的配置都是纯文本文件放在这里,改配置基本就是在改/etc下的文件。FHS 规定这里只放配置,不放可执行的二进制程序。常见的:/etc/passwd:用户账号信息。/etc/hosts:主机名和 IP 的映射(本地 DNS)。/etc/ssh/:SSH 服务的配置。/etc/fstab:开机自动挂载哪些磁盘的配置。
/home(可选):普通用户的家目录。每个普通用户都有一个专属文件夹,比如用户alice的家就是/home/alice,你的文档、下载、个人配置都在自己的家目录里。在终端里用~就代表当前用户的家目录。/root(可选):管理员 root 的家目录。注意它不在/home里,而是单独放在根目录下,且就叫/root。这样即使/home(可能是单独的磁盘分区)没挂载上,管理员依然能登录进系统抢修。
小结:改设置去
/etc,普通用户的东西在/home/用户名,管理员的家是独立的/root。
四、存放"变动数据"和"临时文件"的目录

这类目录的共同点是内容一直在变——不像程序和配置那样相对固定。
/var(必选):variable(变动)的缩写,存放运行中不断增长、变化的数据。排查问题时常来这里。关键二级目录:/var/log:系统和各种服务的日志。系统出问题,第一反应就是来这看日志(如/var/log/syslog、/var/log/nginx/)。/var/spool:排队等待处理的数据,如打印任务、邮件队列。/var/cache:应用程序缓存。/var/lib:程序运行时需要读写的状态数据,如数据库文件。/var/www:很多 Web 服务器默认把网站文件放这里(具体看发行版)。
/tmp(必选):临时文件。任何程序和用户都可以往这里写临时文件,重启后通常会被清空,所以千万别把重要东西长期放这里。/run(必选):系统运行时的数据,如当前运行进程的 PID 文件、锁文件。它存在于内存中,开机后产生、关机即消失。/srv(必选):service 的缩写,存放本机对外提供服务的数据(如某些网站、FTP 的数据)。实际用得不算多,很多人习惯用/var/www代替。/mnt(必选) 和/media(必选):挂载点。/media用于自动挂载的可移动设备(U 盘、光盘插上自动出现在这),/mnt用于管理员临时手动挂载别的文件系统。/opt(必选):optional(可选/第三方),一些大型的、独立的第三方商业软件喜欢整个装在这里(如/opt/google/chrome),跟系统目录井水不犯河水。
小结:看日志查故障去
/var/log,临时东西放/tmp(会被清),插 U 盘去/media找。
五、和"硬件、内核"打交道的虚拟目录

这几个目录很特殊——它们里面的文件不真正占用硬盘空间,而是内核实时生成的"虚拟文件",体现了 Linux "一切皆文件"的设计哲学:连硬件和进程都被抽象成文件来访问。
/dev(必选):device(设备)。系统把所有硬件设备都当成文件放在这里。比如/dev/sda代表第一块硬盘,/dev/null是个"黑洞"(写进去的数据直接丢弃,常用来屏蔽输出)。你操作硬件,本质就是读写这些设备文件。/proc(必选):process(进程)。这是一个虚拟文件系统,实时反映系统和进程的状态。比如/proc/cpuinfo能看 CPU 信息,/proc/meminfo看内存,每个正在运行的进程也有一个以它 PID 命名的文件夹。它不占硬盘,是内核信息的"窗口"。/sys(必选):system。同样是虚拟文件系统,比/proc更结构化,专门暴露内核和硬件设备的层级信息,常用于调整设备参数。/boot(必选):系统启动相关文件,包括 Linux 内核本身(vmlinuz)和引导加载程序(如 GRUB)的配置。开机启动全靠这里,没事别乱动。
小结:这几个目录是"内核开的窗口",想看硬件和运行状态就来这,但它们大多是只读的信息展示,不是让你随便存文件的地方。
六、快速记忆法:按用途归类

把上面的目录按"用途"归成四大类,配合下表,记忆和查找就轻松多了:
| 用途分类 | 目录 | 一句话作用 | FHS 要求 |
|---|---|---|---|
| 放程序/命令 | /bin | 所有用户的基础命令 | 必选 |
/sbin | 管理员的系统管理命令 | 必选 | |
/usr | 应用程序大本营(/usr/local 放自装软件) | 必选 | |
/lib、/lib64 | 程序依赖的共享库 | 必选 | |
/opt | 大型第三方软件 | 必选 | |
| 放配置/用户数据 | /etc | 系统与服务的配置文件 | 必选 |
/home | 普通用户的家目录 | 可选 | |
/root | 管理员的家目录(独立) | 可选 | |
| 放变动/临时数据 | /var | 日志、缓存等变动数据(/var/log 查故障) | 必选 |
/tmp | 临时文件(重启清空) | 必选 | |
/run | 运行时数据(内存中) | 必选 | |
/srv | 对外服务的数据 | 必选 | |
/mnt、/media | 挂载点(手动 / 可移动设备) | 必选 | |
| 接硬件/内核 | /dev | 设备文件(一切皆文件) | 必选 |
/proc | 进程与系统状态(虚拟) | 必选 | |
/sys | 内核与设备信息(虚拟) | 必选 | |
/boot | 内核与开机引导文件 | 必选 |
给初学者的三条实用建议:
- 不要死记,要理解分类。 遇到一个目录先问"它是放程序、放配置、放变动数据、还是接硬件的",八九不离十就能猜对用途。
- 最常打交道的四个:
/etc(改配置)、/var/log(看日志)、/home(个人文件)、/usr/local(装软件),先把这四个焊死在脑子里。 /boot、/dev、/proc、/sys别乱删乱改,它们要么关乎开机,要么是内核的虚拟窗口,误操作可能导致系统起不来。