张芷铭的个人博客

目录结构和用途

Linux 文件系统采用单一根目录树状结构,所有文件和目录都挂载在根目录 / 之下,遵循 FHS(Filesystem Hierarchy Standard,文件系统层次结构标准),核心设计思想是分类存放、职责明确。下面从整体架构核心目录用途两方面做一般性介绍,兼顾通用性和实用性。

一、Linux 文件系统的核心特点

  1. 单一根目录:所有文件的起点都是根目录 /,没有 Windows 那样的 C 盘、D 盘分区概念,分区通过挂载的方式融入根目录树。
  2. 一切皆文件:硬件设备(如磁盘、网卡)、进程信息、管道等都以文件形式存在,统一通过文件操作接口管理。
  3. 区分大小写/home/Test/home/test 是两个不同的目录。
  4. 目录类型
    • 普通目录:存放文件和子目录(如 /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:所有用户可执行的普通命令(如 lscp);
- /usr/sbin:root 用户的系统管理命令(如 systemctl);
- /usr/lib:程序运行依赖的共享库(类似 Windows 的 .dll);
- /usr/local:手动安装的第三方软件(如 Hugo、Node.js),优先级高于系统默认程序。
/bin软链接到 /usr/bin,存放系统最基础的命令(如 lsmkdir),单用户模式下也能访问。
/sbin软链接到 /usr/sbin,存放 root 用户的系统管理命令(如 rebootfdisk)。
/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),用户只能读写自己家目录的文件,存放个人代码、配置、博客源码的首选位置
/rootroot 用户的家目录,区别于普通用户的 /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),核心目录的用途都基本一致。

💬 评论