人人都会AI编程

根目录结构:/bin、/etc、/home、/var、/usr 等目录职责

更新时间:2026-07-12

Linux 的文件系统从根目录 / 开始,以单一树状结构组织所有文件,各个分区或存储设备都被“挂载”到这棵树的某个分支上。为了保持不同发行版之间的兼容和可预测性,社区遵循一套名为 FHS(Filesystem Hierarchy Standard,文件系统层次结构标准) 的约定。掌握这些目录的职责,你就能在遇到任何 Linux 系统时,迅速找到配置文件、日志、可执行程序和用户数据所在的位置。

下面逐一看几个最核心的目录及其实际用途。

/bin / /sbin:基础可执行命令

  • /bin 存放所有用户都必需的基本命令,例如 lscatcpmvbashgrep 等。即使系统在单用户模式下、只挂载了根文件系统,这些命令也必须可用。
  • /sbin 存放系统管理类基本命令,通常需要 root 权限执行,如 fdiskmkfsifconfigreboot 等。

在现代发行版中,/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(有 binlibetc 等),不会与包管理系统冲突。例如源码编译的程序安装到 /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(查看日志)。
  • 安装软件时,通过包管理安装的会写入 /usrbinshare 等);手动编译的建议放到 /usr/local 以避免混乱。
  • 备份策略上,要优先保护 /home(个人数据)、/etc(配置)和 /var/lib(应用数据)。
  • 当系统提示“磁盘空间不足”时,先检查 /var/log/tmp/home,通常能找到占位大户。

掌握了根目录下每个分区的职责,你就拥有了在 Linux 文件系统迷宫中快速导航的地图,这也是高效管理和排错的第一步。