☰
S1-01_Linux 文件系统与目录结构:一张图看懂根目录下每个文件夹
2026/10/29 2:02:22 网站建设 项目流程

Linux 文件系统与目录结构:一张图看懂根目录下每个文件夹

运维学习路线系列 · 阶段一 Linux 地基 · 第 1 篇
适用环境:Ubuntu 24.04 LTS(CentOS Stream 9 差异会单独标注),普通用户(有 sudo)
阅读前提:零基础,有一台能开机的 Linux(虚拟机即可)

前言:第一个劝退现场

刚装好 Ubuntu 的你cd /然后ls一下,迎面而来一排目录:

bin boot dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var

然后你打开网上的教程想找 nginx 配置,教程说"在/etc/nginx";想找日志,帖子说"在/var/log";想看 MySQL 数据目录,有人说/var/lib/mysql——为什么偏偏是这些目录?谁规定的?

这篇就干一件事:把根目录下每个文件夹的职责讲清楚,让你以后"猜都能猜到文件该在哪"。这不是背目录游戏,FHS(Filesystem Hierarchy Standard,文件系统层级标准)是后面所有篇目的地基——排错时 3 秒定位文件位置,靠的就是它。


一、一句话总纲:一切皆文件

Linux 的设计哲学是"一切皆文件":

  • 硬盘是文件(/dev/sda)
  • 键盘是文件(/dev/input/event0)
  • 进程信息是文件(/proc/1234/)
  • 随机数生成器是文件(/dev/urandom)

好处是操作统一:读设备、读进程信息、读普通文件,用的是同一套cat/echo/重定向。记住这句话,后面很多"玄学"操作都会变得合理。

二、一张表看懂根目录(FHS 精华版)

目录存什么记忆锚点你会什么时候碰它
/etc配置文件(全是文本)EditableTextConfiguration改 nginx/mysql/sshd 配置,日常最高频
/home普通用户的家目录每个用户一个文件夹cd ~就到这;代码、个人文件
/rootroot 用户的家目录注意:不在 /home 下用 root 登录时的~
/var经常变化的数据:日志、缓存、数据库数据variable/var/log排错必去;/var/lib/mysql
/tmp临时文件,重启可能清空temporary程序运行时的中转站,别存重要东西
/usr系统软件资源(只读性质):程序、库、文档UnixSoftwareResource/usr/bin大部分命令在这
/bin→/usr/bin可执行命令现代发行版里/bin是软链接敲的每条命令
/sbin→/usr/sbin系统管理命令(root 用)super user binfdisk、ip、reboot
/opt第三方/自装大型软件optional自己编译装的软件、某些商业软件
/srv对外提供服务的数据service网站根目录放过这,现在多在/var/www或/opt
/boot内核与引导文件🚨 别动,删了开不了机只在修 GRUB 时碰(阶段二讲)
/dev设备文件一切皆文件的具象挂载磁盘、看终端设备
/proc内核与进程的实时信息(内存里,不占磁盘)process看进程参数、系统状态,排错神器
/sys内核对象(设备/驱动/总线)的接口较少直接手改调磁盘调度器等高级操作
/run开机以来的运行时数据(PID、socket)早期在/var/runsystemd 时代的产物
/mnt//media手动/自动挂载点mount/ U盘等媒体插 U 盘、临时挂新硬盘

💡记忆优先级:先把/etc(配置)、/var(日志数据)、/home(个人文件)、/proc(实时状态)四个记牢——运维日常 80% 的时间在这四个目录里打转。

三、重点目录展开讲

3.1 /etc:运维的主战场

# /etc 下你能背出来的高频文件/etc/nginx/nginx.conf# nginx 主配置/etc/mysql/mysql.conf.d/# MySQL 配置目录(Ubuntu 拆分风格)/etc/ssh/sshd_config# SSH 服务端配置(阶段二加固篇主角)/etc/fstab# 开机自动挂载清单(磁盘篇主角)/etc/hosts# 本机静态域名解析/etc/systemd/system/# 你自己写的 systemd 服务单元

两个约定俗成:①/etc下的文件全是纯文本,改配置 = 改文本;②改配置前先备份:

sudocp/etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak.$(date+%F)

这是能救你职业生涯的小习惯。

3.2 /var:日志与数据的水库

/var/log/ # 所有服务日志的家(syslog、auth.log、nginx/ 目录…) /var/lib/mysql/ # MySQL 数据目录 /var/lib/docker/ # Docker 数据目录(容器、镜像、卷全在这,阶段五讲过) /var/www/html/ # Debian 系默认网站根目录 /var/spool/cron/ # 用户的 crontab 文件(第 8 篇讲)

为什么日志会撑爆磁盘?因为/var/log只进不出——这就是后面第 8 篇要讲的 logrotate(日志轮转)存在的意义,也是你已有 Runbook 里"磁盘 85% 告警"最常炸的位置。

3.3 /proc:不占磁盘的"假"目录

/proc里的内容是内核实时生成的,每次看都是"现场直播":

cat/proc/meminfo|head-3# 内存实况cat/proc/cpuinfo|grep"model name"|uniq# CPU 型号cat/proc/loadavg# 负载(阶段二性能排查篇细讲)ls/proc/# 数字目录 = 每个进程一个文件夹cat/proc/1234/status# 看指定进程的状态

💡 回顾《S5-04 Docker 原理篇》的悬念:“容器里 top 看到整机内存”——因为容器默认挂载的/proc就是宿主机的/proc。现在你能串起来了。

3.4 Ubuntu 与 CentOS 的主要差异

项Ubuntu 24.04CentOS Stream 9
默认软件源apt /.deb包dnf(yum) /.rpm包
网卡配置NetPlan(/etc/netplan/)NetworkManager(nmcli)
日志rsyslog + journald 并存以 journald 为主
软件包安装位置同样遵守 FHS,基本一致同左

FHS 是跨发行版通用的,差异主要在"怎么改配置的工具",不在"配置在哪"——这也是先学 FHS 的价值。

四、绝对路径与相对路径,以及三个符号

绝对路径:从 / 开始,全世界唯一 /etc/nginx/nginx.conf 相对路径:从"当前所在位置"出发 ./nginx.conf 或 ../ssh/sshd_config
符号含义例子
.当前目录./run.sh明确执行本目录脚本
..上一级目录cd ..
~当前用户的家目录cd ~回家;cd ~/projects
-(cd 专属)上一次所在目录cd -在两个目录间来回切

🚨经典坑:脚本里写cd test(相对路径)而不是cd /opt/app/test(绝对路径)——crontab 执行脚本时起始目录不是你登录时的目录,脚本就会"时灵时不灵"。规则:脚本里一律用绝对路径(第 8 篇 crontab 篇还会再踩这个坑)。

五、动手实验:10 分钟建立目录直觉

# ① 看目录结构树(装个 tree)sudoaptinstalltree-ytree-L1/ tree-L2/etc/nginx# 配置文件的组织方式# ② 验证 /proc 是"直播"cat/proc/uptime# 隔几秒执行两次,数字一直在涨# ③ 找一个服务的"三件套":配置(/etc)、数据(/var/lib)、日志(/var/log)ls/etc/nginx /var/log/nginx /var/www/html# ④ 看 /bin 是不是软链接ls-ld/bin /sbin# 输出 -> /usr/bin:这是 modern Linux 的 usrmerge,不是异常

验收标准:不看表格,能回答——nginx 配置在哪个目录?MySQL 的数据落在哪?系统日志去哪看?重启后还想保留的文件绝对不能放哪个目录?(答案:/etc、/var/lib/mysql、/var/log、/tmp)


六、🚨 新手避坑清单

#坑后果正确姿势
1把重要文件放/tmp重启/清理后消失要持久化的数据放/home、/opt或专门数据盘
2动/boot里的文件"清理空间"🚨 系统无法启动/boot只留给内核升级机制
3在/etc改配置不备份改错且忘了原来什么样改前cp xx xx.bak.日期
4以为/bin是普通目录乱删系统命令全没理解软链接;删除操作想清楚再回车
5脚本里用相对路径crontab 下行为诡异脚本内一律绝对路径
6手动编辑/proc下的文件当"配置"大多只读或不可持久/proc是内核接口,改参数用sysctl(阶段二讲)
7磁盘满了第一时间删/var/log全部日志故障现场被销毁,没法排错先定位大文件(阶段二性能篇),日志用轮转治理
8混淆/root和/root 的家 ≠ 根目录/是根,/root只是 root 用户的 home

七、一句话总结

配置去/etc找,日志去/var/log看,数据在/var/lib躺,实时状态问/proc——FHS 不是背出来的,是每一次排错用出来的。

💬 互动

你有没有过"明明文件就在那,程序就是找不到"的经历?最后发现是相对路径/挂载点的问题?评论区聊聊。

下一篇预告:《S1-02 文件与目录操作命令速查:ls、cp、mv、rm、find、tar》——知道文件在哪之后,怎么高效地搬动、查找、打包它们。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询