Linux 的文件系统从根目录 / 开始,以单一树状结构组织所有文件,各个分区或存储设备都被“挂载”到这棵树的某个分支上。为了保持不同发行版之间的兼容和可预测性,社区遵循一套名为 FHS(Filesystem Hierarchy Standard,文件系统层次结构标准) 的约定。掌握这些目录的职责,你就能在遇到任何 Linux 系统时,迅速找到配置文件、日志、可执行程序和用户数据所在的位置。
下面逐一看几个最核心的目录及其实际用途。
/bin / /sbin:基础可执行命令
/bin存放所有用户都必需的基本命令,例如ls、cat、cp、mv、bash、grep等。即使系统在单用户模式下、只挂载了根文件系统,这些命令也必须可用。/sbin存放系统管理类基本命令,通常需要 root 权限执行,如fdisk、mkfs、ifconfig、reboot等。
在现代发行版中,
/bin经常是指向/usr/bin的符号链接,/sbin指向/usr/sbin,从而将所有基础命令统一放在/usr下。但从用户角度看,路径依然有效,不必深究软链接细节。
/etc:系统配置的“控制面板”
/etc 是纯文本配置文件的集中地,几乎所有系统级应用和服务的设置都存放在这里。只有 root 可以修改,普通用户通常只有读取权限。常见例子:
/etc/passwd、/etc/shadow:用户账户信息与密码哈希;/etc/fstab:定义启动时自动挂载的文件系统;/etc/hostname:本机主机名;/etc/ssh/sshd_config:SSH 服务的配置文件;/etc/systemd/:systemd 服务单元文件存放处;/etc/nginx/:如果安装了 Nginx,其网站配置都在这里。
修改任何服务的行为,几乎都是从编辑 /etc 下的某个文件开始的。理解这一点后,配置 Linux 就变得像做填空题一样直接。
/home:用户的个人领地
每个普通用户在这里拥有一个专属目录,如 /home/alice、/home/bob。用户的桌面、文档、下载内容、个人脚本、应用配置(通常以点文件形式隐藏,如 .bashrc、.gitconfig、.ssh/)全都存放在各自的 home 目录下。这样做的好处是,个人数据与系统文件彻底分离,重装系统或迁移账号时,只需备份 /home 即可。
/var:持续变化的运行时数据
/var 存放系统运行过程中会持续变化的数据,比如日志、缓存、数据库文件、邮件队列、打印队列和锁文件。典型子目录:
/var/log/:所有系统和服务的日志文件。排查问题的第一站通常就是这里,例如tail -f /var/log/syslog或/var/log/nginx/error.log;/var/spool/:邮件、cron 任务等等待处理的队列数据;/var/lib/:服务或应用程序保存的持久状态数据,如 MySQL 数据库文件(/var/lib/mysql)、Docker 镜像和数据卷(/var/lib/docker);/var/tmp/:重启后不会被清理的临时文件(与/tmp的区别是后者可能在重启时清空)。
/var 经常是磁盘占用最高的目录之一,当出现“磁盘空间不足”问题时,应优先检查这里,特别是日志文件或数据库文件。
/usr:用户级的只读共享资源
/usr 是“Unix System Resources”的简称,存放系统引导后、多用户环境下使用的只读数据。在过去,/usr 可能独立挂载甚至网络共享到无盘工作站,如今它依然是软件安装的重点。关键子目录:
/usr/bin/、/usr/sbin/:绝大多数用户和管理命令实际存放在这里;/usr/lib/:程序和库文件;/usr/share/:与平台架构无关的共享数据,如帮助文档(man)、图标、翻译、字典等;/usr/local/:用于系统管理员手动安装本地软件,其内部结构仿照/usr(有bin、lib、etc等),不会与包管理系统冲突。例如源码编译的程序安装到/usr/local/bin很常见。
其他几个常用目录
/tmp:所有人可读写的临时文件存放处,系统重启后可能被清空。适合存放不需要长期保留的中间数据。/boot:存放引导加载程序(如 GRUB)和内核镜像(vmlinuz)及初始内存盘(initrd)等启动必需文件。分区时通常单独分配一个分区。/dev:设备文件目录,/dev/sda、/dev/tty、/dev/null等都在这里。内核将硬件设备动态映射为这些特殊文件。/proc和/sys:并不是真实磁盘文件,而是内核在内存中动态生成的虚拟文件系统,用于查询和调整内核状态。例如查看 CPU 信息:cat /proc/cpuinfo。
实用建议
- 日常操作中,你的工作主要围绕
/home、/etc(修改配置)和/var/log(查看日志)。 - 安装软件时,通过包管理安装的会写入
/usr(bin、share等);手动编译的建议放到/usr/local以避免混乱。 - 备份策略上,要优先保护
/home(个人数据)、/etc(配置)和/var/lib(应用数据)。 - 当系统提示“磁盘空间不足”时,先检查
/var/log、/tmp和/home,通常能找到占位大户。
掌握了根目录下每个分区的职责,你就拥有了在 Linux 文件系统迷宫中快速导航的地图,这也是高效管理和排错的第一步。