Debian 系统目录结构详解(新手必读)
Linux(包括 Debian)的所有文件和目录都从一个单一的根目录 / 开始,形成一棵倒挂的树状结构。这套布局遵循 Filesystem Hierarchy Standard (FHS) 标准,Debian 对此遵守得非常严格。
记住一句话:“可共享的放 /usr,不可共享/会变的放 /var,用户相关的放 /home,配置放 /etc,临时放 /tmp 或 /run”。
核心目录一览表(按重要程度排序)
| 目录 | 主要用途 | 是否可共享(多机 NFS) | 是否会频繁变化 | root 写权限 | 新手最常操作的子目录示例 | 误删后果严重度 |
|---|---|---|---|---|---|---|
| / | 整个文件系统的根 | — | — | 是 | — | ★★★★★ |
| /etc | 系统级配置文件中心(几乎所有服务配置都在这里) | 通常否 | 低 | 是 | /etc/apt/sources.list, /etc/ssh/sshd_config, /etc/fstab, /etc/passwd | ★★★★★ |
| /var | 运行时变化数据(日志、缓存、数据库文件等) | 通常否 | 高 | 是 | /var/log, /var/lib/dpkg, /var/cache/apt, /var/spool | ★★★★☆ |
| /home | 普通用户个人主目录集合 | 可共享 | 中~高 | 部分 | /home/yourname/.ssh, /home/yourname/.config | ★★☆☆☆ |
| /usr | 用户级程序、库、文档、共享数据的主集合 | 是 | 低 | 否 | /usr/bin, /usr/lib, /usr/share, /usr/local | ★★★★☆ |
| /bin | 系统启动和单用户模式必须的最基本命令 | 是 | 低 | 否 | ls, cat, cp, mv, bash | ★★★★★ |
| /sbin | 系统管理命令(通常只有 root 能用) | 是 | 低 | 否 | fdisk, reboot, ifconfig, apt | ★★★★★ |
| /lib / /lib64 | 系统启动所需的核心动态库和内核模块 | 是 | 低 | 否 | libc.so.6, ld-linux-x86-64.so.2, modules/ | ★★★★★ |
| /boot | 引导加载器和内核文件 | 通常否(可共享但慎重) | 低~中 | 是 | vmlinuz, initrd.img, grub/grub.cfg | ★★★★★ |
| /dev | 设备文件(由 udev 动态生成) | 否 | 高 | 是 | /dev/sda, /dev/null, /dev/zero | ★★★★☆ |
| /run | 运行时临时数据(进程 PID、socket 等) | 否 | 极高 | 是 | /run/user/1000, /run/sshd.pid | ★★★☆☆ |
| /tmp | 临时文件(重启通常清空) | 否 | 极高 | 是 | — | ★☆☆☆☆ |
| /root | root 用户的主目录 | 否 | 中 | 是 | /root/.bash_history, /root/.ssh | ★★★☆☆ |
| /mnt | 临时挂载点(手动 mount 用) | 否 | 高 | 是 | — | ★☆☆☆☆ |
| /media | 自动挂载的可移动介质(U盘、光盘等) | 否 | 高 | 是 | /media/yourname/USB_NAME | ★☆☆☆☆ |
| /proc | 虚拟文件系统(进程、内核参数信息) | 否 | 极高 | — | /proc/cpuinfo, /proc/meminfo, /proc/sys | 只读查看 |
| /sys | 虚拟文件系统(硬件、设备、驱动信息) | 否 | 极高 | — | /sys/class/net, /sys/block | 只读查看 |
新手最容易混淆的几组目录对比
| 容易混淆的组 | 区别说明 | 记住口诀 |
|---|---|---|
| /bin vs /usr/bin | /bin 是启动和 rescue 模式必须的;/usr/bin 是普通用户日常命令 | 启动救命 → bin;日常工具 → usr/bin |
| /sbin vs /usr/sbin | /sbin 是系统管理核心;/usr/sbin 是额外管理工具 | 系统核心管 → sbin;额外管 → usr/sbin |
| /lib vs /usr/lib | /lib 是启动必须的核心库;/usr/lib 是普通程序库 | 开机救命库 → lib;普通程序库 → usr/lib |
| /etc vs /usr/share | /etc 是可修改的配置;/usr/share 是只读的默认数据/文档 | 配置改这里 → etc;默认数据 → usr/share |
| /var/log vs /var/cache | log 是日志(要看、要备份);cache 是可删除的缓存(apt 缓存等) | 查问题看 log;占空间删 cache |
| /tmp vs /var/tmp | /tmp 重启清空;/var/tmp 重启保留(但仍可清) | 临时 → tmp;稍久临时 → var/tmp |
Debian 特有或常见的子目录补充(非标准但几乎每台机器都有)
- /etc/apt/ → apt 软件源、偏好设置、认证密钥
- /var/lib/dpkg/ → 已安装软件包数据库(status 文件最重要)
- /var/lib/apt/lists/ → 下载的软件源索引文件
- /var/cache/apt/archives/→ 已下载的 .deb 包(可安全删除)
- /usr/local/ → 自己源码编译、手动安装的程序放这里(不会被 apt 覆盖)
- /etc/systemd/ → systemd 单元文件(服务配置文件)
- /etc/default/ → 很多服务的默认变量文件(常被修改)
快速记忆口诀(新手背下来)
- 配置改 /etc,日志查 /var/log
- 程序在 /usr/bin 和 /bin,管理工具在 /sbin 和 /usr/sbin
- 用户数据放 /home,root 自己用 /root
- 变化大放 /var,临时文件扔 /tmp 或 /run
- 内核和引导在 /boot,别随便动
- 自己装的东西放 /usr/local,系统管的别乱碰
实用命令快速查看目录结构
Bash
# 查看根目录主要内容
ls -F /
# 树状显示(需先安装 tree)
sudo apt install tree
tree -L 2 / # 显示两层深度
# 只看常用目录
ls -ld /bin /sbin /usr/bin /usr/sbin /etc /var /home /root /boot /lib /lib64掌握以上内容,你就能快速定位“配置文件在哪”“日志在哪”“我装的东西放哪了”,极大减少在 Debian 服务器或桌面上的盲目摸索时间。
版权声明:
作者:后浪云
链接:https://idc.net/help/442470/
文章版权归作者所有,未经允许请勿转载。
THE END
