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系统标准化的重要组成部分。

相关推荐
是Yu欸2 小时前
实时获取 Google 相关股票新闻并完成自动化总结
运维·爬虫·自动化·股票·新闻·亮数据·bringdata
乐亦_Lee2 小时前
在Ubuntu下如何提升下载速度
linux·嵌入式硬件·ubuntu
先做个垃圾出来………2 小时前
Linux/Unix系统下的基础文本处理命令
java·linux·unix
风若飞2 小时前
Linux 环境下解决 Tomcat8 与 JDK8 配置问题
java·linux·运维·服务器·tomcat
木卫二号Coding2 小时前
Docker-构建自己的Web-Linux系统-镜像kasmweb/ubuntu-jammy-desktop
linux·ubuntu·docker
加油vekiki2 小时前
linux服务器搭建docker、docker-compose
linux·服务器·docker·容器
猪猪侠|ZZXia2 小时前
# Shell+web+hook的系统构建发布运维系统之API及前端: zzxia-lollipop-remote-gan
运维·前端
鱼香rose__2 小时前
常用文件管理命令
linux
King's King2 小时前
自动化立体仓库技术标书--详细版
运维·自动化