第 2 章:打开终端,输入第一条命令
约 3810 字大约 13 分钟
2025-12-20
本章目标
学会打开终端,理解终端与 Shell 的区别,认识终端界面的基本元素,输入第一条命令,掌握键盘快捷操作和进程管理。
一、打开你的终端
根据你使用的操作系统:
Windows 用户: 按 Win + R 打开运行对话框,输入 cmd(传统命令行)或 powershell(现代化命令行)回车即可。强烈推荐在微软商店搜索安装 Windows Terminal,它在一个窗口内整合了 CMD、PowerShell 和 WSL,界面更美观,功能更强大。
macOS 用户: 按 Cmd + Space 打开 Spotlight,输入 Terminal 回车;或在启动台的"实用工具"文件夹中找到终端。
Linux 用户: 按 Ctrl + Alt + T,或在应用菜单搜索 Terminal / Konsole。如果你在用 Linux,大概率已经知道怎么打开终端了。
二、终端与 Shell 是什么关系
打开终端后,你看到一个窗口,背景通常为深色,里面有一些文字和一个闪烁的光标。很多人把"终端"和"Shell"混为一谈——它们是不同层面的东西。
终端 vs Shell
终端 (Terminal) 是窗口本身——负责显示文字、接收键盘输入。它负责"呈现",就像一个画框。
Shell 是运行在终端内部的程序——负责解析你输入的命令、执行、返回结果。CMD、PowerShell、Bash、Zsh 都是 Shell。它负责"思考"。
当你敲键盘时,终端将按键传递给 Shell。Shell 理解命令并执行,把结果还给终端。终端把结果显示在屏幕上。
类比:终端是一台显示器,Shell 是运行的软件。画面由终端呈现,行为由 Shell 决定。
三、认识终端界面
打开终端后,你不会看到图标、菜单或按钮——只有文字。理解这些文字的含义是进入命令行世界的第一步。
3.1 提示符(Prompt)
提示符是 Shell 告诉你"我准备好了,请输入命令"的标志。
Windows CMD:
C:\Users\YourName>C:\Users\YourName是当前所在的目录>是输入起点
Windows PowerShell:
PS C:\Users\YourName>PS表示这是 PowerShell
Mac / Linux:
username@hostname:~$username:你的用户名hostname:电脑名称~:家目录(用户文件夹的简写)$:普通用户身份
如果提示符是 # 而不是 $
# 表示你当前是 root(系统管理员)身份。在这种模式下,你对系统拥有最高权限——包括删除操作系统本身。
大部分日常操作不需要管理员权限。如果你看到 # 而你并没有刻意切换到管理员模式,输入 exit 回车即可退出。
类比:$ 是一把螺丝刀,# 是一把电锯。日常修理用螺丝刀就够,拿电锯干活反而容易出事故。
3.2 光标
闪烁的小方块或竖线就是光标,它指示下一个字符出现的位置。光标闪烁是终端唯一会动的元素——它用这种方式告诉你"我还在,可以输入"。
四、你的第一条命令
在提示符后面输入以下内容,然后按 Enter。
Windows CMD / PowerShell:
echo Hello, World!Mac / Linux:
echo "Hello, World!"终端在下一行显示了 Hello, World!。echo 命令的功能就是接收你给它的文字,原样输出到屏幕上。
echo 名字的来历
echo 这个名字来自"回声"——你对山谷喊话,山谷把你的声音重复给你。你输入的文字是"喊话",终端显示的文字是"回声"。简单,但精准。
带引号还是不带引号?
Windows CMD 中 echo Hello, World! 不带引号也可以。Mac/Linux 的 Shell (Bash/Zsh) 中,echo "Hello, World!" 带引号更安全——如果文本中包含空格或特殊字符,不加引号可能导致意外结果。养成加引号的习惯没有坏处。
五、再来几条简单命令
趁热,多试几条。
5.1 查看日期和时间
Windows CMD:
date /t
time /tWindows PowerShell / Mac / Linux:
date5.2 查看当前所在目录
Windows CMD:
cdWindows PowerShell / Mac / Linux:
pwdpwd 是什么的缩写?
Print Working Directory——"打印当前工作目录"。很多命令名是英文短语的缩写,一开始觉得神秘,了解全称后好记很多。
5.3 列出当前目录的内容
Windows CMD:
dirWindows PowerShell / Mac / Linux:
ls这条命令做的事等同于打开文件管理器看到的内容——以文字形式列出目录下所有文件和文件夹。
六、命令的基本结构
你已经输入了好几条命令。不管命令的功能差异多大,它们都遵循一个通用模式:
命令名 [选项] [参数]- 命令名:你要执行的操作,如
echo、ls、cd - 选项:修改命令行为的开关,通常以
-或--开头,在方括号中表示可省略 - 参数:命令操作的对象,如文件名、目录路径、要显示的文本
解析一个实例:
ls -la /homels:命令名——列出目录内容-la:选项——-l详细格式显示,-a显示隐藏文件(组合为-la)/home:参数——要查看的目录路径
选项的两种写法
很多命令的选项有两种格式:
- 短格式:
-l(一个短横线 + 一个字母) - 长格式:
--list(两个短横线 + 完整单词)
短格式可以组合,比如 -l -a 简写为 -la。长格式更易读,短格式更快捷。功能等价,看个人习惯。
七、获取帮助
遇到不认识的命令?每个命令都自带说明书。
Windows CMD:
命令名 /?Windows PowerShell:
Get-Help 命令名Mac / Linux:
命令名 --help
# 或者
man 命令名试试看——输入 echo --help(Mac/Linux)或 echo /?(Windows CMD),你会看到 echo 命令的所有选项说明。
man 命令的使用方法
man 是 manual(手册)的缩写。在 Mac/Linux 系统上,man 命令名 打开完整的手册页面:
- 按
空格或Page Down向下翻页 - 按
b或Page Up向上翻页 - 按
q退出手册
手册很详细——详细到有时代你只想看个示例却被塞了一篇论文。大部分时候"概述"和"示例"部分足够用了。
八、键盘快捷操作
8.1 快捷键总览
| 快捷键 | 作用 | 适用系统 |
|---|---|---|
↑ / ↓ | 浏览历史输入的命令 | 全部 |
Tab | 自动补全命令或路径 | 全部 |
Ctrl + C | 终止当前正在运行的程序 | 全部 |
Ctrl + Z | 挂起(暂停)当前程序 | Mac / Linux / PowerShell |
Ctrl + L 或 clear | 清屏 | Mac / Linux / PowerShell |
cls | 清屏 | Windows CMD |
8.2 Tab 自动补全
假设你要进入 Documents 文件夹。不需要拼全:
cd Doc[按 Tab]终端自动补全为:
cd Documents/如果多个文件以 Doc 开头,按两次 Tab 会列出所有匹配项供你选择。
养成按 Tab 的习惯
Tab 补全不仅省打字时间,更重要的是避免拼写错误。拼错的命令或路径是新手最常见的问题,Tab 补全能大量减少这种低级错误。
这条习惯如果能在接触命令行的第一周内养成,之后的每一次输入都会受益。
8.3 历史命令
按 ↑ 键调出上一条命令,按 ↓ 回到更新的命令。这个功能让你不必重新输入刚执行过的复杂命令——找到它,修改它,回车。
查看完整历史记录:
Windows CMD:
doskey /historyWindows PowerShell:
Get-HistoryMac / Linux:
history九、进程管理:被卡住了怎么办
接触命令行不久,你大概率会遭遇这个场景:输入了一条命令,终端不动了——光标消失或者停住,什么反应都没有。或者更糟:一个程序开始疯狂输出文字,完全没有停下来的迹象。
这种情况不需要重启电脑。下面四项技能让你从容应对。
9.1 Ctrl + C:终止程序
按下 Ctrl + C,Shell 向当前正在运行的程序发送一个"终止"信号。大多数程序的反应是立刻停止,光标回到提示符。
无论是一行无限循环的脚本,还是一个卡住的网络请求,Ctrl + C 就是你手中的刹车。
9.2 Ctrl + Z:暂停程序
Ctrl + Z 不是终止程序,而是把它挂起——程序被冻结,你可以稍后恢复它继续运行。当你需要暂时退回提示符做点别的、再回来继续之前的工作时,这个操作很有用。
在 Mac / Linux / PowerShell 上都可用。恢复一个挂起的程序,输入 fg(foreground)回车。
9.3 ps:查看正在运行的程序
Mac / Linux:
ps
# 显示更详细的列表
ps auxWindows PowerShell:
Get-Processps(process status)列出当前 Shell 中正在运行的程序及它们的 PID(进程 ID,每个进程有一个唯一编号)。
9.4 kill:终止指定程序
如果某个程序对 Ctrl + C 没有反应(少数顽固程序会这样),先通过 ps 找到它的 PID,然后用 kill 直接结束它:
Mac / Linux:
kill 12345 # 12345 替换为实际 PID
kill -9 12345 # 强制终止——不给程序拒绝的机会Windows PowerShell:
Stop-Process -Id 12345Windows CMD:
taskkill /PID 12345Ctrl + C 和 kill -9 的区别
Ctrl + C 是礼貌的请求——"请停止"。大多数程序会配合。
kill -9 是直接拔电源——操作系统直接回收程序占用的资源,程序没有机会拒绝或清理现场。只有 Ctrl + C 无效时才考虑 kill -9。
掌握这四个操作——Ctrl + C、Ctrl + Z、ps、kill——你就有了命令行环境下的基本生存能力。不管终端里发生了什么,你都有办法控制局面。
十、终端里的幽默传统
命令行有超过半个世纪的历史。在漫长的岁月里,程序员们在这片纯文字的土地上种下了不少幽默的作物。
sl:当打字太快时
不小心把 ls 打成了 sl?别急着纠正——一条蒸汽火车头从左到右轰隆隆驶过你的终端窗口。
sl 是"Steam Locomotive"的缩写。它的存在只有一个目的:惩罚手滑的人。当你本该输入 ls 却把手指顺序搞反了,这列火车就作为"你打错了"的提醒从屏幕上开过去。
在一些系统上可以通过包管理器安装(sudo apt install sl / brew install sl)。一个几十年的老玩笑,至今还在维护。
cowsay、fortune、lolcat:命令行的喜剧三人组
cowsay "hello"—— 一头 ASCII 牛说出你给它的文字fortune—— 随机输出一条格言、笑话或冷知识lolcat—— 把任何输出变成彩虹渐变色
三个工具可以组合:fortune | cowsay | lolcat——一头牛用彩虹色说出随机格言。没有什么实际用途,但令人愉快。
在包管理器中搜索安装(sudo apt install cowsay fortune lolcat / brew install cowsay fortune lolcat)。
telnet towel.blinkenlights.nl:ASCII 版星球大战
连接到这个地址,你可以在终端里观看《星球大战第四集:新希望》的 ASCII 艺术演绎——整部电影,用字符一帧一帧画出来。
telnet towel.blinkenlights.nl这是一个互联网早期的遗迹,诞生于 1990 年代末,至今仍能访问。如果系统没有安装 telnet,先安装它(sudo apt install telnet / brew install telnet)。
几十年来它被当做"旧互联网"的象征性遗产。有人说它永远不会关闭,因为它已经成为了互联网历史的一部分。
这些命令没有什么实际用途。它们的价值在于提醒你:编写命令行工具的人也是人——会玩梗、会开玩笑、会写一个火车头程序来报复自己打了十几年的 sl。
十一、AI 时代的命令行
把 AI 变成你的命令行助手
当你遇到一条看不懂的命令,或者需要构建一个复杂的命令组合时,AI 是非常有效的工具:
"解释这条命令的每个参数" —— 把命令贴给 AI,让它逐词解释。这比翻 man 手册快得多,而且解释会更针对你的使用场景。
"帮我写一条命令,做 xxx 操作" —— AI 可以生成命令。但有一条原则必须记住:在执行 AI 给你的命令之前,确保你理解了它做了什么。 尤其是涉及 rm、sudo、chmod 的命令。
AI 生成的 rm -rf 和论坛上玩笑性质的 rm -rf 可能看起来一模一样。但当你真的敲下回车时,它的后果不是玩笑。
十二、小练习
在继续下一章之前,完成以下练习:
- 打开终端,观察提示符是什么样的
- 输入
echo命令,让终端显示你的名字 - 使用
pwd(或cd) 查看当前目录 - 使用
ls(或dir) 查看当前目录有什么文件 - 按几次
↑键,体验历史命令回溯 - 输入一半命令然后按 Tab,体验自动补全
- 运行一个长时间命令,然后按
Ctrl + C—— Mac/Linux 上输入sleep 100,Windows 上输入timeout /t 100,用Ctrl + C终止它
动手比看懂重要
命令行不是靠阅读学会的技能,是靠手指记忆学会的技能。就算你一字不差地看完了本章所有内容,如果不碰键盘实践,下次打开终端时你依然会犹豫。
花 5 到 10 分钟完成上面的练习。这些练习触达了你手指的记忆层——比眼睛的记忆牢靠得多。
十三、本章小结
这个章节你学到了:
- 打开终端 —— 不同操作系统各有快捷方式
- 终端 vs Shell —— 终端是界面,Shell 是执行者,两者是不同的东西
- 提示符的含义 —— 它显示当前位置和身份(
$vs#) - 命令的基本结构 ——
命令名 [选项] [参数] - 基础操作命令 ——
echo、pwd/cd、ls/dir - 获取帮助 ——
--help、/?、man - 键盘快捷操作 —— Tab 补全、历史命令、Ctrl+C
- 进程管理 —— Ctrl+C 终止、Ctrl+Z 暂停、ps 查看、kill 强制终止
- AI 辅助 —— 利用 AI 解释和生成命令,但执行前确保理解
常见问题
Q:输入命令后提示"不是内部或外部命令"或"command not found"。
A:系统找不到这个命令。可能原因:
- 命令拼写错误(最常见,用 Tab 补全可以避免)
- 该命令在你的系统上没有安装
- 命令的路径没有添加到 PATH 环境变量(后面的章节会详细讲)
先检查拼写是否正确。不要怀疑自己——每个程序员每天都会碰到这个错误。
在下一章,我们将学习用命令行浏览文件系统——切换目录、创建文件夹、移动和复制文件。你将发现,用命令行操作文件比用鼠标快多少。