ChatGPT生成(2025年10月26日18:25:51)
Gemini修订(2025年10月26日18:28:42)
- Linux 文件系统与目录结构全解析
- 一、整体结构速览
- 二、核心系统目录解析
- 1.
/(根目录):所有路径的起点 - 2.
/bin:基本用户命令 - 3.
/sbin:系统管理命令(Root专用) - 4.
/boot:系统启动文件 - 5.
/dev:设备文件 - 6.
/etc:系统配置文件总目录 - 7.
/home:普通用户主目录 - 8.
/root:超级用户(root)的主目录 - 9.
/lib、/lib64:系统库文件 - 10.
/usr:用户级程序与库 - 11.
/var:可变数据(日志、缓存) - 12.
/tmp:临时文件目录(重启清空) - 13.
/media:外部设备自动挂载点 - 14.
/mnt:手动临时挂载点 - 15.
/opt:“可选”第三方软件安装位置 - 16.
/proc:虚拟内核信息目录 - 17.
/sys:系统硬件信息接口 - 18.
/run:运行时临时数据 - 19.
/srv:“服务”运行数据目录 - 20.
/lost+found:文件系统错误恢复区
- 1.
- 三、现代目录变化(Merged /usr)
Linux 文件系统与目录结构全解析
Linux 系统中的所有文件和目录都位于根目录 / 下,形成一个树状层级结构(Filesystem Hierarchy)。这与 Windows 的多盘符(如 C:\、D:\)完全不同。
一、整体结构速览
/
├── bin/ # 基本用户命令(如 ls, cp, mv)
├── boot/ # 启动加载文件(内核、引导器)
├── dev/ # 设备文件(硬盘、终端、USB)
├── etc/ # 系统配置文件
├── home/ # 普通用户的主目录
├── lib/, lib64/ # 系统库文件
├── media/ # 可移动介质(U盘、光盘)挂载点
├── mnt/ # 临时挂载点
├── opt/ # 第三方软件安装位置
├── proc/ # 虚拟内核信息目录(系统状态)
├── root/ # root 用户的主目录
├── run/ # 临时运行数据(PID、socket)
├── sbin/ # 系统管理命令(需root权限)
├── srv/ # 服务数据目录(如FTP、WWW)
├── sys/ # 系统硬件信息接口
├── tmp/ # 临时文件目录
├── usr/ # 用户级程序与库
├── var/ # 可变数据(日志、缓存)
└── lost+found/ # 文件系统错误恢复区
二、核心系统目录解析
1. /(根目录):所有路径的起点
所有路径的起点。系统启动后从这里加载其他目录。
任何磁盘、分区、设备都必须挂载到这个根目录树中才能被访问。
2. /bin:基本用户命令
存放最基本的用户命令,单用户模式下仍然可用。
例如:
/bin/ls # 列出目录
/bin/cp # 复制文件
/bin/mv # 移动文件
/bin/cat # 查看文件内容
/bin/bash # bash shell 解释器
这些命令通常为普通用户和 root 都可执行。
注意:现代发行版中/bin已被软链接到/usr/bin。
3. /sbin:系统管理命令(Root专用)
存放系统管理命令,主要供 root 使用。
例如:
/sbin/reboot
/sbin/shutdown
/sbin/ifconfig
/sbin/fsck # 文件系统检查
/sbin/mkfs # 创建文件系统
在 Ubuntu/Debian 现代系统中,也多为
/usr/sbin的链接。
4. /boot:系统启动文件
系统启动所需的核心文件:
/boot/vmlinuz-* # Linux 内核文件
/boot/initrd.img # 初始 RAM 磁盘镜像
/boot/grub/ # GRUB 引导器配置
⚠️ 通常会单独分区(如
/dev/sda1),避免被误操作破坏。
5. /dev:设备文件
设备文件目录(Device Files)。
Linux 将所有设备都视为“文件”,这里存放的是设备节点。
/dev/sda1 # 第一块硬盘的第一个分区
/dev/tty # 终端设备
/dev/null # 空设备(丢弃输出)
/dev/zero # 无限输出空字节
/dev/random # 随机数设备
查看设备:
lsblk # 列出块设备
lscpu # 查看CPU信息
lspci, lsusb # 查看PCI/USB设备
6. /etc:系统配置文件总目录
系统配置文件总目录,是 Linux 的「大脑」。
所有服务、用户、网络、系统行为都在这里定义。
示例:
/etc/passwd # 用户信息
/etc/shadow # 用户密码
/etc/hosts # 本地主机名映射
/etc/hostname # 系统主机名
/etc/fstab # 文件系统挂载表
/etc/ssh/sshd_config # SSH 服务配置
建议:修改配置前备份原文件。
7. /home:普通用户主目录
存放普通用户的主目录,每个用户一个独立文件夹。
/home/alice/
/home/bob/
用户的个人文件、桌面配置、下载目录等都在这里。
8. /root:超级用户(root)的主目录
超级用户 root 的主目录。
权限最高,建议谨慎操作。
注意:不是/根目录,而是 root 用户的“家”。
9. /lib、/lib64:系统库文件
系统运行所需的动态链接库(相当于 Windows 的
.dll)。
比如/lib/x86_64-linux-gnu/libc.so.6是最基本的 C 运行库。
现代系统中也多为链接到/usr/lib。
10. /usr:用户级程序与库
“user system resources” 的缩写,系统中体积最大的目录之一。
存放用户级程序、库文件、文档、头文件等。
/usr/bin # 用户命令(如 gcc、python、vim)
/usr/sbin # 系统管理命令
/usr/lib # 对应库文件
/usr/include # C/C++头文件
/usr/share # 文档、帮助、字体、icons
/usr/local # 用户自行编译安装的软件
通常
/usr/local比/usr优先级更高。
11. /var:可变数据(日志、缓存)
存放可变数据,例如日志、缓存、锁文件。
/var/log/ # 系统日志
/var/spool/ # 打印队列、邮件队列
/var/tmp/ # 持久临时文件
/var/lib/ # 程序状态数据(如数据库)
日志排错时常用命令:
tail -f /var/log/syslog
journalctl -xe
12. /tmp:临时文件目录(重启清空)
临时文件目录。系统重启后会清空。
程序运行时的缓存、安装包临时数据常存放此处。
例如/tmp/pip-xxxx或/tmp/vscode-remote/。
13. /media:外部设备自动挂载点
外部设备的挂载点(自动挂载)。
插入 U 盘或光盘后,通常挂载到:
/media/用户名/设备名/
14. /mnt:手动临时挂载点
临时挂载点,常用于手动挂载外部分区或网络文件系统。
mount /dev/sdb1 /mnt
15. /opt:“可选”第三方软件安装位置
“optional” —— 第三方软件的安装目录。
例如:
/opt/google/chrome/
/opt/lampp/ # XAMPP
/opt/nvidia/
一般手动或企业部署软件会放在这里。
16. /proc:虚拟内核信息目录
虚拟文件系统(非真实文件),由内核动态生成,反映当前系统状态。
/proc/cpuinfo # CPU 信息
/proc/meminfo # 内存信息
/proc/uptime # 系统运行时间
/proc/[pid]/ # 进程信息目录
可通过
cat直接查看,或配合top、ps、htop使用。
17. /sys:系统硬件信息接口
另一个虚拟文件系统,提供系统硬件和内核接口。
现代系统使用/sys取代部分/proc功能。
示例:
/sys/class/net/eth0/ # 网络设备属性
/sys/block/sda/ # 磁盘设备信息
18. /run:运行时临时数据
存放系统运行时生成的数据,如 PID、socket、锁文件等。
/run/systemd/
/run/sshd.pid
⚠️
/run通常是临时文件系统(tmpfs),重启后会清空。
19. /srv:“服务”运行数据目录
“service”的缩写,用于存放服务运行数据。
/srv/ftp/
/srv/www/
在自建服务(如 Web/FTP)时可存放实际数据文件。
20. /lost+found:文件系统错误恢复区
当文件系统损坏或非正常关机后,
fsck会恢复孤立文件到此目录。
通常存在于每个分区的根目录下。
三、现代目录变化(Merged /usr)
Ubuntu、Debian、Fedora 等现代系统使用了 “usr merge”:
/bin -> /usr/bin
/sbin -> /usr/sbin
/lib -> /usr/lib
这样可统一路径结构,简化系统维护。
因此看到符号链接(lrwxrwxrwx)是正常现象。
浙公网安备 33010602011771号