刚接触 Linux 的人,第一眼看到根目录下一堆 /bin、/etc、/var、/usr 这样的文件夹,很容易懵:它们到底都是干嘛的?
这篇帮你一次理清。
文章参考了网络内容,并对照 2026 年主流发行版(Ubuntu / Debian / Fedora / Arch)的实际情况做了核对修正——网上很多老教程讲的内容,在今天的系统上其实已经变了,文里会特别标出来。
先记住两件事:一切皆文件 + 只有一个根
第一,Linux 的核心哲学是「一切皆文件」。
鼠标、硬盘这些硬件,在系统里都体现为一个文件;
进程、系统状态、日志、配置,也全是文件。
操作这些文件,就等于在跟硬件和系统打交道。
这是它和 Windows 最根本的区别。
第二,Linux 没有 C 盘 D 盘,只有一个根。
所有文件和目录从唯一的根目录 /(正斜杠)出发,组成一棵树。
哪怕你加了一块新硬盘,也不是出现”E 盘”,而是把硬盘挂载(mount)到树的某个目录下(比如 /mnt/data)才能用。
系统核心目录:开机和运行都靠它们
/bin—— 基础命令工具箱:ls、cp、mv、cat、bash这些最常用命令都在这里,是所有用户都能用的基础命令。/sbin—— 系统管理员命令:fdisk(分区)、mkfs(格式化)、reboot(重启)这类系统管理命令,一般需要 root 权限才能执行。/boot—— 开机启动的关键:内核(vmlinuz)、引导程序配置(GRUB)都在这里。动它之前想清楚,删了电脑很可能直接开不了机。/lib—— 共享库(程序的”零件库”):命令和程序运行依赖的共享库文件,相当于引擎的零件。删了它,依赖这些库的命令会全部瘫痪,系统基本就废了。/etc—— 系统配置中心:系统级配置和绝大多数软件设置都在这,比如用户账号(passwd)、主机名(hostname)、开机挂载表(fstab)。改这里的文件务必先备份。
这里有个网上教程没更新的事:/bin、/sbin、/lib 现在大多是”链接”
老教程会把 /bin 和 /usr/bin 讲成两套不同目录,理由是早期磁盘小、系统启动时要分阶段挂载。但今天的发行版基本都做了 usrmerge(/usr 合并):Fedora 2012 年率先推行,现在 Arch、openSUSE、以及较新版的 Debian、Ubuntu 都已是默认。合并后 /bin、/sbin、/lib、/lib64 只是指向 /usr/bin、/usr/sbin、/usr/lib 的符号链接,文件实体其实都在 /usr 下面。
所以当你 ls /bin 看到的东西和 /usr/bin 一样,别怀疑装错了系统,这是正常现象。习惯上大家仍叫”看 bin 目录”,心里知道它现在指向 /usr 就行。
用户与软件目录:你的文件和装的应用
/home—— 普通用户的家:每个用户一个子目录(如/home/你的用户名),存个人文件、项目代码都行,权限归自己管。/root—— 管理员的家:root 用户(系统最高权限管理员)的家目录,普通用户默认没权限进去。/usr—— 最大的软件区(类比 C:\Program Files):大多数软件和命令都装在这里,如/usr/bin(用户程序)、/usr/lib(库)、/usr/share(图标、文档、语言包等共享数据)。自己手动编译安装的软件则放在/usr/local,和系统包管理装的软件分开,互不干扰。/opt—— 第三方/商业软件:一些自带全套文件的软件(如 Google Chrome、JetBrains 系工具)整个装在/opt下自己的文件夹里,一个目录就是一套,删除即卸载,非常干净。
动态与虚拟目录:会变化和”看不见”的内容
/var—— 动态数据区:系统运行中不断变化的数据都在这,重点是/var/log(各种日志)、网站数据(/var/www)、数据库文件、缓存等。服务器出问题排查,第一站就是这里。/tmp—— 临时文件:系统和程序产生的临时文件放这里。现在很多发行版把 /tmp 做成了内存盘(tmpfs),速度快但重启就清空,千万别存重要数据。/run—— 开机后的运行时数据:进程 PID、socket 等运行信息,同样是内存盘,每次重启重建。/dev—— 设备文件:硬盘、鼠标、键盘在系统里都对应这里的文件(如硬盘是/dev/sda)。通过读写这些文件与硬件交互。/proc—— 系统实时仪表盘(虚拟目录):不占硬盘空间,由内核实时生成,显示进程、CPU、内存等运行状态,如/proc/cpuinfo能直接看 CPU 信息。/sys—— 另一个虚拟目录:比 /proc 更有条理地展示内核设备与可调参数,同样不占磁盘。/mnt和/media—— 挂载点:/mnt 一般用于手动临时挂载(如新硬盘、网络盘);U 盘、移动硬盘等可移动设备插入后通常自动挂载到 /media 下。
动手验证:在自己电脑上看看
光看不如动手。打开终端敲下面几条命令,一条条理解输出:
ls / # 看根目录下有哪些目录
ls -ld /bin /sbin /lib # 若显示 bin -> usr/bin,说明已做 /usr 合并
cat /proc/cpuinfo # 实时看 CPU 信息(虚拟目录演示)
df -hT /tmp # 看 /tmp 是不是 tmpfs(内存盘)
lsblk # 看磁盘和挂载点,理解"挂载"
记忆口诀
系统配置看
/etc,日常命令看/bin,用户数据看/home,日志动态看/var,开机启动看/boot。
记住这几句,再看任何发行版的目录结构都能一眼对上号——布局规则是统一的(FHS 文件系统层次标准),换发行版也不会乱。
新手常见疑问
- 为什么 /bin 和 /usr/bin 内容一样? 因为 usrmerge 后 /bin 是指向 /usr/bin 的符号链接,两个路径指向同一个地方。
- 不小心删了 /lib 或 /usr 会怎样? 系统依赖的库和程序都没了,命令大面积失效,基本只能重装——所以别乱删。
- 软件装哪了? 用
which 命令名找可执行文件位置;包管理安装的软件可用dpkg -L 包名(Debian/Ubuntu)或rpm -ql 包名(RedHat/Fedora)查看文件清单。 - 改配置前要注意什么? 改 /etc 下的文件先备份(如
cp /etc/xxx /etc/xxx.bak),很多服务改完要重启或 reload 才生效。
小结
Linux 的目录结构分工非常明确:系统文件、配置文件、用户文件、动态数据各居其位。
搞懂 /etc(配置)、/bin(命令)、/home(用户)、/var(日志动态数据)、/boot(启动)这几个核心目录,再加上”现在的 bin/sbin/lib 大多已并入 /usr”这个现状认知,Linux 入门就算迈出关键一步了。
建议亲手敲一遍上面的命令,印象会深得多。







