以下是 RedHat/CentOS 系统中根目录 (/) 下所有标准目录的作用说明:
📁 核心系统目录
| 目录 | 用途 | 关键内容 | 示例 |
|---|---|---|---|
/bin |
基础命令(所有用户) | 系统启动和基本操作必需的单用户命令 | ls, cp, bash, cat |
/sbin |
系统管理命令(root) | 系统管理、修复、启动的关键命令 | fdisk, ifconfig, reboot, shutdown |
/boot |
启动文件 | 内核、initramfs、引导加载器配置 | vmlinuz-*, initramfs-*.img, grub2/ |
/etc |
配置文件 | 系统和应用配置文件,纯文本文件 | /etc/passwd, /etc/fstab, /etc/sysconfig/ |
/dev |
设备文件 | 硬件设备的特殊文件 | /dev/sda, /dev/tty, /dev/null, /dev/zero |
/proc |
进程信息(虚拟) | 内核和进程信息的虚拟文件系统 | /proc/cpuinfo, /proc/meminfo, /proc/[pid]/ |
/sys |
系统信息(虚拟) | 内核设备、驱动、参数的虚拟文件系统 | /sys/class/, /sys/devices/ |
/lib |
共享库(32位) | /bin 和 /sbin 所需的共享库 |
libc.so.*, ld-linux.so.* |
/lib64 |
共享库(64位) | 64位系统的共享库(RedHat特有) | libc.so.*, ld-linux-x86-64.so.* |
/root |
root用户家目录 | root用户的主目录,普通用户无法访问 | .bashrc, .ssh/ |
📁 用户和数据目录
| 目录 | 用途 | 关键内容 | 示例 |
|---|---|---|---|
/home |
普通用户家目录 | 每个用户的个人文件和配置 | /home/alice/, /home/bob/.bashrc |
/opt |
可选应用程序 | 第三方大型应用,独立目录结构 | /opt/google/chrome/, /opt/oracle/ |
/srv |
服务数据 | 系统服务提供的数据 | /srv/www/(网站), /srv/ftp/(FTP) |
/media |
可移动媒体挂载点 | 自动挂载的CD、U盘等 | /media/cdrom/, /media/usb/ |
/mnt |
临时挂载点 | 管理员手动挂载的文件系统 | /mnt/backup/, /mnt/nas/ |
/tmp |
临时文件 | 程序运行时临时文件,重启可能清除 | 临时下载、缓存文件 |
📁 运行时和变量目录
| 目录 | 用途 | 关键内容 | 示例 |
|---|---|---|---|
/run |
运行时数据 | 系统启动后的运行时文件(tmpfs) | /run/lock/, /run/user/[uid]/ |
/var |
可变数据 | 经常变化的文件:日志、缓存、邮件等 | 见下方详细说明 |
/usr |
用户程序 | 用户应用程序和支持文件 | 见下方详细说明 |
📊 /var 目录详解(可变数据)
/var/
├── log/ # 系统日志
│ ├── messages # 系统主日志
│ ├── secure # 安全/认证日志
│ └── audit/ # SELinux/审计日志
├── lib/ # 应用程序状态信息
│ ├── rpm/ # RPM数据库
│ └── mysql/ # MySQL数据
├── cache/ # 应用程序缓存
│ └── yum/ # YUM缓存
├── spool/ # 队列数据
│ ├── mail/ # 邮件队列
│ ├── cron/ # cron作业
│ └── at/ # at作业
├── tmp/ # 临时文件(重启保留)
└── www/ # Web内容(如Apache)
📊 /usr 目录详解(用户程序)
/usr/
├── bin/ # 用户命令(非关键)
│ └── python, vim, gcc # 非基础命令
├── sbin/ # 系统管理命令(非关键)
│ └── httpd, useradd # 非关键管理命令
├── lib/ # 程序库(32位)
│ └── *.so # 共享库
├── lib64/ # 程序库(64位)
├── share/ # 架构无关数据
│ ├── man/ # 手册页
│ ├── doc/ # 文档
│ └── locale/ # 本地化文件
├── include/ # C/C++头文件
│ └── *.h
├── local/ # 本地安装软件
│ └── bin/, lib/ # 手动编译安装
└── src/ # 内核源码
└── kernels/
🔍 RedHat/CentOS 特有目录
| 目录 | 用途 | 说明 |
|---|---|---|
/etc/sysconfig/ |
系统服务配置 | RedHat特有,服务启动参数 |
/etc/yum.repos.d/ |
YUM仓库配置 | 软件源配置文件 |
/var/cache/yum/ |
YUM缓存 | 下载的RPM包缓存 |
/var/lib/rpm/ |
RPM数据库 | 已安装软件包数据库 |
/etc/selinux/ |
SELinux配置 | 安全策略配置 |
/var/log/audit/ |
审计日志 | SELinux/auditd日志 |
🔄 新旧目录对比(FHS标准)
传统 vs 现代布局:
bash
# 传统:/bin, /sbin, /lib, /lib64 独立
# 现代:合并到 /usr(符号链接)
# CentOS 7 开始使用混合模式
ls -l /
# bin -> usr/bin
# sbin -> usr/sbin
# lib -> usr/lib
# lib64 -> usr/lib64
🛠️ 实用命令查看目录信息
bash
# 1. 查看目录大小
du -sh /* | sort -h
# 2. 查看磁盘使用
df -hT /
# 3. 查看目录结构
tree -L 1 / # 需安装:yum install tree
# 4. 查看 inode 使用
df -i /
# 5. 查看各分区
lsblk -f
# 6. 查看挂载信息
mount | grep '^/dev'
cat /proc/mounts
⚠️ 重要目录注意事项
不要随意删除的目录:
bash
/bin/, /sbin/, /lib/, /lib64/ # 系统无法启动
/etc/ # 配置丢失
/boot/ # 无法引导系统
/var/lib/rpm/ # RPM包管理崩溃
可以清理的目录:
bash
/tmp/* # 临时文件(注意有程序在用)
/var/tmp/* # 临时文件
/var/cache/yum/* # YUM缓存
/var/log/*.log.[0-9]* # 轮转的旧日志
~/.cache/ # 用户缓存
需要监控的目录:
bash
/var/log/ # 日志增长
/tmp/ # 可能被占满
/home/ # 用户数据增长
/var/lib/ # 应用数据增长
📝 目录权限示例
bash
# 查看关键目录权限
ls -ld / /bin /etc /home /root /tmp /var
# 典型权限:
# dr-xr-xr-x. 2 root root 4096 /bin # 所有用户可执行
# drwxr-xr-x. 75 root root 8192 /etc # 所有用户可读
# drwx------. 2 root root 4096 /root # 仅root可访问
# drwxrwxrwt. 10 root root 4096 /tmp # 所有人可写,粘滞位
🎯 最佳实践建议
-
应用安装位置:
- 系统包:
/usr/bin/ - 手动编译:
/usr/local/ - 第三方大应用:
/opt/
- 系统包:
-
数据存储位置:
- 网站数据:
/var/www/或/srv/ - 数据库:
/var/lib/mysql/ - 日志:
/var/log/ - 用户文件:
/home/[user]/
- 网站数据:
-
备份重点目录:
bash# 必须备份 /etc/ /home/ /var/www/ # 如果是Web服务器 /var/lib/mysql/ # 数据库 /root/.ssh/ # SSH密钥 # 选择性备份 /opt/ /srv/ /var/log/ # 审计需要
这个目录结构遵循 FHS(文件系统层次标准),是Linux系统标准化的重要组成部分。