Linux 目录结构入门:根目录下每个文件夹是干什么的

刚接触 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 入门就算迈出关键一步了。

建议亲手敲一遍上面的命令,印象会深得多。

© 版权声明
THE END
喜欢就支持一下吧
分享