章节摘要:Linux 的一切配置都是文本,一切问题最终都要落到文件和日志上。本章把运维使用频率最高的四类命令——文件目录操作、文本查看与过滤、系统信息与负载排查、查找与压缩归档——放进真实故障场景里讲。读完你能在半小时内完成一次"从报警到根因"的第一轮排查,并用管道把命令串成自己的分析流水线。
阅读完本章,你应当能够:
四类命令在排查链路里各守一段,位置不同、时机不同。
命令行工具个个短小,组合起来才有杀伤力——单兵是兵器箱,管道才是军队。
从一次误删事故讲起,覆盖增删改查与复制的安全用法,重点是理解每条命令的破坏半径与不可逆性。
日志是运维的眼睛。这节讲怎么在几百兆的日志里几秒钟找到你要的那几行,实时跟踪滚动日志,并用 awk 与 sed 做结构化提取。
凌晨收到"服务慢"的报警,第一轮体检怎么做?uptime、free、df、du、ps 各自回答一个问题,组合起来就是完整的初诊。
find 是按条件搜文件的瑞士军刀,tar 是打包迁移的标准载体。这节从一次"找不到配置文件改哪份"的混乱现场讲两个工具的正確打开方式。
四节是一条排查流水线的四个工位,顺序就是使用顺序:先体检确认资源层没问题,再找到目标文件,然后读日志,最后做文本级的统计与提取。
2.3 体检 ──► 2.4 定位文件 ──► 2.2 读日志 ──► 2.2 文本挖掘 资源层 find/tar tail/less grep/awk/sed │ └── 2.1 的操作能力贯穿全程:看路径、建临时目录、安全地复制备份
命令行的自由伴随破坏力。本章在讲每条命令时都会标注危险等级,这里先把整章涉及的高危动作集中列出,形成一张"动手前多看一眼"的档案卡。
| 命令形态 | 危险等级 | 事故模式 |
|---|---|---|
| rm 加通配符 | 极高 | 展开结果与预期不符,删掉意外目标 |
| rm 加变量路径 | 极高 | 变量为空时从根开始删 |
| mv 跨文件系统移动 | 中 | 中断后留下半份数据 |
| find 结果直接接删除 | 高 | 条件写宽误伤相邻目录 |
| tar 解包覆盖 | 中 | 包内路径与现有文件冲突 |
⚠️ 通用防线的建立方法只有一个:破坏性命令执行前,先把它拆成"查看版本"跑一遍。要删除,先列出;要覆盖,先对比。多花五秒钟,省掉一次数据恢复。
命令类章节最大的学习陷阱是"收藏夹式学习"——把命令清单存起来就以为自己会了。命令是要在肌肉里、不在收藏夹里。建议每条讲到的命令都在自己的虚拟机上敲三遍:第一遍照抄验证,第二遍改参数观察输出变化,第三遍凭记忆默写。命令行能力本质是手感,手感只能靠敲。
第二个建议是给每个命令建立"一问"笔记法。不要抄命令,要记问题:这条命令回答了什么问题?"负载现在多少"对应 uptime,"空间被谁吃了"对应 du,"最近谁改了配置"对应 find 加时间条件。带着问题记命令,遇到故障时大脑按问题检索,比按字母顺序检索快得多。本教程的章节结构本身就是这么组织的——每一节都是一个问题现场。
第三个建议是尽早把命令串成流水线。单命令是点,管道是线,脚本是一整张网。本章会反复演示"几条命令接起来回答一个复杂问题"的完整案例,请务必亲手复现这些案例,改动其中一段观察结果如何变化。理解了流水线的组合逻辑,你在面对任何没见过的场景时都能现场拼出工具,而不是到处搜"某某问题用什么命令"。
本章四节的阅读顺序就是使用顺序:先体检、再定位、再阅读、再挖掘。如果你已经有一定基础,可以直接跳到 2.2 和 2.3 的案例部分检验自己的成色——能把"每分钟超时分布"那条管道默写出来,本章你就毕业了。
下一节从事故开始。
顺带说明本章的边界:命令只覆盖本机视角,网络层面的测量(延迟、丢包、带宽)不在本章范围,那需要另一套工具箱。判断故障在本机还是网络,四问的结论会直接告诉你:资源层全部正常时,把目光投向网络与上游依赖,这是本章给你的一个重要出口。