RedHat/CentOS 系统中根目录作用说明

以下是 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     # 所有人可写,粘滞位

🎯 最佳实践建议

  1. 应用安装位置

    • 系统包:/usr/bin/
    • 手动编译:/usr/local/
    • 第三方大应用:/opt/
  2. 数据存储位置

    • 网站数据:/var/www//srv/
    • 数据库:/var/lib/mysql/
    • 日志:/var/log/
    • 用户文件:/home/[user]/
  3. 备份重点目录

    bash 复制代码
    # 必须备份
    /etc/
    /home/
    /var/www/  # 如果是Web服务器
    /var/lib/mysql/  # 数据库
    /root/.ssh/      # SSH密钥
    
    # 选择性备份
    /opt/
    /srv/
    /var/log/  # 审计需要

这个目录结构遵循 FHS(文件系统层次标准),是Linux系统标准化的重要组成部分。

相关推荐
A小辣椒15 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒19 小时前
TShark:基础知识
linux
AlfredZhao21 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式