以下是Linux系统主要目录及其存储数据的详细说明:
根目录(/)下的核心目录
1. 二进制文件和命令
| 目录 | 存储内容 | 特点 |
|---|---|---|
| /bin | 基本用户命令(二进制文件) | 所有用户可用,系统启动必需 |
| /sbin | 系统管理命令 | 通常需要root权限,系统启动必需 |
| /usr/bin | 用户应用程序和命令 | 完整的用户命令集,非启动必需 |
| /usr/sbin | 系统管理应用程序 | 非关键的系统管理命令 |
| /usr/local/bin | 本地编译安装的命令 | 管理员手动安装,优先级最高 |
2. 配置文件
| 目录 | 存储内容 | 特点 |
|---|---|---|
| /etc | 系统全局配置文件 | 文本格式,最重要的配置目录 |
| /etc/sysconfig | 系统服务配置(RHEL/CentOS特有) | 网络、服务等配置 |
| /etc/default | 服务默认配置(Debian/Ubuntu) | 服务启动参数 |
| /etc/init.d 或 /etc/systemd | 服务启动脚本 | SysV或systemd的服务管理 |
3. 库文件
| 目录 | 存储内容 | 特点 |
|---|---|---|
| /lib | 基本共享库和内核模块 | 系统启动必需的库 |
| /lib64 | 64位系统库(x86_64架构) | 64位库文件 |
| /usr/lib | 应用程序库文件 | 非启动必需的库 |
| /usr/lib64 | 64位应用程序库 | 非启动必需的64位库 |
4. 用户数据和变量数据
| 目录 | 存储内容 | 特点 |
|---|---|---|
| /home | 用户主目录 | 每个用户独立目录,存放个人文件 |
| /root | root用户的主目录 | 超级用户的家目录 |
| /var | 可变数据文件 | 经常变化的文件 |
| /tmp | 临时文件 | 所有用户可写,重启可能清空 |
| /usr/tmp → /var/tmp | 临时文件 | 较长时间保留的临时文件 |
5. 系统运行和进程数据
| 目录 | 存储内容 | 特点 |
|---|---|---|
| /proc | 进程和内核信息(虚拟文件系统) | 内存中,实时反映系统状态 |
| /sys | 内核设备信息(虚拟文件系统) | 硬件和设备驱动信息 |
| /run | 运行时数据 | 系统启动后的运行信息 |
6. 设备文件
| 目录 | 存储内容 | 特点 |
|---|---|---|
| /dev | 设备文件 | 代表硬件设备或虚拟设备 |
| /dev/pts | 伪终端设备 | SSH、telnet等会话的终端 |
| /dev/shm | 共享内存 | tmpfs文件系统 |
7. 引导和启动
| 目录 | 存储内容 | 特点 |
|---|---|---|
| /boot | 启动加载器文件和内核 | vmlinuz、initramfs、grub等 |
| /boot/efi 或 /boot/grub2 | EFI或GRUB2文件 | 引导加载器配置 |
8. 挂载点
| 目录 | 存储内容 | 特点 |
|---|---|---|
| /mnt | 临时挂载点 | 手动挂载外部设备 |
| /media | 可移动媒体挂载点 | 自动挂载U盘、光盘等 |
| /cdrom 或 /mnt/cdrom | 光盘挂载点 | 光盘设备 |
/var 子目录详解
bash
/var/log/ # 系统日志文件
/var/cache/ # 应用程序缓存数据
/var/spool/ # 队列数据(打印、邮件等)
/var/lib/ # 动态数据库和状态信息
/var/run/ # 运行时的PID文件(现多链接到/run)
/var/tmp/ # 临时文件(比/tmp保留更久)
/var/lock/ # 锁文件
/var/mail/ # 用户邮箱
特殊用途目录
系统恢复和维护
bash
/rescue 或 /recovery # 恢复工具(某些发行版)
/sysroot # 系统修复时的根目录
应用程序数据
bash
/opt/ # 第三方应用程序安装目录
/usr/share/ # 架构无关的共享数据
/usr/src/ # 内核源代码
/usr/include/ # C/C++头文件
虚拟化相关
bash
/srv/ # 服务数据(web、ftp等)
/sys/fs/ # 文件系统相关信息
/proc/sys/ # 内核参数(可调优)
FHS(文件系统层次标准)规范
Linux目录结构遵循FHS标准:
根目录 /
基本命令 bin sbin
配置文件 etc
库文件 lib lib64
用户数据 home
可变数据 var
临时文件 tmp
设备文件 dev
进程信息 proc sys
引导文件 boot
挂载点 mnt media
应用程序 usr
第三方应用 opt
用户命令 usr/bin
共享数据 usr/share
本地软件 usr/local
日志 var/log
缓存 var/cache
数据库 var/lib
队列 var/spool
实际查看命令
bash
# 查看目录大小和用途
df -hT # 查看分区使用情况
du -sh /* # 查看根目录下各目录大小
ls -la / # 查看根目录内容
# 查看特定目录内容
tree -L 1 / # 树状显示一级目录
ls -F / # 显示文件类型标识符
# 查看系统目录结构
ls -la / | grep '^d' # 只显示目录
重要注意事项
- /bin, /sbin, /lib 在新系统中可能是到 /usr 的符号链接
- /var 应该单独分区,避免日志等撑满根分区
- /home 通常单独分区,便于系统重装
- /tmp 可以使用 tmpfs 提高性能
- 系统目录不应手动修改,使用包管理器管理
这个目录结构是Linux系统组织和管理的核心,理解它对于系统管理和故障排查至关重要。