Linux 系统目录结构(FHS 标准)
Linux 遵循FHS(Filesystem Hierarchy Standard)文件系统层次标准,所有目录都挂载在根目录/下,无 Windows 盘符概念。
一、顶级根目录 /
所有文件、目录的起点,唯一顶层目录。
plaintext
/ ├── bin 基础用户命令 ├── boot 系统启动文件 ├── dev 硬件设备文件 ├── etc 系统全局配置 ├── home 普通用户家目录 ├── lib 32位基础共享库 ├── lib64 64位共享库 ├── media 临时挂载媒体(U盘、光盘) ├── mnt 手动临时挂载目录 ├── opt 第三方大型软件 ├── proc 虚拟进程内核文件(内存) ├── root root管理员家目录 ├── run 运行时临时数据(进程pid、socket) ├── sbin 系统管理员命令 ├── srv 服务数据存放目录 ├── sys 硬件内核虚拟文件 ├── tmp 临时文件(自动清理) ├── usr 用户应用程序、文档(第二根目录) └── var 可变数据:日志、缓存、数据库二、各目录详细说明
1. /bin
Binary,存放所有用户都可执行的基础命令:ls、cd、cat、cp、mv等。 系统单用户模式也能使用,不能删除。
2. /sbin
Super Binary,管理员 root 专用命令:ifconfig、fdisk、mount、iptables。 普通用户一般无执行权限。
3. /boot
系统启动核心文件:
- vmlinuz:Linux 内核镜像
- initramfs:临时文件系统
- grub:开机引导程序 删除此目录系统无法开机。
4. /dev
Device,硬件设备文件,一切硬件皆文件:
/dev/sda第一块硬盘/dev/sda1硬盘第一个分区/dev/tty0终端串口/dev/null黑洞(输出丢弃)/dev/zero无限零数据流
5. /etc
全局系统配置目录,所有软件配置文件:
/etc/passwd用户账号信息/etc/group用户组/etc/network/网络配置/etc/nginx/Nginx 配置/etc/systemd/系统服务配置/etc/profile全局环境变量
6. /home
普通用户家目录,每个用户独立文件夹:
/home/zhangsan用户 zhangsan 的个人目录 存放个人文档、桌面、自定义配置。
7. /root
超级管理员 root 的专属家目录,不在 /home 下,权限最高。
8. /lib /lib64
程序运行依赖的动态链接库(.so):
- /lib:32 位库
- /lib64:64 位系统 64 位库 /bin、/sbin 下命令依赖此处库文件。
9. /media
自动挂载移动设备:U 盘、移动硬盘、光驱,插入自动生成子目录。
10. /mnt
手动临时挂载目录,运维手动挂载硬盘、共享盘使用。
11. /opt
大型第三方商业软件完整安装目录,软件所有文件统一放这里: 例:Oracle、VMware、各类工业软件。
12. /proc
虚拟文件系统(内存中,断电消失),存储内核、进程实时信息:
/proc/cpuinfoCPU 信息/proc/meminfo内存信息/proc/[pid]对应进程的详细数据
13. /sys
内核硬件虚拟目录,管理硬件驱动、设备参数,常用于修改硬件配置。
14. /tmp
全局临时目录,所有用户可读写,系统定期自动删除长期未访问文件。 程序缓存、临时文件默认存放。
15. /run
替代旧版/var/run,存放系统运行时临时数据:进程 PID 文件、套接字 socket。
16. /srv
服务器服务数据目录,存放网站、FTP 等服务资源文件。
17. /usr
Unix System Resource,第二根目录,系统预装软件、文档,只读静态数据:
plaintext
/usr ├── bin 普通用户应用命令(python、curl、docker) ├── sbin 管理员扩展命令 ├── lib / lib64 应用程序依赖库 ├── share 共享资源:手册man、配置模板、图标 ├── local 本地手动编译安装软件(推荐自定义软件放这里) ├── include C/C++头文件 └── doc 软件帮助文档重点:/usr/local源码编译安装软件标准目录,不受系统升级覆盖。
18. /var
Variable,可变动态数据,运行中持续变化:
/var/log系统、软件日志(最重要)/var/lib数据库、缓存数据(mysql、redis)/var/cache软件缓存(yum/apt 下载包)/var/spool队列:打印、邮件任务/var/tmp持久临时文件(比 /tmp 保存久)
三、关键区分易混目录
/binvs/usr/bin- /bin:系统急救基础命令,单用户可用
- /usr/bin:日常绝大多数应用软件命令
/tmpvs/var/tmp- /tmp:重启大概率清空,短期临时文件
- /var/tmp:保留时间更长,持久临时缓存
/optvs/usr/local- /opt:完整打包商业软件
- /usr/local:源码编译开源程序
/proc/sys /dev 虚拟目录
- dev:硬件设备接口
- proc:进程、系统运行参数
- sys:硬件驱动调节
四、CentOS / Ubuntu 小差异
- CentOS7+/Rocky:使用 systemd,配置主目录
/etc/systemd/system/ - Ubuntu/Debian:网络配置
/etc/netplan,日志工具 journalctl - 新版系统 /bin、/sbin、/lib 多为软链接指向 /usr 下对应目录,是现代 FHS 规范。
五、运维实用目录速记
- 日志:
/var/log - 服务配置:
/etc - 用户数据:
/home - 内核硬件信息:
/proc /sys - 自编译软件:
/usr/local - 第三方商业软件:
/opt - 启动相关:
/boot - 临时文件:
/tmp - 挂载磁盘:
/mnt /media