Linux根目录(/)遵循FHS规范,各子目录职责明确:/bin和/sbin存基础命令,/etc管全局配置,/home和/root为用户空间,/var、/tmp、/run处理动态数据,/dev、/proc、/sys提供内核接口,/boot、/lib、/usr支撑启动与运行。

Linux 根目录(/)是整个文件系统的起点,所有其他目录和文件都从它延伸出去。它的结构不是随意安排的,而是遵循 Filesystem Hierarchy Standard(FHS) 规范,每个目录都有明确职责——有的专供系统启动,有的只存用户数据,有的纯粹是运行时虚拟视图。搞清它们的作用,能避免误删崩溃、快速定位日志、合理规划存储,也能看懂报错信息里提到的路径到底在哪儿。
/bin 和 /sbin:系统能跑起来的基础命令
这两个目录放的是“保命级”可执行程序。
/bin 存所有用户都能用的核心命令,比如 ls、cp、bash、cat。这些命令必须在系统刚启动、甚至进入单用户修复模式时就能运行,所以不能放在 /usr 下(/usr 可能还没挂载上)。
/sbin 则专供管理员使用,比如 fdisk(磁盘分区)、reboot、iptables(防火墙配置)。普通用户通常没权限执行,但 root 可以。
现代发行版中,/bin 和 /sbin 往往只是 /usr/bin 和 /usr/sbin 的符号链接,但逻辑分工依然严格。
/etc:全系统的配置总控室
几乎所有服务和系统行为的开关都在这儿:
• 用户账号信息存在 /etc/passwd
• 网络设置写在 /etc/network/interfaces 或 /etc/sysconfig/network-scripts/
• SSH 登录规则由 /etc/ssh/sshd_config 控制
• 开机自动挂载哪些硬盘,靠 /etc/fstab
• 域名解析走 /etc/hosts 或 /etc/resolv.conf
⚠️ 修改前务必备份。改错 /etc/passwd 可能导致全员无法登录;改崩 /etc/fstab 会让系统启动卡住。
/home 和 /root:用户的私人空间
/home 是普通用户的“家”。每个用户(如 alice)对应一个子目录(/home/alice),里面存个人文档、下载、桌面配置(~/.bashrc、~/.config)等。删除某个 /home/xxx 目录,就等于清空该用户全部个人数据。
/root 是超级用户 root 的家目录,和 /home 平级,但普通用户默认无权访问。它不放在 /home 下,是为了保证 root 账户在 /home 分区损坏或未挂载时仍能正常登录管理。
/var、/tmp、/run:专门管“会变”的东西
• /var 存所有运行中不断变化的数据:日志(/var/log)、数据库文件(/var/lib/mysql)、邮件队列(/var/spool/mail)、软件包缓存(/var/cache/apt)。它的名字就是 variable(可变)的缩写。
• /tmp 是公共临时区,任何程序或用户都能往里写,重启后内容通常被清空。下载中间文件、编译缓存常放这儿。
• /run 更“短命”,只存当前启动周期内的运行时数据:进程 PID 文件(/run/nginx.pid)、套接字(/run/docker.sock)、锁文件。它本质是内存中的 tmpfs,断电即失。
/dev、/proc、/sys:不是真文件,是系统实时窗口
这三个是虚拟文件系统,不占磁盘空间,内容由内核动态生成:
• /dev 把硬件映射成文件:/dev/sda 是第一块硬盘,/dev/ttyUSB0 是 USB 串口设备,/dev/null 是“黑洞”,写进去就消失。
• /proc 展示进程和内核状态:/proc/cpuinfo 显示 CPU 详情,/proc/meminfo 看内存用量,/proc/1234/ 是 PID 为 1234 的进程专属信息。
• /sys 暴露设备驱动和内核参数:比如 /sys/class/net/eth0/ 下能看到网卡速率、MAC 地址,还能直接写值来开关 LED 或调整电源策略。
/boot、/lib、/usr:支撑系统启动与日常运行的骨架
• /boot 是开机第一站:vmlinuz-*(内核)、initramfs-*(初始内存盘)、grub/grub.cfg(引导菜单)全在这。它常被单独分一个分区,确保即使根分区损坏,引导还能工作。
• /lib 和 /lib64 存二进制程序依赖的共享库(.so 文件),就像 Windows 的 DLL。/bin 和 /sbin 里的命令靠它们才能动起来。删了 libc.so,几乎一切命令都会报 “No such file or directory”。
• /usr 是最大的“应用仓库”:/usr/bin 放大量用户命令(git、python、firefox),/usr/share 存帮助文档和图标,/usr/lib 放更通用的库。它本意是 “Unix System Resources”,现在实际承载了系统绝大部分非核心但必需的软件资源。


















