Linux 目录结构分析
第一次登录 Linux 服务器,ls / 看到一排陌生的短名字目录,多半会有点懵。这篇笔记把根目录下常见目录的职责梳理一遍,弄清楚"什么东西该放在哪"。
为什么目录长这样
Linux 的目录布局不是随意约定的,背后有一份叫 FHS(Filesystem Hierarchy Standard,文件系统层次结构标准)的规范。它规定了每类文件应该放在哪个目录下:可执行程序、配置、日志、临时文件各归各位。这样做的好处很直接——
- 软件包管理器知道把文件装到哪里,卸载时也能干净地删掉;
- 运维排查问题时,不用猜配置和日志在哪,
/etc和/var/log基本不会落空; - 不同发行版之间保持大体一致,经验可以迁移。
想看自己机器上的根目录布局,一条命令就够:
# 查看根目录下的一级目录
ls -l /
核心目录逐个看
1)程序与命令
/bin:存放着常用的指令和二进制可执行程序,比如 ls、cp、cat 这些所有用户都会用到的基础命令。
/sbin:管理员用户才能执行的命令和程序文件夹,典型的如网络配置、磁盘分区、系统关机重启相关的工具。普通用户的 PATH 里通常不包含它。
/usr:用户应用程序和文件放置的文件夹目录。名字容易被误解成 "user",实际是 Unix System Resources 的意思。系统安装的绝大多数软件都在这里,/usr/bin、/usr/lib、/usr/share 分别放程序、库和共享数据。不少现代发行版做了 usr 合并,/bin 其实是指向 /usr/bin 的软链接:
# 在做了 usr 合并的发行版上可以看到软链接关系
ls -ld /bin /sbin
/opt:optional,"可选择"的意思,作用是安装第三方软件的地方。区别于 /usr 由包管理器接管,/opt 更适合放自带完整目录结构的商业软件或手动解压安装的大型软件,一个软件一个子目录,删起来也省事。
2)配置与设备
/etc:专用于存放系统的配置文件和子目录列表。改系统行为基本都是在这里动手,比如 /etc/fstab、/etc/hosts、/etc/ssh/。备份系统配置时,这个目录是重点。
/dev:Device(设备)的缩写,是 Linux 系统目前连接的外部设备。Linux 遵循"一切皆文件"的设计,外部设备的访问和文件访问的方式一样——磁盘是 /dev/sda,终端是 /dev/tty,还有 /dev/null 这种特殊设备。
/boot:存放启动 Linux 系统的内核文件,包括连接文件和镜像文件,引导加载器(如 GRUB)的配置也在这里。这个目录轻易不要动,删错文件系统可能起不来。
3)用户数据
/home:用户文件夹,每个系统账号都会创建一个不同的文件夹名称,比如用户 alice 的家目录就是 /home/alice。
/root:管理员用户的主目录。注意它不在 /home 下面——这样即使 /home 挂载的分区出问题,root 用户依然能正常登录排障。
4)运行时与易变数据
/var:存放着经常变动的文件,例如系统日志等文件。/var/log 放日志,/var/lib 放服务的持久数据(数据库文件常在这里),/var/cache 放缓存。磁盘被打满时,第一个该检查的往往就是它:
# 找出 /var 下占用空间最大的子目录
du -sh /var/* | sort -rh | head
/tmp:临时文件目录。存放程序运行中产生的临时文件,任何用户都可写。很多发行版会定期清理其中长时间未访问、未更改或未修改的文件(比如 10 天),所以别把需要保留的东西放在这里。
/run:临时文件目录,存储系统启动以来的临时信息,比如服务的 PID 文件和 socket 文件。当系统重启,该目录下的文件将会被清理掉——它通常挂载在内存上,天然易失。
容易混淆的几组目录
- /tmp 与 /run:都是临时目录,但
/tmp面向应用程序和用户,/run面向系统服务的运行时状态;/run重启必清空,/tmp取决于发行版策略。 - /opt 与 /usr/local:都用来装包管理器之外的软件。手动编译安装的软件习惯放
/usr/local(结构与/usr平行),整包解压的第三方软件放/opt。 - /root 与 /:前者是 root 用户的家目录,后者是整个文件系统的根,名字像但完全是两回事。
排查"磁盘满了"这类问题时,优先看 /var/log 和 /tmp;找某个软件的配置时,优先去 /etc 下搜同名目录。记住目录职责,比记住具体路径更有用。
小结
Linux 的目录结构本质上是按"文件的性质"分类:程序放 /bin、/usr,配置放 /etc,易变数据放 /var,临时文件放 /tmp 和 /run,用户数据放 /home。理解了这套分类逻辑,面对一台陌生的机器也能很快找到要找的东西。
评论 / COMMENTS