Linux 重要目录:/boot、/dev、/etc、/home

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 的目录树就变成了导航地图。

相关推荐
2501_941982052 小时前
企微API自动化:外部群推送实现高效自动化
运维·自动化·企业微信
Linux运维技术栈2 小时前
GitLab社区版备份优化:3M包为何是独立完整备份?
运维·git·gitlab
偷学技术的梁胖胖yo2 小时前
Shell脚本中连接数据库查询数据报错 “No such file or directory“以及函数传参数组
linux·mysql·shell
BullSmall2 小时前
云计算容灾:CloudDR核心架构解析
运维·系统架构
草莓熊Lotso2 小时前
Linux 进程等待与程序替换全解析:从僵尸进程防治到 exec 函数实战
linux·运维·服务器·开发语言·c++·人工智能·python
德彪稳坐倒骑驴2 小时前
PySpark on Linux系统配置 Hadoop3.1.3+Spark3.4.4(PySpark3)
linux·运维·服务器
2501_941982052 小时前
企微外部群自动化的最终章:多账号轮巡推送实战指南
运维·自动化·企业微信
wniuniu_3 小时前
运维运维运维
java·运维·dubbo
柏木乃一3 小时前
库的制作与原理(2)ELF格式,程序地址空间part2,程序加载
linux·服务器·c++·进程·elf··进程地址空间