Linux 系统目录结构 新手超详细详解
Linux 的目录设计和 Windows 有本质区别:Windows 是「多盘符并列」(C 盘、D 盘、E 盘),每个盘都是独立的树形结构;而 Linux 是单根树形结构,整个系统只有一个最顶层的「根目录」/,所有文件、文件夹、硬件设备都以目录 / 文件的形式,挂在这棵树上。
这个设计就是 Linux 核心思想「一切皆文件」的体现:不管是普通文档、程序、硬盘、串口、甚至进程,都统一用「文件 / 目录」的形式来访问和操作。
一、先搞懂 2 个基础概念
1. 绝对路径 vs 相对路径
所有目录定位都分两种写法,新手一定要分清:
| | | |
|---|
| | 无论你当前在哪个目录,路径都是唯一的,一定能找到文件 | /etc/apt/sources.list、/home/zhangsan/learn_linux |
| | | 你在 /home/zhangsan 时,learn_linux/test.txt 就是相对路径 |
快速判断:以 / 开头的就是绝对路径,否则就是相对路径。
2. 4 个必记特殊路径符号
二、核心目录逐个讲(按功能分类,附实例)
下面按「常用程度 + 功能分类」讲解,标注「⭐新手高频」的是你日常会经常用到的,标注「⚠️新手勿碰」的是系统核心目录,不要乱改乱删。
1. 最顶层:根目录 /
- 作用:整个系统的唯一入口,所有目录都从这里延伸出去,相当于 Windows 的「此电脑」,但层级更高。
- 特点
- 根目录下的一级子目录都是系统预设的,有严格的功能划分,不要随便新建 / 删除
- 新手注意:不要直接在根目录下存自己的文件,个人文件都存在自己的家目录里。
2. ⭐系统配置核心:/etc
- 全称:Editable Text Configuration(可编辑文本配置)
- 作用:存放所有系统级的配置文件,相当于 Windows 的系统注册表 + 配置文件夹。大到用户账号、网络设置,小到软件的配置,都存在这里。
- 特点:几乎所有配置都是纯文本文件,修改文本就能改系统配置。
- 真实举例(你已经用过的)
/etc/apt/sources.list:Ubuntu 软件源配置文件,你换源的时候修改的就是它/etc/passwd/etc/hostname/etc/ssh/sshd_config
- 新手注意:修改这里的文件前最好先备份,改错配置可能导致系统功能异常。
3. ⭐用户目录:/home、/root
(1)普通用户家目录:/home
- 作用:所有普通用户的个人目录都放在这里,每个用户对应一个子目录。
- 举例:你的用户名是
linuxlearn,那你的家目录就是 /home/linuxlearn,简写为 ~。 - 特点
- 用户对自己的家目录有完全的读写执行权限,随便创建、修改、删除文件都不会影响系统
- 对应 Windows:相当于
C:\Users\你的用户名 文件夹,存放桌面、文档、下载等个人数据。
(2)管理员家目录:/root
- 作用
- 特点
- 不和普通用户一起放在
/home 下,独立在根目录
- 新手注意:日常操作不要用 root 用户,普通用户加
sudo 临时提权即可,更安全。
4. 程序与命令类目录
Linux 里的所有命令、软件本质都是可执行文件,按「重要程度 + 使用用户」分类存放在不同目录。
(1)基础命令:/bin、/sbin
表格
| | | | |
|---|
/bin | | 存放系统最基础的命令,单用户救援模式也能使用,是系统保命用的 | ls | |
/sbin | | | fdisk(磁盘分区)、ifconfig(网络配置)、reboot(重启) | |
小知识:现在很多主流发行版(比如新版 Ubuntu)已经把 /bin 和 /usr/bin 合并了,但设计逻辑还是保留的。
(2)⭐用户级程序:/usr
- 全称:Unix System Resources(Unix 系统资源),不是「user 用户」的意思
- 作用:相当于 Windows 的
Program Files,存放系统自带的用户级软件、命令、库、文档,是系统里最大的目录之一。 - 核心子目录
/usr/bin:用户级的普通命令,比如 apt、nano、tree/usr/sbin:用户级的管理命令,比如 useradd(添加用户)/usr/local:用户自己编译安装的软件默认安装在这里,比如你从官网下载源码编译的程序,会放到 /usr/local/bin,不会和系统自带的软件冲突,卸载也方便/usr/share:共享的静态数据,比如软件的帮助文档、图标、字体、配置模板
(3)第三方软件:/opt
- 全称
- 作用
- 特点:每个软件占一个独立的子目录,不会把文件分散到系统各处,卸载的时候直接删除整个目录就行。
- 举例:很多企业级软件、IDE、游戏客户端喜欢装在这里,比如部分版本的 VS Code、Chrome、Oracle 数据库。
5. 设备与虚拟文件系统(「一切皆文件」的核心体现)
这部分目录里的文件都不是真实存在于硬盘上的,是系统启动后在内存里虚拟出来的,重启就会消失,用来和硬件、内核交互。
(1)⭐设备文件:/dev
- 全称
- 作用:所有硬件设备都以「文件」的形式存在这里,操作这个文件就等于操作对应的硬件。
- 常见设备文件举例:
表格
| | |
|---|
/dev/sda | | sda 是第一块,sdb 是第二块,后面加数字是分区,比如 /dev/sda1 是第一个分区 |
/dev/mmcblk0 | | 嵌入式设备、开发板常用,比如 OK62xx 的存储芯片 |
/dev/ttyS0 | | |
/dev/ttyUSB0 | | |
/dev/null | | 写入的所有数据都会被丢弃,经常用来屏蔽不需要的命令输出,比如 ls > /dev/null |
/dev/zero | | |
(2)⭐进程与内核信息:/proc
- 全称
- 作用:虚拟文件系统,实时反映内核的运行状态、进程信息、硬件参数,所有数据都是系统从内存里实时生成的,不占硬盘空间。
- 经典举例(你已经用过的)
/proc/cpuinfo:CPU 的详细硬件信息,执行 cat /proc/cpuinfo 就能查看/proc/meminfo/proc/version/proc/数字:每个运行中的进程对应一个数字目录(数字是进程 PID),里面存着这个进程的所有信息
- 新手注意
(3)硬件设备管理:/sys
- 作用:比
/proc 更结构化的虚拟文件系统,专门用来管理硬件设备,存放设备树、驱动、总线信息。 - 特点:嵌入式 Linux 开发用得非常多,比如配置 GPIO、控制外设,很多都是通过读写
/sys 下的文件实现的。 - 新手注意:普通用户了解即可,驱动开发、嵌入式开发才需要深入。
6. 运行时与可变数据:/run、/var
(1)运行时临时数据:/run
- 作用:存放系统启动后运行过程中产生的临时数据,比如进程的 PID 文件、套接字文件、锁文件。
- 特点
/run/sshd.pid/run/user/1000
(2)⭐可变数据:/var
- 全称
- 作用:存放内容会频繁变化的文件,比如日志、缓存、数据库、邮件。和
/tmp 的区别是,/var 里的文件不会自动清空,会长期保留。 - 核心子目录(新手常用)
/var/log/syslog/var/log/auth.log/var/log/apt/
/var/log:系统日志目录,所有系统日志、软件日志都存在这里,排错必看 /var/cache:软件缓存目录,比如 apt 下载的安装包缓存在 /var/cache/apt/archives/var/www:如果安装了 Nginx/Apache 网页服务器,网站的网页文件默认放在这里
7. ⭐临时文件:/tmp
- 全称
- 作用:所有用户都能读写的公共临时目录,用来存放临时文件、安装包、缓存。
- 特点
- 系统会定期清理(比如重启后清空,或者超过一定时间自动删除)
- 新手用法
- 下载的临时安装包、测试脚本,可以放这里,不用手动清理
8. 挂载扩展目录:/mnt、/media
Linux 里要访问 U 盘、移动硬盘、其他分区,需要把它「挂载」到一个空目录上,访问这个目录就等于访问这个设备。
(1)手动挂载:/mnt
- 全称
- 作用:给管理员手动挂载临时设备用的目录,比如挂载 U 盘、移动硬盘、网络共享。
- 举例:你插了一个 U 盘,手动挂载到
/mnt/usb 目录,进入 /mnt/usb 就能看到 U 盘里的文件。
(2)自动挂载:/media
- 作用:系统自动挂载可移动设备的目录,比如 U 盘、光盘、移动硬盘。
- 举例:桌面版 Ubuntu 插上 U 盘后,系统会自动挂载到
/media/你的用户名/U盘名称 下面,直接点开就能用。
9. ⚠️系统启动:/boot
- 作用:存放系统启动需要的所有核心文件,包括 Linux 内核文件、引导程序(GRUB)、启动配置。
- 举例
vmlinuz-xxxinitrd.img-xxx
- 新手警告:绝对不要删除、修改这里的文件,删错了系统直接开不了机,只能重装。
10. 共享库:/lib、/lib64
- 全称
- 作用:存放程序运行需要的共享库文件,相当于 Windows 里的
.dll 文件。 /lib64- 特点:
/bin、/sbin 里的命令都依赖这些库才能运行,删错了命令会直接无法执行。 - 新手注意
三、WSL 专属目录说明
在 WSL 里,除了上面的标准 Linux 目录,还有和 Windows 互通的目录:
- Windows 磁盘挂载点
/mnt/c/mnt/d- 你可以在 Linux 里直接读写 Windows 的所有文件,路径就是
/mnt/盘符/路径
- Linux 文件在 Windows 里的访问
- 打开 Windows 文件资源管理器,地址栏输入
\\wsl$ 回车,就能看到你安装的发行版,点进去就是完整的 Linux 根目录。
四、新手速记:常用目录 & 避坑指南
1. 你日常高频使用的目录
表格
| |
|---|
~ | 个人文件、练习代码、下载内容,随便折腾,不会影响系统 |
/tmp | |
/etc | |
/var/log | |
/mnt | |
2. 新手绝对不要碰的目录
五、新手常见疑问解答
1. 为什么 Linux 不分 C 盘 D 盘?
这是 Unix/Linux 的设计哲学:统一命名空间。所有设备、所有存储都挂载到同一棵目录树上,访问任何东西都用「路径」这一种方式,不用管它是硬盘、U 盘、还是网络文件夹,用法完全一致。
2. 我自己的文件存在哪里最安全?
存在自己的家目录 ~ 下面。这里你有完全权限,怎么折腾都不会搞坏系统;就算系统崩了要重装,只要备份家目录,你的所有文件、配置都能保留。
3. 怎么快速记住这么多目录?
不用死记硬背,用多了自然就记住了。新手先记住「家目录、/etc、/tmp、/var/log」这几个最常用的,其他的用到的时候查就行。