Commanding Computers with Words: Linux and the Command Line
上一篇结尾说:下一篇,我们就 SSH 进那台没有显示器的电脑,看看里面到底是什么。答案揭晓:是 Linux。而你对它的第一印象,多半是一整个屏幕的——黑。
一台没有桌面、没有图标、连鼠标都无处可点的电脑,怎么用?
这一篇就讲清楚两件事:Linux 是什么,以及怎么用“纯文字”控制一台电脑。
一
先想一个问题:平时你是怎么用电脑的?
看桌面上的图标,双击打开;找到窗口右上角的 ×,点一下关闭;把文件拖进文件夹。你的每一步操作,都建立在“看”和“点”上。这套东西叫图形界面。
但你 SSH 连上的那台服务器,没有这一套。为什么?
- 图形界面本身要吃掉不少 CPU 和内存,服务器的资源很宝贵;
- 显示器和鼠标,机房里本来就没给你接;
- 就算都装上,隔着一整个互联网实时传输图形画面,又慢又浪费。
于是只剩一条通道:文字。你发过去一行字,电脑执行,回你一行字。
用文字指挥电脑,听起来原始,其实更像“说话”。图形界面是“指”:你指着图标,电脑猜你要什么。命令行是“说”:你直接把要做的事讲出来——只不过讲的是一种非常简短、非常死板的话。这套用文字指挥电脑的方式,就叫:命令行。
二
讲命令行之前,先回答:Linux 到底是什么?
你的电脑上,在窗口和图标的下面,藏着一套负责管理 CPU、内存、硬盘、网络的“管家”系统——操作系统。Windows、macOS 都是操作系统。服务器也需要这样一位管家,而服务器世界的管家,几乎清一色是 Linux:免费、稳定、特别省资源。
上一篇买云服务器时让你选的 Ubuntu、Debian,都是 Linux 的发行版:同一个 Linux 内核,配上不同的周边和口味,像同一种底料的不同锅底。以后你会不断看到这些名字,认得它们“都是 Linux 家的”,就够了。
顺带一提:安卓手机的内核,也是 Linux。它其实一直在你身边。
三
现在进入这一篇真正的核心。命令行不难,难的是换一种思维方式:图形界面下,你操作“看到的东西”;命令行下,你每敲一条命令之前,都得先在脑子里回答一个问题:
我现在想干什么?要让计算机执行什么动作?
先解决最基本的一件事:你在哪。Linux 的文件系统是一棵树,最顶上的分叉点叫“根”,写作 /。第一篇里网址的路径 /articles/3,那个斜杠就是从这里来的——网址里的路径,对应的就是服务器这棵文件树上的地址。
然后是命令。你可以把一条命令理解成一句“动词 + 对象”的短句:
pwd:我在哪?(print working directory,打印当前目录)ls:这里有什么?(list,列出当前目录的内容)cd 目录名:进这个文件夹。(change directory)cd ..:退回上一层。mkdir 名字:建一个文件夹。(make directory)touch 名字:建一个空文件。cp A B:把 A 复制成 B。(copy)mv A B:把 A 移动(或改名)为 B。(move)rm 名字:删掉它。(remove)
比如“我要找一个文件”这么一个目标,落到命令行上,就是一串动作:
我现在在哪? pwd
↓
这里有什么? ls
↓
目标在前面那个文件夹里 → cd 进去
不对 → cd .. 退回来,换一条路
↓
找到了 → 对它动手:cp 复制 / mv 挪走 / rm 删除
发现了吗:**一个“找文件”的目标,被拆成了一串具体行动。**这就是命令行真正训练你的东西——不是背命令,而是把目标翻译成步骤的能力。
另外有两个新手必须知道的事实:
- **成功时,它是沉默的。**没有进度条,没有“操作成功”的弹窗。命令执行完,它什么都不说,直接给你下一行提示符——没消息,就是好消息。如果出了错,它才会开口。
- **删除没有后悔药。**图形界面里有回收站,有“你确定吗?”。命令行里
rm就是当场消失,不进回收站,不二次确认。所以网上才有“删库跑路”的传说。删除之前,先想清楚。
四
你不需要真的有一台服务器才能练,现在就可以试试:
- macOS:打开“终端”;
- Windows:打开 PowerShell(开始菜单搜 powershell)。
然后依次输入:
pwd # 我在哪
ls # 这里有什么
mkdir test # 建一个叫 test 的文件夹
cd test # 进去
touch a.txt # 建一个文件
ls # 看看,它在了
cd .. # 退出来
rm -r test # 删掉整个文件夹
(Mac 和 Linux 同源,这些命令全部通用;Windows 的 PowerShell 认识其中大部分——比如 touch 没有,可以用 ni a.txt 代替——报错了就当练习,反正是在自己电脑上,随便折腾。)
打完这一串,你已经完整走过一遍第三节的“找文件”流程。以后 SSH 进服务器,面对那片黑底白字,你会知道:那不是黑屏,那是同一套东西。
五
最后回答一个你很可能想问的问题:现在都有 AI 了,它什么命令都会,为什么我还要学这个?
因为分工变了。AI 负责写命令,但执行和验收,是你的事。以后你让 AI 帮你搭一个网站,它十有八九会回你一段类似这样的东西:
npm install
npm run start
这不是黑话,这就是命令行——AI 和你、和服务器之间通用的语言。你不需要把命令背下来,但你需要看得懂它在干什么、敢按下回车、以及它报错的时候,知道该把什么信息原样发给 AI。零基础和会命令行的人用 AI 的差距,就在这一步。
六
回头看第三节那条链:一个“找文件”,拆成了“我在哪 → 有什么 → 进去 / 退回 → 动手”。这一篇真正想留给你的是:
一个复杂目标,可以拆成一系列具体行动。
它也不挑场景:收拾宿舍、筹备一次活动、做一个项目,都可以先问“我现在在哪、我有什么、下一步动哪一个”。下一篇,我们聊一个更微妙的东西:你辛辛苦苦做出来的东西,如果不小心被自己改坏了,怎么办?——Git,给人的错误留一条后路。