Linux采用单一根目录(/)结构,所有设备均通过挂载机制接入该树形结构,遵循FHS标准划分功能目录:/bin和/sbin存基础命令,/etc管配置,/usr放用户程序,/var存运行时数据,/home与/root为用户家目录,/proc与/sys为内存伪文件系统。

Linux文件系统采用单一根目录(/)结构,所有存储设备、分区和虚拟文件系统都挂载到这棵树的某个节点下,而非像Windows那样用盘符隔离。这种设计核心是“一切皆文件”哲学的体现,也便于统一权限管理、路径解析和系统抽象。
根目录下的关键目录及其职责
每个标准目录都有明确的用途定义(遵循FHS,Filesystem Hierarchy Standard),并非随意命名:
- /bin 和 /sbin:存放系统启动和基础运维必需的二进制可执行文件(如 ls、cp、init、iptables)。/bin 面向所有用户,/sbin 主要供管理员使用。
- /etc:纯文本配置文件集中地(如 /etc/passwd、/etc/fstab、/etc/nginx/nginx.conf)。不存程序或数据,只管“怎么运行”。
- /usr:原意为“Unix System Resources”,现为只读的用户级程序与共享资源主目录。包含 /usr/bin(非关键命令)、/usr/lib(库文件)、/usr/share(架构无关资源如文档图标)等子树。
- /var:存放运行时变化的数据——日志(/var/log)、缓存(/var/cache)、邮件队列(/var/spool)、数据库文件(如 /var/lib/mysql)等。
- /home 与 /root:普通用户的个人空间(/home/username)和 root 用户专属家目录(/root),默认不参与系统启动流程。
- /proc 和 /sys:内存中的伪文件系统,分别导出内核运行时状态(进程信息、CPU/内存统计)和设备驱动参数,无真实磁盘存储。
为什么没有 C:\ 或 D:\?——挂载机制的本质
Linux不靠盘符区分设备,而是通过挂载(mount)将块设备(如 /dev/sdb1)或网络文件系统(如 NFS)关联到某个空目录(挂载点)。例如:
- 执行 mount /dev/nvme0n1p2 /mnt/data 后,该分区内容就出现在 /mnt/data 下;
- /boot 常单独分区,但对用户而言只是 / 下一个子目录;
- U盘插入后自动挂载到 /media/usb0,拔出即消失,不影响根树结构。
这种解耦让系统更灵活:可动态增减存储、切换根文件系统(如容器 chroot 或 initramfs),也避免了路径硬编码导致的移植问题。
可选目录与现代演进
FHS 允许扩展,实际发行版会按需添加:
- /run:替代旧版 /var/run,存放自启动以来的易失性运行时数据(如 PID 文件、D-Bus socket),重启即清空;
- /opt:第三方大型独立软件包(如 Oracle、MATLAB)的安装位置,保持 /usr 干净;
- /snap 或 /var/lib/snapd:Ubuntu 等系统为 Snap 包管理预留的沙箱化存储区;
- 容器环境常使用 /var/lib/docker 存放镜像层与容器文件系统,仍遵守“数据归 /var”原则。
目录层级不是一成不变的规范,而是随内核能力、安全模型(如 systemd 的 /run)、部署形态(云/容器/嵌入式)持续微调的工程约定。


















