Linux 不同类型的数据放在不同职责的目录里
Linux 的目录结构并不是"随便放放",而是有明确分工的:系统启动需要的、硬件设备相关的、配置文件、用户数据、临时文件、软件安装位置、日志与可变数据,都会被放到各自职责明确的目录下。理解这套结构,能让你在部署、排障、做权限管理时少走很多弯路。

/boot:启动相关文件
/boot 存放系统启动过程中需要的关键文件。系统能否正常引导,很大程度依赖这里的内容。
常见包括:
-
Linux 内核文件
-
initramfs(启动时加载的临时根文件系统)
-
引导相关配置(例如 GRUB 配置等)
这个目录不建议随意删改。很多"清理磁盘"的误操作都发生在 /boot:看似是旧文件,实际上可能是系统启动的必要组成部分,删错会直接导致机器无法启动。
/dev:设备文件
/dev 用于存放系统访问硬件的"特殊设备文件"。在 Linux 里,很多硬件设备会以"文件"的形式呈现出来。
你会在这里看到:
-
磁盘设备(如
/dev/sda) -
终端设备
-
随机数设备等
排障时 /dev 很常用,例如确认磁盘设备是否存在、配合挂载命令定位目标盘等。它不是用来放普通文件的目录,而是系统与硬件交互的重要入口。
/etc:系统配置中心
/etc 是系统级配置文件的集中地,几乎所有服务与系统参数配置都能在这里找到。
典型场景:
-
SSH、网络配置
-
Web 服务(如 Nginx)配置
-
各类系统服务的配置文件
如果你在排查"服务起不来""配置变更不生效""网络异常",通常第一时间就会去看 /etc。建议养成习惯:修改配置前先备份,尤其在线上环境,少一次备份可能会多一小时救火。
/home:普通用户主目录
/home 是普通用户的家目录所在位置。每个用户通常都有一个对应的目录,用于存储个人数据与用户级配置。
常见内容:
-
用户自己的文件、项目目录
-
隐藏配置文件,例如
.bashrc -
SSH 配置目录,例如
.ssh/
从规范角度,用户级的项目文件、个人脚本、个人配置放在 /home 更合适,权限清晰,也便于备份与迁移。
/root:root 超级用户主目录
/root 是系统管理员 root 用户的家目录。它与 /home 的区别在于:root 不是普通用户,它拥有系统最高权限。
一般不建议把业务数据长期放在 /root:
-
权限过大,容易误操作
-
团队协作不方便
-
不利于按最小权限原则管理
更常见的做法是:root 只用于系统维护与必要的管理操作。
/run:运行时数据(重启会重建)
/run 用于存放系统自上次启动以来的运行时数据。它强调"运行中"与"临时状态",重启后会重新生成。
常见包括:
-
进程 PID 文件
-
锁文件
-
socket 等运行状态数据
当服务异常时,/run 有时能帮助定位"进程是否存在""socket 是否生成""锁是否残留"等问题。但需要明确:它不是持久化目录,重启后内容会被重建,不能用来保存长期数据。
/tmp:全局临时目录
/tmp 是全局可写的临时文件目录。很多程序运行时会把临时文件放在这里。
特点是:
-
允许临时存放
-
通常会被系统策略自动清理
-
有些系统会设置类似"10 天未访问或未修改自动删除"的规则(策略依系统配置而不同)
因此 /tmp 不适合放重要文件,更不适合当作长期目录使用。很多"文件怎么没了"的问题,最后都能追到有人把关键东西放进了 /tmp。
/var/tmp:更"长寿"的临时目录
/var/tmp 也是临时目录,但通常保留时间更长,更适合需要跨重启或希望保留久一点的临时文件。
常见策略包括:
- 例如 30 天未修改自动删除(同样依系统配置而定)
如果你需要临时落盘,但又不希望短期内被清理,/var/tmp 往往比 /tmp 更合适。
/usr:软件与共享只读数据
/usr 通常用于存放安装的软件、共享库与只读数据,可以理解为系统级应用的主要"居住区"。
常见子目录:
-
/usr/bin:用户命令 -
/usr/sbin:系统管理命令 -
/usr/local:本地自定义安装的软件(手工安装的软件常放这里)
从实践角度:系统自带的软件和包管理器安装的软件大量集中在 /usr;而你手动编译或自定义安装的软件,很多会放到 /usr/local,这样更清晰,也不容易和系统包管理冲突。
/var:可变数据(动态变化但要长期保存)
/var 用来存放"会变化,但需要在系统重启之间保留"的数据。它和 /run 的核心区别是:/var 强调持久化,/run 强调运行时状态。
在 /var 常见的内容包括:
-
数据库数据
-
缓存目录
-
日志文件
-
打印后台处理文档
-
网站内容等
排障时最常用的就是日志目录:/var/log。服务报错、启动失败、权限异常、资源问题,很多线索都在日志里。养成优先查看 /var/log 的习惯,能极大提升定位效率。
结语:为什么理解目录结构很重要
理解这些目录的职责,带来的直接收益是:
-
部署时知道文件放哪里更规范
-
排障时知道先查哪个目录更高效
-
做权限与备份策略时更有依据
-
避免误删关键目录导致系统不可用
这套结构让系统长期稳定、可维护、可扩展。只要把职责记住,Linux 的目录树就变成了导航地图。