Linux目录结构遵循FHS规范,核心逻辑是“谁用、谁管、谁改”:/为挂载总入口;/bin、/sbin存基础命令;/etc管配置;/var存可变数据;/usr为只读系统软件区;/opt供第三方独立软件;/home、/root、/run体现运行态;实际存储常通过挂载和符号链接分离。

Linux目录结构不是随意设计的,而是遵循FHS(Filesystem Hierarchy Standard)规范,目的是让不同发行版保持一致、便于管理、安全隔离和软件兼容。理解它,关键不是死记硬背,而是抓住“谁用、谁管、谁改”这三条逻辑线。
根目录 / 是一切的起点,但不等于“C盘”
Windows习惯把系统、程序、用户文件全塞进一个盘符,而Linux的 / 是挂载点总入口——它本身通常不存大量数据,而是组织其他实际存储位置(比如 /home 可能单独挂载在另一块硬盘上)。刚装完系统时 / 下只有十几个标准子目录,每个都有明确职责:
-
/bin 和 /sbin:存放所有用户(/bin)和管理员(/sbin)都能直接运行的基础命令,如 ls、cp、ifconfig。现代发行版常软链接到 /usr/bin 和 /usr/sbin(见下文)
-
/etc:纯文本配置中心。服务开关、网络设置、用户账号(/etc/passwd)、权限策略(/etc/sudoers)全在这里。修改前建议备份,别直接 vim /etc/shadow
-
/var:记录“会变”的东西——日志(/var/log)、邮件队列(/var/spool/mail)、数据库数据(/var/lib/mysql)、网页内容(/var/www)等。它的存在就是为了和只读的系统目录分开
/usr 和 /opt 不是“用户目录”,而是“软件分发区”
新手最易混淆的是 /usr —— 它名字像“user”,实则代表“Unix System Resources”。它是只读的系统级软件仓库:
-
/usr/bin:绝大多数终端命令所在地(比如 python、gcc、curl),普通用户日常使用
-
/usr/lib:对应二进制的库文件和模块(如 /usr/lib/python3.11/),程序运行时动态加载
-
/usr/share:架构无关的资源,比如文档(/usr/share/man)、图标(/usr/share/icons)、字体(/usr/share/fonts)
-
/opt:留给第三方大型独立软件,比如 Google Chrome、JetBrains IDE。它们自成目录(/opt/google/chrome/),不混入 /usr,方便整体卸载
注意:/usr 本应只读,但部分发行版(如 Ubuntu)允许写入;而 /opt 始终由管理员手动管理,包管理器一般不管它。
/home、/root、/run:三个真实“活”的地方
这三个目录体现 Linux 的“运行态”思维:
-
/home/用户名:每个普通用户的私人空间,桌面、下载、配置文件(以 . 开头,如 ~/.bashrc)全在此。权限默认为 755,他人不可写
-
/root:超级用户 root 的家目录,不是 /!它独立存在,保障 root 配置与系统隔离,也避免误操作波及根文件系统
-
/run:内存中的临时运行时数据(tmpfs),每次开机重建。存放 PID 文件(/run/nginx.pid)、套接字(/run/docker.sock)、已登录用户信息(/run/utmp)等。关机即清空,比 /var/run 更轻量、更及时
进阶要点:挂载、符号链接与实际存储分离
真正掌握目录结构,要跳出“目录=文件夹”的直觉,学会看背后的实际挂载:
- 执行 findmnt 或 df -h,能看到 /、/home、/boot 各自在哪个物理设备或LVM卷上
- 很多目录是符号链接,例如 ls -l /bin 常显示 → /usr/bin,说明命令实际从 /usr 分发,/bin 只是兼容入口
- /proc 和 /sys 是虚拟文件系统,不占磁盘空间,而是内核实时生成的接口(如 /proc/cpuinfo 看CPU信息,/sys/class/net/ 查网卡状态)
- 容器环境里,/ 某些子目录可能被覆盖(如 Docker 中 /etc/hosts 是容器专属),这是 mount namespace 的效果,不是目录错了
基本上就这些。不需要背全,遇到新目录先查 man hier,再看它属于哪个 FHS 类别(配置?可变数据?架构相关?),逻辑就稳了。
以上就是Linux目录结构怎么理解_从基础到进阶全流程讲透【教学】的详细内容,更多请关注php中文网其它相关文章!