Linux 目录结构和重要文件路径说明¶
Linux用精妙的目录结构诠释了"一切皆文件"的设计哲学。本文梳理的不仅是路径位置,更是理解系统运作的逻辑地图——无论是排查/var/log的异常日志,配置/etc下的关键服务,还是挂载/dev中的硬件设备,这些知识都将成为你运维实践的基石。
Linux 目录结构图¶
标准 Linux 发行版的目录结构如下图示:

收藏本文,下次登录服务器时不妨用ls -l验证目录功能,你会发现:命令行下的世界,从未如此清晰。
你一定听说过,在 UNIX 和 UNIX 衍生系统(如 Linux)中,一切皆文件。
如果不是文件,那就一定是正在运行的进程。
Linux 系统中存在多种文件类型。对初学者而言,最重要的三类是:
- 普通文件 —— 由二进制或 ASCII 数据组成的常规文件(文档、图片、音视频等)。
- 目录文件 —— 在 Linux 中,目录也被视为文件,用于存放其他文件和子目录。
- 设备文件 —— 位于
/dev中,为硬件设备(鼠标、键盘、硬盘)提供统一访问接口。
拓展知识
除了上述三类,Linux 还支持符号链接、管道(FIFO)、套接字(socket) 等特殊文件类型。初学者先掌握三类即可,后续再深入了解。
为了便于理解和记忆,我将这些目录分成五个功能组分别介绍。
一、系统启动相关目录¶
这部分目录保存了引导系统、加载内核以及存放基础配置和可执行文件的关键内容。
/ – 根目录¶
根目录由单个斜线 / 表示,是整个文件系统的最顶层。它包含 Linux 系统中所有目录、子目录和文件。
注意
根目录 / 与根用户的家目录 /root 是两个完全不同的位置,切勿混淆。
/boot – 引导文件目录¶
包含 Linux 启动所需的文件:引导加载程序(如 GRUB)、内核映像(如 vmlinuz)以及初始内存磁盘(initrd/initramfs)。
/etc – 配置文件中心¶
神经中枢级别的目录。存放几乎所有服务、脚本和已安装软件的系统级配置文件。例如网络配置、用户账户信息、软件包管理设置等。
/bin – 用户二进制命令¶
包含所有用户(包括普通用户)都可以执行的常用系统命令,如 ls、cp、mv、cat、echo 等。
在现代大多数发行版中,/bin 是指向 /usr/bin 的符号链接。
/sbin – 管理员专用命令¶
存放供 root 用户(或具有 sudo 权限的用户)使用的系统管理命令,如 fdisk、reboot、iptables、ifconfig 等。
/lib – 共享库文件¶
存储 /bin 和 /sbin 中程序运行所需的基本共享库(类似于 Windows 的 DLL)。通常也是指向 /usr/lib 的符号链接。
二、用户数据与可变数据目录¶
这部分目录存放用户的个人文件、应用数据、日志及临时文件。
/home – 普通用户的家目录¶
每个普通用户都会在 /home 下拥有一个同名的子目录(如 /home/alice)。里面包含文档、下载、桌面、音乐等默认文件夹,以及以点开头的隐藏配置文件(如 .bashrc)。
/root – 超级用户的家目录¶
root 用户的专属家目录。普通用户无法访问(权限为 drwx------),只有 root 可以读写。
/opt – 第三方软件安装目录¶
用于存放非系统仓库默认提供的附加软件包,例如手动安装的 QQ、微信、WPS Office、Java 等。通常每个软件会放在 /opt/软件名 下。
/var – 可变数据目录¶
存放系统运行过程中会自动变化的数据,主要包括:
/var/log– 系统及服务日志文件/var/cache– 应用程序缓存/var/spool– 打印队列、邮件队列等/var/tmp– 持久性临时文件(重启后保留)
/tmp – 临时文件目录¶
程序和用户存放临时数据的地方。系统重启后大多数发行版会自动清空此目录。
注意
不要随意删除 /tmp 下正在被程序使用的文件,否则可能导致该程序运行异常。但这些删除操作几乎不会导致整个系统崩溃,不必过度担心。
三、设备与内核接口目录¶
这些目录是 Linux 与硬件、内核及进程交互的桥梁,多数为虚拟文件系统。
/dev – 设备文件目录¶
包含所有硬件设备对应的特殊文件。例如:
/dev/sda– 第一个 SATA/SCSI 硬盘/dev/nvme0n1– 第一个 NVMe SSD/dev/tty– 终端设备/dev/null– 数据黑洞(任何写入的内容都会被丢弃)
/proc – 进程与内核信息虚拟文件系统¶
一个伪文件系统,在内存中动态生成,记录了当前运行的进程和内核状态。最常用的文件包括:
| 文件 | 说明 | 查看命令 |
|---|---|---|
/proc/cpuinfo |
CPU 信息(型号、核心数、频率) | cat /proc/cpuinfo |
/proc/meminfo |
内存使用详情 | cat /proc/meminfo |
/proc/version |
Linux 内核版本 | cat /proc/version |
/proc/mounts |
当前已挂载的文件系统 | cat /proc/mounts |
只读性质
/proc 在系统启动时创建,关机时销毁,其中的文件大小显示为 0,因为它们是实时从内核获取的数据。
/sys – 设备与驱动模型虚拟文件系统¶
比 /proc 更结构化的内核接口,用于管理设备和电源等。通常用于高级调优和开发。
/run – 运行时数据目录¶
存放自系统启动以来的易失性运行时数据,例如进程 PID 文件、系统服务状态等。它是一个 tmpfs(内存文件系统),重启后内容消失。
四、挂载点目录¶
用于临时或动态挂载其他存储设备的空目录。
/mnt – 临时挂载点¶
系统管理员可以在此目录下创建子目录,用于临时挂载硬盘分区、网络存储或 ISO 镜像。
/media – 可移动媒体自动挂载点¶
现代桌面 Linux 会自动将插入的 USB 盘、光盘、手机存储挂载到 /media/用户名/卷标 下。
五、共享只读数据目录¶
/usr – 系统级只读数据¶
最重要的目录之一,存放系统范围的只读共享数据,包括:
/usr/bin– 大多数用户命令/usr/lib– 共享库/usr/share– 文档、图标、man 手册等独立于架构的数据/usr/include– C/C++ 头文件
FHS 演进
许多传统顶层目录(如 /bin、/lib)在现代发行版中都已成为指向 /usr/bin、/usr/lib 的符号链接,这是为了简化系统布局。
常见的重要文件速查表¶
为了便于日常运维,下面按功能分组列出一些关键文件及其路径(已修正过时或发行版特有的内容)。
启动与配置¶
| 文件/目录 | 用途 |
|---|---|
/boot/vmlinuz-* |
Linux 内核映像(具体版本号以实际为准) |
/etc/fstab |
静态文件系统信息(定义磁盘挂载点) |
/etc/crontab |
系统级定时任务配置文件 |
/etc/hosts |
本地主机名到 IP 地址的静态映射 |
/etc/resolv.conf |
DNS 解析器配置 |
/etc/profile |
全局 shell 环境配置(登录时执行) |
/etc/bash.bashrc (Debian/Ubuntu) 或 /etc/bashrc (RHEL) |
全局 bash 配置 |
/etc/skel/ |
新用户家目录模板(创建用户时自动复制) |
硬件与设备¶
| 文件/目录 | 用途 |
|---|---|
/dev/sda、/dev/nvme0n1 |
第一块硬盘的设备文件 |
/dev/null |
丢弃所有写入的数据 |
/dev/random、/dev/urandom |
随机数生成器 |
/proc/cpuinfo |
CPU 信息 |
/proc/meminfo |
内存信息 |
/proc/mounts |
当前挂载的文件系统列表(注意是复数 mounts) |
用户与安全¶
| 文件/目录 | 用途 |
|---|---|
/etc/passwd |
用户账号信息(不含密码) |
/etc/shadow |
加密后的用户密码(仅 root 可读) |
/etc/group |
用户组信息 |
/etc/sudoers |
sudo 权限配置(用 visudo 编辑) |
/var/log/lastlog |
二进制文件,记录每个用户最近一次登录时间 |
/var/log/wtmp |
记录所有登录/注销历史(用 last 命令查看) |
日志与运行时¶
| 文件/目录 | 用途 |
|---|---|
/var/log/syslog (Debian/Ubuntu) |
系统常规日志 |
/var/log/messages (RHEL/CentOS) |
系统常规日志 |
/var/log/auth.log (Debian/Ubuntu) |
认证与安全日志 |
/var/log/kern.log |
内核日志 |
/run |
运行时 PID 和状态文件 |
过时文件说明
/etc/hosts.allow和/etc/hosts.deny仅在安装并启用 tcpwrappers 时有效,现代防火墙(iptables/nftables)已基本替代它。/etc/printcap在 CUPS 环境中很少使用,打印机配置通常位于/etc/cups/printers.conf。/etc/rc.d/init.d属于 SysV init 风格,systemd 发行版已改用 systemd unit(如/etc/systemd/system)。
总结与实战小技巧¶
Linux 的目录结构并非随意设计,而是遵循 FHS 标准,体现了“一切皆文件”的哲学。掌握这些目录的用途,能让你:
- 快速定位配置文件(在
/etc中找) - 排查系统问题(查看
/var/log) - 理解进程与内核(探索
/proc) - 合理管理软件(
/opt与/usr/local)
立即上手的三条命令¶
# 1. 查看根目录下各个目录的权限和所有者
ls -ld /*
# 2. 查看当前已挂载的文件系统及使用情况
df -h
# 3. 在 /etc 中搜索所有 .conf 文件,感受配置文件的分布
find /etc -name "*.conf" | head -20
学习建议
收藏本文,下次登录服务器时,不妨用 ls -l / 和 cat /etc/os-release 开始你的探索之旅。命令行下的世界,从未如此清晰。