Linux 的目录结构
如果你刚接触 Linux,打开根目录/后可能会被一堆陌生文件夹吓到:
/bin /boot /dev /etc /home /proc /usr /var ...
这些目录可不是乱放的,它们遵循一套国际标准——FHS(文件系统层次结构标准)。
理解了这套目录结构,你就能在 Linux 系统里“闭着眼睛”找到任何东西。
一、核心理念:一切从根开始
Linux 的整个文件系统是一棵倒挂的树:
树根:/(根目录)
树枝:各个子目录(/home、/etc、/var……)
树叶:具体文件
无论你插几块硬盘、几个 U 盘,它们都必须挂载到这棵树的某个目录上,才能被访问。
二、最常用的几个目录(必须掌握)
| 目录 | 全称 / 含义 | 存放什么 | 备注 |
|---|---|---|---|
/ | 根目录 | 整个文件系统的起点 | 最高一级,没有上级 |
/bin | binaries | 普通用户也能用的系统命令(如ls、cp) | 软链接到/usr/bin |
/sbin | system binaries | 管理员专用命令(如fdisk、mkfs) | 只有 root 能用 |
/boot | boot | 启动文件(内核、引导配置) | 千万别乱删 |
/dev | devices | 硬件设备文件(硬盘、键盘、鼠标) | 一切皆文件的体现 |
/etc | etcetera | 系统配置文件 | 装完软件常来这里改配置 |
/home | home | 普通用户的家目录 | /home/用户名/ |
/root | root | 超级管理员的家目录 | 普通用户进不去 |
/tmp | temporary | 临时文件 | 重启后可能被清空 |
/usr | Unix Software Resource | 系统软件资源 | 软件默认装在这里 |
三、家目录:你的私人地盘
Linux 是多用户系统,每个用户都有自己的私人文件夹:
| 用户类型 | 家目录路径 | 说明 |
|---|---|---|
| 超级管理员(root) | /root | 权限无限制,家目录独立在根下 |
普通用户(如zhang) | /home/zhang/ | 自己的文档、下载、配置都在这儿 |
普通用户之间默认不能互相访问对方的家目录,除非管理员授权。
四、几个容易混淆的目录
1./binvs/sbin
| 目录 | 谁能用 | 例子 |
|---|---|---|
/bin | 所有人 | ls、cat、echo |
/sbin | 仅 root | reboot、fdisk、mkfs |
2./mntvs/media
| 目录 | 用途 | 现状 |
|---|---|---|
/mnt | 手动临时挂载(比如 U 盘) | 系统预置的空目录,自己用 |
/media | 自动挂载点(插入 U 盘自动出现) | 现代桌面 Linux 常用 |
3./procvs/sys
这两个目录不在硬盘上,而是存在于内存中(虚拟文件系统):
| 目录 | 内容 | 例子 |
|---|---|---|
/proc | 进程和内核信息 | cat /proc/cpuinfo看 CPU 信息 |
/sys | 硬件设备和内核参数 | 调整系统运行时行为 |
关机就会清空,重启重新生成。
五、软链接(快捷方式):/bin其实是/usr/bin的门牌
/bin是/usr/bin的软连接(快捷方式)
这是很多 Linux 发行版的做法:
bash
/bin → /usr/bin /sbin → /usr/sbin /lib → /usr/lib /lib64→ /usr/lib64
也就是说,你平时用的ls命令,实际上在/usr/bin/ls,只是系统在/bin给你开了个“快捷方式”。
这样做的好处是简化目录结构,把常用的目录统一收纳到/usr下。
六、第三方软件装在哪里?
/opt:第三方安装的软件保存位置
推荐装在/usr/local
这两个都是合法选择:
| 目录 | 适用场景 | 例子 |
|---|---|---|
/usr/local | 手动编译安装的软件 | 自己从源码make install |
/opt | 大型商业软件、打包好的第三方软件 | Oracle、Google Chrome |
现代 Linux 更推荐用包管理器(apt、yum、dnf)安装,会自动放到正确位置。
七、一张图记住整个目录结构
text
/ ← 根目录 ├── bin → /usr/bin ← 普通命令 ├── sbin → /usr/sbin← 管理员命令 ├── boot ← 启动文件(别动!) ├── dev ← 设备文件 ├── etc ← 配置文件 ├── home ← 普通用户的家 │ └── 用户名/ ├── root ← root 的家 ├── tmp ← 临时文件 ├── usr ← 软件资源 │ ├── bin │ ├── lib │ └── local ├── var ← 日志、缓存 ├── proc ← 虚拟(内存) └── sys ← 虚拟(内存)
