Skip to content
📌知识点小结
  • 终端/命令行是用“打字下命令”的方式操作电脑,而不是鼠标点界面。
  • 安全、运维、开发大量操作都在命令行完成:精确、可复制、可脚本化、能批量自动化。
  • 常见名称:Windows 的 PowerShell / CMD,Linux/macOS 的 Terminal(bash/zsh)。
  • 命令的基本形式:命令名 + 选项(常以 - 或 -- 开头)+ 参数。
  • 看到黑窗口不要怕,它只是另一种更直接的“对话方式”,本系列会反复用到。
✅自测一下

0.12 命令行 / 终端是什么 ​

第〇篇【零基础预科】免费。从这一篇开始,我们走进安全人最熟悉的黑窗口——命令行。

一、什么是命令行 ​

平时你用鼠标点图标、点菜单来操作电脑,这叫图形界面。命令行(也叫终端、Terminal、Shell)则是另一种方式:你用键盘输入一行文字命令,电脑照着执行并把结果以文字显示出来。

你输入:  whoami
电脑回显:ubuntu

就像你和电脑之间,从"比划(点图标)"换成了"直接说话(打字)"。

你可能会问:终端、Shell、bash、PowerShell,这一堆名字到底什么关系? 它们是两层东西。终端(Terminal) 是那个接收你打字、把结果显示出来的"窗口程序";真正读懂你输入的命令并指挥电脑执行的,是窗口背后的 Shell。bash、zsh、PowerShell、CMD 就是几种不同的 Shell——它们都干同样的活,只是"方言"和功能不同。打个比方:终端是电话机,Shell 是电话线那头真正办事的人。平时大家口头说"开个终端""敲命令行",基本不区分这两层,你心里清楚即可。

顺带说一个看教程的小坑:很多教程命令前面会写一个 $(有时是 #),那是提示符、表示"命令从这开始",你不用真的敲这个 $;若提示符是 #,通常还意味着当前是管理员/root 身份。你真正要输入的是符号后面的部分。

那你敲下一行字、按回车后,电脑到底做了什么?Shell 先认出第一个词(命令名),去系统里找到对应的小程序,把后面的选项和参数交给它,再由这个小程序干活、把结果打印回终端。也就是说,ls、whoami 这些命令名,本质是一个个预先写好的小程序的名字;以后你也可以把自己写的脚本放进去、当成新命令来调用。

二、为什么安全人离不开它 ​

  1. 精确:一条命令能明确表达要做什么,没有界面歧义;
  2. 可复制、可记录:命令是文字,能复制给别人、写进文档、贴到报告;
  3. 可自动化:把多条命令写成脚本,一键批量执行重复工作;
  4. 远程可用:连服务器时通常只有命令行(没有图形桌面);
  5. 工具默认形态:大量安全工具只提供命令行版本,功能最新最全。

说个你很快会遇到的真实场景。后面我们要连远程服务器,登录之后屏幕上只有一个黑窗口、没有任何桌面图标——因为服务器为了省资源,大多根本不装图形界面,你只能靠打字操作。这也是为什么几乎所有教程都直接给你一行行命令:你复制 → 粘贴 → 回车就能精确复现作者的每一步,不用在菜单里瞎找。图形界面的操作很难用文字描述清楚("点那个靠左的小按钮……"),而命令天然可以一字不差地传递。

"可自动化"到底值多少钱,也举个例子。假设你要确认 100 个 IP 里哪些开了 80 端口:用图形工具你得一个个手点、点几百下还容易漏;写成脚本就是一个循环(0.28 讲循环),一条命令跑完、结果自动存成文件。安全工作里这种"重复、量大、要留记录"的活儿特别多,命令行把它们从体力活变成"一次写好、反复用"。

最后别把图形界面和命令行对立起来:日常浏览、写文档,图形界面更直观;批量、远程、自动化,命令行更高效。成熟的安全人是两者随时切换、各取所长,而不是非此即彼。你要做的只是跨过"看到黑窗口就发怵"的那道心理门槛——它和点鼠标一样,只是一种操作电脑的方式,而且越用越省事。

三、常见的命令行程序 ​

系统程序
WindowsPowerShell(功能强、现代)、命令提示符 CMD(较老)
Linuxbash(最常见)、zsh 等,统称 shell
macOSTerminal(默认 zsh)

本系列在你本地 Windows 上主要用 PowerShell,在 Linux 服务器上主要用 bash。两者命令有相似也有差异,遇到不同我会说明。

你可能担心两套命令记混。其实不少基础命令两边一样:whoami(当前是谁)在 PowerShell 和 bash 里都能用;也有不同——列文件在 Linux 是 ls、老 CMD 里是 dir(PowerShell 把 ls、dir 都做成了兼容别名,所以也能用)。遇到差异本课程会分别给出,你现在不用背。

四、一条命令长什么样 ​

ls        -l         /home
↑命令名    ↑选项       ↑参数
  • 命令名:要做什么(如 ls 列出文件);
  • 选项(flags):常以 -(短,如 -l)或 --(长,如 --all)开头,用来调整行为;
  • 参数:操作对象,常是文件/路径。

举例:

bash
ls -l /var/www        # 以详细列表(-l)方式,列出 /var/www 里的内容

你可能会问:为什么命令里常看到 -la 这种几个字母挤一起的? 短选项可以合并:ls -l -a(详细列表 + 显示隐藏文件)常简写成 ls -la,效果一样。选项和命令之间、选项和参数之间,用空格分开;少了空格,电脑会把它当成一个不存在的命令名。刚开始照着写、不用强记,熟了自然就懂。

参数还可以一次带多个:cp a.txt b.txt 里 a.txt、b.txt 都是参数,命令按它们出现的顺序理解(这里是"把 a.txt 复制成 b.txt")。选项通常以 - 开头、参数一般不带 -,这也是区分两者的直观办法。

五、几个先知道的常识 ​

  • 命令区分大小写:Linux 里 LS 和 ls 不同(Windows PowerShell 通常不区分);
  • 输错命令会提示 command not found,不是坏了;
  • 命令在运行时可能需要时间,结束后会回到"可输入"状态(出现提示符,如 $ 或用户路径);
  • 想中断正在跑的命令按 Ctrl + C;
  • 不知道命令怎么用,常可加 --help(如 ls --help)查看说明。

一个常见误解:"在黑窗口里我按 Ctrl + C,怎么没复制、命令反而停了?" 在终端里 Ctrl + C 的含义是中断当前命令,不是复制。多数 Linux 终端里复制是 Ctrl + Shift + C、粘贴是 Ctrl + Shift + V(也常支持鼠标右键直接粘贴);Windows PowerShell 里选中文字后回车即复制、右键即粘贴。这个差异第一次用都会懵,知道就好。

另一个新手常有的担心:"我会不会输错一条命令,把电脑搞坏?" 本阶段你会敲的大多是 ls、whoami 这类只读命令,它们只"看"、不改动任何东西,放心试。真正会删除、覆盖的命令,本教程会明确标注并让你在靶场里操作;养成"看清命令含义再回车"的习惯即可,不必因害怕而不敢动手。

还有个判断"命令跑完没"的小技巧:看提示符——就是行首那个 $(Linux)或 PS C:\...>(PowerShell)。能看到它、光标在后面闪,说明系统正等你输入;如果回车后迟迟没有提示符、屏幕不动,多半是命令还在运行,或者它在等你输入内容(可继续输入、或 Ctrl + C 退出)。

两个能让你少打很多字的功能,务必早点用上:

  • Tab 自动补全:输入命令或路径的前几个字母,按一下 Tab,终端会自动补全剩余部分;有多个可能时按两下 Tab 列出全部选项。又快又不会拼错长路径。
  • 历史命令:按 ↑ 逐条翻出之前敲过的命令、↓ 往回翻;找到后直接回车就是重跑,改改参数也方便,不用整行重打。

六、本篇小结 ​

  • 命令行用打字下命令来操作电脑,是图形界面之外更直接的方式。
  • 它精确、可复制、可脚本自动化、远程可用,是安全运维的主战场。
  • Windows 用 PowerShell/CMD,Linux 用 bash;命令 = 命令名 + 选项 + 参数。
  • 遇到问题用 --help、中断用 Ctrl+C。

下一篇 0.13 就亲手输入第一批命令,在终端里"导航"和查看文件。