Filesystem Hierarchy Standard (FHS) 3.0 详解 — 根目录与子目录完整说明
版本 13.2 LTS "Trixie" | 内核 6.x | systemd
📋 概述
Debian 13 "Trixie" 严格遵循 Filesystem Hierarchy Standard (FHS) 3.0 规范,该标准定义了类 Unix 系统中文件和目录的放置规则与约定。
Debian 系统以根目录 / 为起点,采用树形层次结构组织所有文件与目录。在 Debian 13 中,/bin、/sbin、/lib 已合并为指向 /usr 的符号链接(usr-merge),以简化系统结构。
🌳 根目录树总览
/ # 根目录 (Root Directory)
├── bin/ → usr/bin/ # 基本命令 (符号链接)
├── boot/ # 启动文件与内核
├── dev/ # 设备文件 (虚拟)
├── etc/ # 系统配置文件
├── home/ # 普通用户主目录
├── lib/ → usr/lib/ # 基本库 (符号链接)
├── media/ # 可移动介质挂载点
├── mnt/ # 临时挂载点
├── opt/ # 第三方附加软件
├── proc/ # 进程信息 (虚拟)
├── root/ # root 用户主目录
├── run/ # 运行时数据 (tmpfs)
├── sbin/ → usr/sbin/ # 系统命令 (符号链接)
├── srv/ # 服务数据
├── sys/ # 系统信息 (虚拟)
├── tmp/ # 临时文件 (tmpfs)
├── usr/ # 用户程序 (次级层次)
└── var/ # 可变数据
📁
/
根目录 — 整个文件系统的起点
根目录 / 是 Debian 系统中所有文件和目录的根节点。所有其他目录都可以从它通过路径追溯到达。根分区必须至少包含 /etc、/bin、/sbin、/lib、/dev 和 /usr,否则系统将无法启动。
在 Debian 13 中,
/tmp
默认使用
tmpfs
(RAM 磁盘),最多使用 50% 的可用内存,而非直接写入物理文件系统。
📁
/bin
→ /usr/bin
关键
在 Debian 13 中,/bin 是指向 /usr/bin 的符号链接(usr-merge 架构)。它存放最基本的用户命令,这些命令在单用户模式下也必须可用。
典型包含的命令
- ls — 列出目录内容
- cp — 复制文件
- mv — 移动/重命名文件
- rm — 删除文件
- cat — 查看文件内容
- bash — Bourne-Again Shell
- grep — 文本搜索
- mkdir — 创建目录
- chmod — 修改权限
- ln — 创建链接
这些命令在系统修复(单用户模式)时仍然可用,因为它们属于系统核心部分。
📁
/boot
关键
启动文件与 Linux 内核
存放系统启动所需的所有文件,包括 Linux 内核映像和引导加载程序(GRUB2)的配置文件。
/boot/vmlinuz-*
— Linux 内核映像
当前安装的内核压缩映像文件。例如 vmlinuz-6.12.0-1-amd64。系统启动时由 GRUB 加载此文件到内存中。
/boot/initrd.img-*
— 初始 RAM 磁盘
初始 RAM 磁盘映像,包含启动过程中加载的驱动程序(如磁盘控制器、文件系统驱动),在内核挂载真正的根文件系统之前使用。
/boot/config-*
— 内核配置
编译内核时使用的配置选项文件,记录了哪些功能被编译为模块或直接编入内核。
/boot/System.map-*
— 内核符号表
内核函数与内存地址的映射表,用于调试内核问题。
/boot/grub/
— GRUB2 配置
- grub.cfg — GRUB 主配置文件(自动生成)
- grubenv — GRUB 环境变量
- fonts/ — GRUB 启动菜单字体
- themes/ — GRUB 主题
- i386-pc/ 或 x86_64-efi/ — 平台相关模块
建议将
/boot
放在独立分区(200MB-500MB 足够),尤其在使用加密或 LVM 时。
📁
/dev
虚拟
设备文件 (devtmpfs)
设备文件目录,由 devtmpfs(设备临时文件系统)动态管理。每个设备在系统中都对应一个特殊文件(节点),程序通过这些文件与硬件交互。
/dev/sd*
或
/dev/nvme*
— 磁盘设备
- /dev/sda — 第一块 SATA/SCSI 磁盘
- /dev/sda1 — 第一块磁盘的第一个分区
- /dev/nvme0n1 — 第一块 NVMe 固态硬盘
- /dev/nvme0n1p1 — NVMe 磁盘的第一个分区
/dev/tty*
— 终端设备
- /dev/tty1 ~ tty6 — 虚拟控制台(Ctrl+Alt+F1~F6)
- /dev/ttyS0 — 第一个串口终端
- /dev/pts/* — 伪终端(SSH/Terminal 会话)
- /dev/tty — 当前进程的控制终端
/dev/null, /dev/zero, /dev/random
— 特殊设备
- /dev/null — 黑洞设备,丢弃所有写入的数据
- /dev/zero — 无限输出零字节(用于创建指定大小文件)
- /dev/random — 高质量随机数生成器(可能阻塞)
- /dev/urandom — 非阻塞随机数生成器
- /dev/loop* — 回环设备(用于挂载镜像文件)
/dev
由 udev 守护进程动态管理,设备插入或移除时自动创建/删除对应文件。
📁
/etc
关键
系统配置文件
包含系统级配置文件的目录,所有系统和服务的配置均存放于此。这里的文件大多是纯文本格式,可直接编辑。
/etc/apt/
— APT 包管理器配置
- sources.list — 软件源列表(Debian 13 支持 deb822 格式)
- sources.list.d/ — 额外源配置目录
- preferences.d/ — 软件包优先级配置
- apt.conf.d/ — APT 扩展配置
- trusted.gpg.d/ — 信任的 GPG 密钥
/etc/systemd/
— systemd 服务管理
- system/ — 系统级服务单元文件
- user/ — 用户级服务单元文件
- journald.conf — 日志配置
- logind.conf — 登录管理配置
- network/ — 网络配置(systemd-networkd)
- resolved.conf — DNS 解析配置
- timesyncd.conf — 时间同步配置
Debian 13 中 systemd-sysctl 不再读取 /etc/sysctl.conf,改用 /usr/lib/sysctl.d/50-default.conf。
/etc/ssh/
— SSH 服务配置
- sshd_config — SSH 服务器主配置
- ssh_config — SSH 客户端默认配置
- *ssh_host__key** — 主机私钥
- *ssh_host__key.pub** — 主机公钥
- sshd_config.d/ — SSH 扩展配置目录
/etc/network/
— 网络配置
- interfaces — 传统网络接口配置(ifupdown)
- interfaces.d/ — 网络接口扩展配置
- if-up.d/ — 接口启动后执行的脚本
- if-down.d/ — 接口关闭时执行的脚本
/etc/nginx/
或
/etc/apache2/
— Web 服务器
若安装了 Nginx:
- nginx.conf — Nginx 主配置
- sites-available/ — 可用站点配置
- sites-enabled/ — 已启用站点(符号链接)
- conf.d/ — 额外配置
若安装了 Apache2:
- apache2.conf — Apache 主配置
- sites-available/ 和 sites-enabled/
- mods-available/ 和 mods-enabled/ — 模块管理
核心系统配置文件
- hostname — 系统主机名
- hosts — 本地主机名解析(IP → 名称)
- fstab — 文件系统挂载表
- passwd — 用户账户信息
- shadow — 加密后的用户密码
- group — 用户组信息
- gshadow — 组密码信息
- resolv.conf — DNS 解析器配置
- nsswitch.conf — 名称服务切换配置
- login.defs — 登录策略默认值
- sudoers — sudo 权限配置
- cron.d/ — 计划任务配置
- crontab — 系统级 cron 配置
- default/ — 服务默认启动参数
- rsyslog.conf — 系统日志配置
- logrotate.conf — 日志轮转配置
📁
/home
普通用户主目录
每个普通用户在系统中都有一个专属子目录(如 /home/username),用于存放个人文件与配置。通常使用波浪号 ~ 来指代当前用户的主目录。
/home/username/
— 用户主目录标准子目录
- Documents/ — 文档文件夹
- Downloads/ — 下载文件夹
- Pictures/ — 图片文件夹
- Music/ — 音乐文件夹
- Videos/ — 视频文件夹
- Desktop/ — 桌面文件夹
- .bashrc — Bash shell 用户配置
- .bash_profile — Bash 登录时执行
- .profile — 通用登录配置
- .ssh/ — SSH 密钥与配置
- .config/ — XDG 标准应用配置
- .cache/ — 应用缓存
- .local/ — 用户级数据和程序
服务器环境中,普通用户的主目录结构通常比桌面环境简单,可能不包含 Desktop、Pictures 等 GUI 相关目录。
📁
/lib
→ /usr/lib
关键
在 Debian 13 中,/lib 是指向 /usr/lib 的符号链接。存放 /bin 和 /sbin 中命令所需的基本共享库(.so 文件)和内核模块。
典型子目录
- modules/ — 内核模块(驱动程序)
- x86_64-linux-gnu/ — 架构相关共享库
- firmware/ — 硬件固件
- systemd/ — systemd 相关库
📁
/media
可移动介质挂载点
用于可移动介质(USB 闪存盘、CD/DVD、外置硬盘等)的自动挂载点。系统会自动在此目录下以设备名创建子目录。
典型示例
- /media/usb0 — 第一个 USB 设备挂载点
- /media/cdrom0 — CD/DVD 光驱挂载点
- /media/username/USB_NAME — 用户级自动挂载(桌面环境)
在纯服务器环境中,如果没有桌面环境,
/media
通常为空,手动挂载一般使用
/mnt
。
📁
/mnt
临时文件系统挂载点
供系统管理员临时挂载文件系统使用。与 /media 不同,/mnt 不会被自动挂载工具使用。
典型用法
mount /dev/sdb1 /mnt— 临时挂载设备mount -o loop image.iso /mnt— 挂载 ISO 镜像mount -t nfs server:/share /mnt— 挂载 NFS 共享
📁
/opt
第三方附加软件包
用于安装非 Debian 包管理系统管理的第三方或商业软件。每个软件包在 /opt 下拥有独立的子目录。
典型结构
- /opt/softname/ — 软件主目录
- /opt/softname/bin/ — 可执行文件
- /opt/softname/lib/ — 库文件
- /opt/softname/etc/ — 配置文件
常见示例
- Google Chrome (
/opt/google/chrome/) - JetBrains IDE (
/opt/idea/) - Oracle JDK (
/opt/java/)
📁
/proc
虚拟
进程与系统信息虚拟文件系统
一个虚拟文件系统(procfs),不占用磁盘空间。它由内核动态生成,提供对进程信息和系统状态的访问接口。
/proc/[PID]/
— 进程信息
每个运行中的进程都有一个以其 PID 命名的目录,包含:
- cmdline — 启动命令行参数
- environ — 环境变量
- status — 进程状态信息
- fd/ — 打开的文件描述符
- maps — 内存映射
- exe — 可执行文件的符号链接
系统信息文件
- /proc/cpuinfo — CPU 详细信息(型号、核心数、频率)
- /proc/meminfo — 内存使用详情
- /proc/version — 内核版本与编译信息
- /proc/uptime — 系统运行时间
- /proc/loadavg — 系统负载平均值
- /proc/filesystems — 支持的文件系统类型
- /proc/mounts — 当前挂载点列表
- /proc/partitions — 磁盘分区信息
- /proc/net/ — 网络协议栈信息
使用
cat /proc/cpuinfo
可以快速查看 CPU 信息;
free
命令实际上是读取
/proc/meminfo
的数据。
📁
/root
关键
root 超级用户主目录
root(超级管理员)用户的主目录。注意区分:/ 是"根目录",/root 是"root 用户的家目录"。
典型内容
- .bashrc — root 用户的 Bash 配置
- .bash_history — root 命令历史记录
- .ssh/ — root SSH 密钥与配置
- .vimrc — Vim 编辑器配置
出于安全考虑,建议限制
/root
的访问权限(默认 700),并避免直接使用 root 账户进行日常操作。
📁
/run
tmpfs
运行时可变数据
一个 tmpfs 虚拟文件系统,存放自上次启动以来的运行时数据。系统重启后内容会丢失。取代了传统的 /var/run。
典型内容
- lock/ — 锁文件
- log/ — 运行时日志
- sshd/ — SSH 守护进程运行时数据
- systemd/ — systemd 运行时状态
- user/ — 用户级运行时数据
- .pid 文件 — 守护进程 PID 文件
/var/run
现在通常是指向
/run
的符号链接。
📁
/sbin
→ /usr/sbin
关键
在 Debian 13 中是指向 /usr/sbin 的符号链接。存放系统管理员使用的基本系统管理命令,通常在启动、修复或恢复系统时需要。
典型命令
- init — 系统初始化(指向 systemd)
- reboot — 重启系统
- shutdown — 关机
- fdisk — 磁盘分区工具
- mkfs — 创建文件系统
- fsck — 文件系统检查与修复
- ifconfig / ip — 网络配置
- iptables / nft — 防火墙配置
- mount — 挂载文件系统
- swapoff/swapon — 交换分区管理
📁
/srv
FHS
系统服务数据
存放系统对外提供服务所使用的数据。例如 Web 服务器、FTP 服务器、版本控制系统的数据目录。
典型示例
- /srv/www/ — Web 服务器数据
- /srv/ftp/ — FTP 服务器数据
- /srv/git/ — Git 仓库数据
- /srv/nfs/ — NFS 共享数据
- /srv/rsync/ — Rsync 同步数据
/srv
与
/var/www
都可以存放 Web 数据。FHS 建议使用
/srv
存放服务数据,但传统上 Debian 使用
/var/www
。
📁
/sys
虚拟
sysfs — 设备与驱动信息
sysfs 虚拟文件系统,提供内核设备和驱动模型的层次化视图。与 /proc 类似但结构更规范。
/sys/class/
— 设备类别
- net/ — 网络接口(eth0, wlan0 等)
- block/ — 块设备
- graphics/ — 图形设备
- thermal/ — 温度传感器
- power_supply/ — 电源信息
/sys/bus/
— 总线类型
- pci/ — PCI 总线设备
- usb/ — USB 总线设备
- platform/ — 平台设备
/sys/devices/
— 设备树
以层级结构表示内核发现的物理设备树,反映实际硬件拓扑。
/sys/kernel/
— 内核参数
- mm/ — 内存管理参数
- debug/ — 内核调试接口
- config — 内核编译配置
📁
/tmp
tmpfs
临时文件
用于存放程序创建的临时文件。在 Debian 13 中,/tmp 默认使用 tmpfs(RAM 磁盘),最多占用可用内存的 50%,重启后内容自动清除。
特点
- 所有用户均可读写(权限 1777,sticky bit 防止互相删除)
- 系统启动时自动清空
- 临时编译文件、解压文件、socket 文件等常存放于此
- 大文件操作(如光盘镜像)可能需要调整大小
如果需要使用持久性临时目录(重启不丢失),可使用
/var/tmp
,其数据在重启后保留。
📁
/usr
FHS
次级层次 — 用户程序与数据
系统中最大的目录之一,包含大部分用户级应用程序、库和文档。名字来源于 "Unix System Resources"(而非 "user")。
/usr/bin/
— 用户命令
存放大部分用户级命令和应用程序。Debian 13 中 /bin 已合并至此。
- python3、perl、ruby — 解释器
- gcc、make — 编译工具
- vim、nano — 编辑器
- git、curl、wget — 开发工具
- apt、dpkg — 包管理
/usr/sbin/
— 系统管理命令
非启动必需的系统管理命令。Debian 13 中 /sbin 已合并至此。
- systemctl — 服务管理
- journalctl — 日志查看
- useradd/userdel — 用户管理
- nginx/apache2ctl — Web 服务器控制
/usr/lib/
— 程序库
应用程序和系统程序所需的共享库和辅助程序。
- x86_64-linux-gnu/ — 架构特定库
- python3/ — Python 标准库
- systemd/ — systemd 辅助程序
- apt/ — APT 相关库
- dpkg/ — dpkg 相关库
/usr/share/
— 架构无关数据
存放与硬件架构无关的共享数据。
- man/ — 手册页
- doc/ — 软件文档
- locale/ — 语言区域数据
- icons/ — 图标资源
- applications/ — 桌面应用描述
- zoneinfo/ — 时区数据
- keyrings/ — Debian 密钥环(Debian 13 中 .gpg 扩展名改为 .pgp)
- dict/ — 字典数据
- base-files/ — Debian 基础文件
/usr/local/
— 本地安装软件
管理员手动安装软件时使用,不会被 apt/dpkg 覆盖。结构与 /usr 镜像。
- bin/ — 本地安装的可执行文件
- sbin/ — 本地安装的管理命令
- lib/ — 本地库文件
- share/ — 本地共享数据
- etc/ — 本地配置文件
- src/ — 本地源代码
/usr/src/
— 内核源代码
内核头文件和源代码。
- linux-headers-* — 内核头文件(编译内核模块需要)
📁
/var
FHS
可变数据 — 日志、缓存、队列
存放经常变化的数据,如日志文件、邮件队列、打印队列、数据库文件、包管理器缓存等。这是服务器中最容易增长大小的目录。
/var/log/
— 系统日志
- syslog 或 messages — 系统综合日志
- auth.log — 认证日志(登录、sudo)
- kern.log — 内核日志
- daemon.log — 守护进程日志
- dpkg.log — dpkg 包操作日志
- apt/ — APT 操作日志
- nginx/ 或 apache2/ — Web 服务器访问/错误日志
- mysql/ — 数据库日志
- fail2ban.log — 防暴力破解日志
- journal/ — systemd 二进制日志
日志轮转由 logrotate 管理,配置在 /etc/logrotate.conf。
/var/cache/
— 应用缓存
- apt/ — 已下载的软件包缓存(
/var/cache/apt/archives/) - fontconfig/ — 字体缓存
- man/ — man 页面缓存
- pkgcache.bin — APT 包缓存索引
使用
apt clean
可以清理
/var/cache/apt/archives/
释放磁盘空间。
/var/lib/
— 持久化状态数据
程序运行时的持久化状态信息。
- dpkg/ — dpkg 包数据库(已安装软件列表)
- apt/ — APT 列表和状态
- mysql/ — MySQL/MariaDB 数据库文件
- postgresql/ — PostgreSQL 数据库文件
- docker/ — Docker 镜像和容器数据
- systemd/ — systemd 持久化数据
- misc/ — 杂项持久化数据
/var/spool/
— 队列与假脱机
- mail/ — 用户邮箱(本地邮件)
- cron/ — 用户级计划任务
- cups/ — 打印队列
- rsyslog/ — 日志缓冲队列
/var/www/
— Web 服务器文档根目录
Apache/Nginx 默认的网站文件存放位置。
- html/ — 默认站点目录(
/var/www/html/index.html) - yoursite/ — 自定义站点目录
/var/tmp/
— 持久临时文件
与 /tmp 类似,但内容在重启后不会丢失。适合需要跨重启保留的临时文件。
其他重要子目录
- /var/run/ — 指向
/run的符号链接 - /var/lock/ — 指向
/run/lock的符号链接 - /var/backups/ — 系统配置自动备份
- /var/mail/ — 用户邮件(同
/var/spool/mail) - /var/opt/ —
/opt软件的可变数据
服务器建议为
/var
分配独立分区(至少 2-5GB),以防日志增长过快导致系统盘满。
📊 目录结构速查总结
| 目录 | 类型 | 服务器建议分区 |
|---|---|---|
/ | 根分区 | 10-20 GB |
/boot | 启动 | 500 MB |
/var | 可变数据 | 5-50 GB |
/home | 用户数据 | 按需分配 |
/tmp | tmpfs (RAM) | 使用内存 |
/usr | 程序 | 10-30 GB |
swap | 交换分区 | 内存的 0.5-1x |
Debian 13.2 LTS "Trixie" 目录结构详解 | 遵循 FHS 3.0 标准
生成日期:2026-07-10 | 适用于 Debian 13 Trixie 服务器版
45.64.74.193