终端里到底有什么 书架

第 11 章 / 共 12 章

第十一章 · 和服务器打交道的日常

前十章把终端的每个关节都拆开了。这一章往上走一层:带着这套模型,登录一台陌生服务器,工程师到底怎么干活。这不是命令清单(那种东西网上一搜一大把),而是「每个命令背后你在问什么问题」。

落地前三问:我是谁、我在哪、这是什么机器

刚 ssh 上一台新机器,老手的起手式其实是三个问题,每个问题对应一行命令:

注意这些命令的共同点:它们不「干活」,只「报告」。命令行的世界分成动词(改东西)和名词(看状态),新手只学动词,老手先看名词。

一个总开关:一切皆文件

Linux 有个总纲式的设计:几乎所有东西都以文件的形式出现。想看的系统信息,先想想它可能「躺」在哪个文件里:

这个设计的好处和第六章的管道一脉相承:既然都是文件,那套字节流工具(cat、grep、管道)对一切都通用。查系统状态不需要专门的图形面板,一条 cat /proc/meminfo | grep MemAvailable 就是监控。

权限:三条九格的心智模型

ls -l 输出的 -rwxr-xr-- 不用背,读法是一个模型:三个一组,「主人 / 同组 / 其他人」各一组,每组三格「读 r / 写 w / 执行 x」。报 Permission denied 时按模型问:我是谁(whoami)?这文件归谁(ls -l)?我在哪一组?缺哪一格?答案立刻清楚。

sudo 也放进模型里:它不是「开挂」,是「这条命令临时以 root 身份跑」。理解了第十章的进程模型就知道这意味着什么——那个进程 fork 出来就是 root,能做一切,包括把一切搞砸。所以老手的肌肉记忆里有一条:带 sudo 的命令敲回车前停一秒。

进程与端口:服务器上的「在发生什么」

「服务怎么挂了」类问题的标准动作链:

网络:curl 是你的侦察兵

「从这台机器能不能访问那个服务?」——curl -v 地址。它相当于一个只会发一个请求的命令行浏览器,-v 会把握手、跳转、响应头全摊开。配合 ping(通不通)、ss(谁占着端口),网络问题三板斧就齐了。往服务器搬文件用第八章的 scp,大量同步用 rsync(它只传变化的部分,断点能续——这是它比 scp 聪明的地方)。

比命令更重要的是三个习惯

最后说说教科书不教、事故报告里常见的东西:

一句话总结:和服务器打交道不是背一百条命令,是带着模型提问——我是谁、机器什么状况、文件归谁、进程和端口在干嘛、日志说了什么。命令只是问题的发音方式。

最后一章,把全书拆过的所有零件装回去,跟一次按键走完它的完整旅程。

终端里到底有什么
费曼式写法 · 由多个 AI 代理撰写与互相审校