Linux 文件系统采用单一根目录树状结构,所有文件和目录都挂载在根目录 / 之下,遵循 FHS(Filesystem Hierarchy Standard,文件系统层次结构标准),核心设计思想是分类存放、职责明确。下面从整体架构和核心目录用途两方面做一般性介绍,兼顾通用性和实用性。
一、Linux 文件系统的核心特点
- 单一根目录:所有文件的起点都是根目录
/,没有 Windows 那样的 C 盘、D 盘分区概念,分区通过挂载的方式融入根目录树。 - 一切皆文件:硬件设备(如磁盘、网卡)、进程信息、管道等都以文件形式存在,统一通过文件操作接口管理。
- 区分大小写:
/home/Test和/home/test是两个不同的目录。 - 目录类型:
- 普通目录:存放文件和子目录(如
/home、/etc); - 特殊目录:内存挂载的虚拟目录(如
/proc、/sys),不占用磁盘空间,实时反映系统状态; - 软链接:类似 Windows 快捷方式(如
/bin -> /usr/bin)。
- 普通目录:存放文件和子目录(如
二、核心目录的分类与用途
按照 FHS 标准,根目录下的核心目录可分为 4 大类,对应不同的功能定位:
1. 系统配置类目录(核心是 /etc)
这类目录存放系统和应用的配置文件,修改后通常需要重启服务才能生效。
| 目录 | 核心用途 |
|---|---|
/etc | 系统和应用的核心配置文件目录(全称 etcetera),如 SSH 配置 sshd_config、Nginx 配置 nginx.conf、用户账号文件 passwd 等。最常用的配置目录。 |
/boot | 系统启动相关文件,如内核镜像 vmlinuz、启动引导程序 GRUB 配置等,仅系统启动时用到。 |
2. 系统程序与库文件类目录(核心是 /usr、/bin、/lib)
这类目录存放系统运行必需的可执行程序、库文件,普通用户无需修改。
| 目录 | 核心用途 |
|---|---|
/usr | 系统的“软件资源库”,存放用户共享的程序、文档、库文件,是 Linux 中最大的目录之一。 - /usr/bin:所有用户可执行的普通命令(如 ls、cp);- /usr/sbin:root 用户的系统管理命令(如 systemctl);- /usr/lib:程序运行依赖的共享库(类似 Windows 的 .dll);- /usr/local:手动安装的第三方软件(如 Hugo、Node.js),优先级高于系统默认程序。 |
/bin | 软链接到 /usr/bin,存放系统最基础的命令(如 ls、mkdir),单用户模式下也能访问。 |
/sbin | 软链接到 /usr/sbin,存放 root 用户的系统管理命令(如 reboot、fdisk)。 |
/lib//lib64 | 分别软链接到 /usr/lib//usr/lib64,存放 32 位/64 位程序的共享库文件。 |
/opt | 存放大型第三方应用程序(如数据库、开发工具),比如 /opt/mysql、/opt/python,便于集中管理。 |
3. 动态数据类目录(核心是 /var)
这类目录存放经常变化的文件(日志、缓存、数据库等),是运行服务时重点关注的目录。
| 目录 | 核心用途 |
|---|---|
/var | 动态数据的核心目录,内容随系统运行不断变化。 - /var/log:系统和应用的日志文件(如 SSH 日志 secure、Nginx 访问日志 access.log),排查问题的关键目录;- /var/www:传统 Web 服务器根目录,可存放博客静态文件;- /var/lib:应用的数据文件(如 MySQL 数据库文件、Redis 持久化数据);- /var/cache:程序运行的缓存文件(如 Yum 安装缓存)。 |
/run | 系统运行时的临时文件目录(内存挂载),存放进程 PID 文件、服务锁文件等,重启后清空。 |
/tmp | 系统临时文件目录,所有用户可读写,系统会定时清理(重启后清空),适合存放临时下载的安装包。 |
4. 用户与设备类目录(核心是 /home、/dev)
这类目录面向用户数据和硬件设备,是用户操作和系统管理的基础。
| 目录 | 核心用途 |
|---|---|
/home | 普通用户的家目录,每个用户有独立的子目录(如 /home/dev),用户只能读写自己家目录的文件,存放个人代码、配置、博客源码的首选位置。 |
/root | root 用户的家目录,区别于普通用户的 /home,只有 root 可访问,不建议存放普通应用数据。 |
/dev | 设备文件目录,Linux 中所有硬件设备都以文件形式存在(如 /dev/sda 是第一块硬盘、/dev/null 是“黑洞”设备)。 |
/mnt | 临时挂载点,用于手动挂载额外的存储设备(如云盘、U盘),比如 /mnt/blog_data 挂载博客图片存储盘。 |
/media | 自动挂载可移动设备的目录(如光盘、U盘),服务器环境中很少用到。 |
5. 虚拟文件系统目录(无实际磁盘占用)
这类目录是内存挂载的虚拟文件系统,不占用磁盘空间,实时反映内核和系统状态。
| 目录 | 核心用途 |
|---|---|
/proc | 进程和内核信息的虚拟目录,通过文件形式展示(如 /proc/cpuinfo 查看 CPU 信息、/proc/meminfo 查看内存信息)。 |
/sys | 硬件设备和内核参数的虚拟目录,比 /proc 更详细,用于硬件管理和内核调优。 |
三、总结:Linux 文件系统的设计逻辑
Linux 目录结构的核心是 “分类清晰、各司其职”:
- 配置找
/etc,程序找/usr,动态数据找/var; - 用户数据放
/home,临时文件放/tmp,硬件设备在/dev; - 虚拟目录(
/proc、/sys)用于查看系统状态,无需手动修改。
这种结构保证了 Linux 系统的规范性和可维护性,无论什么发行版(CentOS、Ubuntu、Debian),核心目录的用途都基本一致。
💬 评论