Linux 下的各个目录有什么作用
0. 引言
登录一台陌生 Linux 服务器,如何快速熟悉它?答案藏在目录结构里:配置文件在 /etc,第三方软件在 /opt,日志在 /var/log——目录规范是全球 Linux 开发者共同的语言。而目录结构背后,是 Linux 最精彩的架构设计之一:虚拟文件系统(VFS)。它让"目录"可以指向磁盘、内存、网络甚至设备,也让"一切皆文件"成为可能。本章从 VFS 出发,讲透分区与挂载,再逐个解析核心目录的作用。
学习文件系统的意义不止于 Linux 本身:MySQL 的 binlog、Redis 的 AOF 都借鉴了日志文件系统设计,B-Tree 加速磁盘访问的思想同样适用于索引设计。
1. 虚拟文件系统(VFS):一切皆文件
Linux 所有文件和目录都建立在 VFS 之上。当你用标准文件 API 访问一个"文件"时,它背后可能是磁盘、内存、网络或某个设备:
- 不同的目录可以是不同的文件系统:
/用 ext4、/proc用 proc、/tmp用 tmpfs; - 大量操作被抽象为对文件的操作,程序书写统一、扩展性强;
- 接入新设备 = 接入新文件系统,无需改动上层应用。
2. 分区与挂载
2.1 查看分区归属:df
df -h # 查看各挂载点的磁盘使用
df -T # 额外显示文件系统类型示例输出显示 / 挂载在 /dev/sda5 上,文件系统类型为 ext4(一种常用的日志文件系统)。
2.2 查看物理磁盘:fdisk
fdisk -l可以看到磁盘与分区结构:/dev/sda1、/dev/sda2、/dev/sda5 是同一块磁盘上的多个分区。1~4 结尾的是主分区(最多 4 个,用于系统启动),4 以上是逻辑分区——sda2 是主分区,sda5 是它之下的逻辑分区。
2.3 挂载的本质
挂载(Mount)就是把一个文件系统映射到某个目录。文件系统可以是分区、U 盘、读卡器,甚至是内存模拟的磁盘:
mount -l # 查看所有已挂载文件系统
mount /dev/sda6 /abc # 将 /dev/sda6 挂载到 /abc常见特殊文件系统:
| 文件系统 | 作用 |
|---|---|
sysfs | 通过文件访问和设置设备驱动信息 |
proc | 虚拟文件系统,通过文件访问内核进程信息 |
devtmpfs | 在内存中创建设备文件节点 |
tmpfs | 用内存模拟磁盘文件 |
ext4 | 常规磁盘文件系统,管理磁盘文件 |
3. 核心目录详解

| 目录 | 作用 | 关键子项/示例 |
|---|---|---|
/bin | 所有用户可访问的基础可执行文件 | ls、cp、cd |
/sbin | 系统启动必需或管理员专用指令 | 系统初始化命令 |
/dev | 设备文件节点(devtmpfs,内存映射) | /dev/null 销毁输出、/dev/zero 产生 0、/dev/random 随机数 |
/etc | 程序配置文件("and so on") | /etc/passwd 用户信息、/etc/mysql/ |
/proc | 运行中进程与内核信息 | /proc/1122/ 进程信息、/proc/cpuinfo |
/tmp | 临时文件(tmpfs 内存盘) | 重启即清空,禁放重要数据 |
/var | 运行时可变数据 | /var/log 日志、缓存、登录记录 |
/boot | 内核文件与启动镜像 | 位于磁盘头部,启动时加载 |
/home | 普通用户家目录 | /home/lagou,登录后默认工作目录 |
/root | root 用户家目录 | 刻意避开 /home/root,防止误操作 |
/usr | Unix System Resource 系统资源 | /usr/bin、/usr/sbin、/usr/lib(.so 动态库)、/usr/share/man 文档 |
3.1 三个虚拟设备小抄
/dev/null:销毁一切输出的"黑洞",command > /dev/null丢弃输出;/dev/zero:无限产生 0 的虚拟设备,常用于填充文件;/dev/random:产生随机数的虚拟设备,无限读取得到随机序列。
4. 其他常用目录
| 目录 | 作用 | 实践建议 |
|---|---|---|
/opt | Optional Software,第三方软件 | 自装软件优先放这里 |
/media | 自动挂载的设备(U 盘等) | 新版本 Linux 自动挂载于此 |
/mnt | 手动挂载的临时设备 | 手动 mount 的默认落点 |
/srv | 服务数据(网站资源等) | 团队习惯不一,有的用 /www、/data |
两个常见反模式:把程序装到
/home、把数据放到/root——不致命,但会给同事带来困扰。遵循通用规范,登录任何一台服务器都能快速就位。
5. 小结
- VFS 是根:不同目录可以是不同文件系统(磁盘/内存/网络/设备),"一切皆文件"由此而来;
- 分区→挂载→目录:
fdisk -l看盘、df -h看归属、mount建立映射; - 快速熟悉服务器的路线:
/etc看配置、/opt看自装软件、/var/log看日志、/usr看资源; - 思考题:socket 文件都存放在哪里?(提示:socket 是一种特殊的文件类型,多为进程间通信所用,常见的存放位置与
/tmp或/var/run有关。)
下一章讲解 Linux 的 IO 模式,理解阻塞、非阻塞与多路复用——这是网络编程与高并发服务的基础。