1.3 第一次进入命令行
预计阅读时间:19 分钟
📖 目录
学习目标
学完本章后,你将能够:
- 区分终端(Terminal Emulator)和 Shell 这两个概念
- 解读命令提示符
alice@ubuntu:~$的每一部分含义 - 运行最基本的 Linux 命令(
whoami、pwd、ls、date、echo) - 理解命令的标准语法格式
command [-options] [arguments] - 熟练使用 Tab 自动补全和 Ctrl+R 历史搜索这两个最重要的效率技巧
- 使用
man、--help、type、which来自主探索未知命令
核心知识
- 终端(Terminal Emulator)——图形化的窗口程序,本质是一个"显示器和键盘"的模拟器。它只负责将你的键盘输入传给 Shell,并把 Shell 的输出显示在屏幕上
- Shell——命令行解释器,接收你输入的命令文本,解析后交给操作系统内核执行,并将结果返回给你
- 命令提示符(Prompt)——Shell 等待输入时显示的字符串,通常包含用户名、主机名、当前目录等信息
- 选项(Options)——修改命令行为的参数,通常以
-(短选项,如-l)或--(长选项,如--all)开头 - 参数(Arguments)——命令操作的目标对象(文件名、目录名、字符串等)
- 自动补全(Tab Completion)——按 Tab 键让 Shell 自动补全命令名、文件名或路径,大幅减少打字错误
- 历史搜索(Ctrl+R)——输入关键词搜索之前执行过的命令,按 Ctrl+R 后开始输入即可搜索
- $PATH——操作系统用来查找可执行程序的目录列表,多个目录用冒号分隔
知识关联
- 前置知识:1.2:安装 Linux 已安装 Linux(虚拟机或 WSL2),现在打开终端即可实操
- 后续影响:本章的命令行基本功是所有后续章节的基础——从 1.4:基本文件操作命令 文件操作到 2.1:Shell 脚本入门 Shell 脚本,全部在终端中完成
- 配套技术:命令结构、Tab 补全、man 手册这些技能在后续每一章都会反复使用
- 在整个体系中的位置:命令行是 Linux 的核心交互方式。熟练掌握本章内容是后续所有学习的前提条件
原理讲解
1. 终端 vs Shell——两个层的分工
许多初学者把"终端窗口"和"命令行"混为一谈。实际上它们分工明确:
你(键盘输入) → 终端模拟器 → Shell → 内核 → 硬件
你(阅读输出) ← 终端模拟器 ← Shell ← 内核 ← 硬件
- 终端(Terminal Emulator):图形界面程序。它的祖先"电传打字机(Teletype,TTY)"是一台物理打字机连接着计算机。现在我们在 GNOME Terminal、Konsole、Windows Terminal 里看到的黑底绿字窗口,就是"虚拟的电传打字机"。终端只管"输入文字 ↔ 显示文字"。
- Shell:运行在终端中的程序。它读取你输入的一行文本,解析为"命令 + 选项 + 参数",然后去执行。执行结果再写回终端显示。
- 控制台(Console):物理直接连接的终端。在 Linux 中按 Ctrl+Alt+F3 切换到 tty3,看到的就是"物理控制台"(没有图形界面)。按 Ctrl+Alt+F1 或 F2 回到图形界面。
类比:终端就像餐厅的前台(收菜单、上菜),Shell 就像后厨的主厨(解析菜单、指挥做菜)。前台可以换(换个终端软件),主厨也可以换(从 Bash 换成 Zsh)。
Shell 是如何解析命令的?——从按键到执行的完整流程
当你在终端输入 ls -la /home 并按回车,Shell 内部经历了以下步骤:
- 词法分析(Tokenization):Shell 将输入字符串拆分为 token。空格是默认的分隔符,但引号可以改变这一行为——
echo "hello world"中的"hello world"是一个 token - 变量展开:Shell 替换所有
$引用。$HOME变成/home/alice,$?变成上一个命令的退出码。*.txt由 Shell 展开为匹配的文件名列表(globbing) - 命令名解析:Shell 在
$PATH目录中搜索名为ls的可执行文件,找到/usr/bin/ls - 创建子进程:Shell 通过
fork()创建一个子进程,然后exec()加载/usr/bin/ls替换子进程的程序映像 - 参数传递:命令行参数通过
execve()系统调用传递给新进程:["/usr/bin/ls", "-la", "/home"] - 内核执行:内核调度该进程运行,
ls读取目录信息并输出到 stdout - 回收与等待:Shell 通过
waitpid()等待子进程结束,读取退出状态,然后显示新的命令提示符
为什么 Shell 要用子进程来执行命令? 这是为了隔离——如果命令执行出错或崩溃,不会影响 Shell 本身。Shell 是你的"指挥官",它派出"士兵"(子进程)去执行任务,即使士兵阵亡,指挥官安然无恙。
2. 命令提示符解读——屏幕上那行文字是什么
当你打开终端,看到的类似 alice@ubuntu:~$ 的字符串就是命令提示符(Prompt):
alice @ ubuntu : ~ $
│ │ │ │ │ └── 用户身份提示符
│ │ │ │ │ $ = 普通用户
│ │ │ │ │ # = root(超级用户,小心!)
│ │ │ │ └── 当前工作目录
│ │ │ │ ~ = /home/用户名(家目录的简写)
│ │ │ │ / = 根目录
│ │ │ │ /var/log = 绝对路径
│ │ │ └── 分隔符
│ │ └── 主机名(计算机名)
│ └── 分隔符
└── 当前用户名
练习:打开终端,你的提示符长什么样?对着上面的解读,说出每一部分的含义。
3. 你的第一批命令——立刻上手
在终端中输入以下命令(每输入一行按一次回车),观察输出:
whoami # 我是谁?→ 显示当前用户名
# 输出: alice
pwd # 我在哪?→ 显示当前目录(Print Working Directory)
# 输出: /home/alice
ls # 这里有什么?→ 列出当前目录的文件
# 输出: Desktop Documents Downloads Music Pictures Videos
date # 现在几点?→ 显示当前日期时间
# 输出: 2026年 07月 30日 星期四 14:30:00 CST
cal # 这个月日历 → 显示当前月历
# 输出: 七月 2026
# 输出: 日 一 二 三 四 五 六
# 输出: 1 2 3 4
# 输出: 5 6 7 8 9 10 11
# 输出: 12 13 14 15 16 17 18
# 输出: 19 20 21 22 23 24 25
# 输出: 26 27 28 29 30 31
echo Hello # 说你好 → 在屏幕上打印文字
# 输出: Hello
clear # 清屏(或 Ctrl+L)
这些是最简单的命令——无选项、无参数。你将看到 Shell 收到输入、执行、输出、再等待输入的完整循环。
4. 命令的标准结构——command、option、argument
大多数 Linux 命令遵循一个统一的语法结构:
命令名 [选项] [参数...]
举例分析:
ls -l /home
# 输出: 总用量 4
# 输出: drwxr-xr-x 22 alice alice 4096 7月 30 14:30 alice
# 输出: drwxr-xr-x 3 bob bob 4096 7月 28 09:15 bob
│ │ └──── argument(参数):告诉命令"操作谁"
│ └──────── option(选项):修改命令行为,-l 表示"长格式显示"
└──────────── command(命令):命令名称,决定了「做什么」
更多例子:
# 只有命令,无选项无参数
date
# 输出: 2026年 07月 30日 星期四 14:30:05 CST
# 命令 + 选项(-u 表示 UTC 时间)
date -u
# 输出: 2026年 07月 30日 星期四 06:30:05 UTC
# 命令 + 参数
echo Hello World
# 输出: Hello World
# 命令 + 选项 + 参数(-a 显示隐藏文件)
ls -a /home
# 输出: . .. alice bob
# 多个选项可以合并:-l -a -h → -lah
ls -lah /home
# 输出: 总用量 12K
# 输出: drwxr-xr-x 4 root root 4.0K 7月 30 14:30 .
# 输出: drwxr-xr-x 22 root root 4.0K 7月 30 14:30 ..
# 输出: drwxr-xr-x 22 alice alice 4.0K 7月 30 14:30 alice
# 输出: drwxr-xr-x 3 bob bob 4.0K 7月 28 09:15 bob
# 长选项用 -- 开头
date --utc
# 输出: 2026年 07月 30日 星期四 06:30:05 UTC
ls --all --human-readable /home
# 输出: 总用量 12K
# 输出: drwxr-xr-x 4 root root 4.0K 7月 30 14:30 .
# 输出: drwxr-xr-x 22 root root 4.0K 7月 30 14:30 ..
# 输出: drwxr-xr-x 22 alice alice 4.0K 7月 30 14:30 alice
# 输出: drwxr-xr-x 3 bob bob 4.0K 7月 28 09:15 bob
为什么选项叫"option"但参数叫"argument"?
- Option(选项)是可选的——加了改变行为,不加用默认行为
- Argument(参数)是必需品——比如
ls /home中的/home,表示要列出的目录 - 很多命令有默认参数(如
ls默认列出当前目录),所以参数也"看起来"可选
5. Shell 如何"找到"你输入的命令——$PATH 的作用
当你输入 ls 并回车,Shell 怎么知道 ls 这个命令对应的程序文件在哪里?
Shell 会搜索一个名为 $PATH 的环境变量(环境变量是操作系统存储配置信息的"变量")。$PATH 包含了一组目录路径,用冒号分隔:
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Shell 按照从左到右的顺序,在这些目录中查找你输入的命令。ls 通常位于 /usr/bin/ls——只要这个目录在 $PATH 中,Shell 就能找到它。这就是为什么你不需要输入 /usr/bin/ls 这样的完整路径。
用 which 查看命令的完整路径:
$ which ls
/usr/bin/ls
$ which python3
/usr/bin/python3
$ which echo
/usr/bin/echo
6. 命令的四种类型——不是所有"命令"都是程序
Shell 能执行的"命令"分为四种:
| 类型 | 特点 | 例子 |
|---|---|---|
| 可执行程序 | 位于磁盘上的独立二进制文件或脚本,通过 $PATH 查找 | ls、date、python3 |
| Shell 内置命令 | Shell 自身实现的命令,不依赖外部文件,执行最快 | cd、echo、type、export |
| 别名(Alias) | 用户自定义的快捷方式,Shell 会优先匹配 | ll(很多系统默认 alias ll='ls -l') |
| 函数(Function) | Shell 脚本中定义的函数,也能作为命令执行 | 用户自定义函数 |
用 type 命令查看一个命令属于哪种类型:
$ type ls
ls is aliased to `ls --color=auto'
$ type cd
cd is a shell builtin
$ type date
date is /usr/bin/date
7. 终端常用快捷键——让操作快 3 倍
以下快捷键直接在终端中有效(不用鼠标):
| 快捷键 | 功能 | 记忆技巧 |
|---|---|---|
| Tab | 自动补全命令、文件名、路径 | 🔑 最重要的效率工具!每天按几百次 |
| Ctrl+C | 终止当前正在运行的命令 | 当你误输了一个命令或程序卡住时 |
| Ctrl+D | 发送 EOF(文件结束符),退出当前 Shell | 也可以直接输入 exit |
| Ctrl+L | 清屏(等价于 clear 命令) | L 代表 clear |
| Ctrl+A | 光标跳到行首 | A 代表 Ahead(前面) |
| Ctrl+E | 光标跳到行尾 | E 代表 End(结尾) |
| Ctrl+U | 删除光标前到行首的所有内容 | U 代表 Undo(撤销输入) |
| Ctrl+K | 删除光标到行尾的所有内容 | K 代表 Kill(删除到结尾) |
| Ctrl+W | 删除光标前的一个词 | W 代表 Word(删除一个单词) |
| Ctrl+R | 搜索历史命令(输入关键词即搜即用) | 🔑 最重要!按一次 Ctrl+R 开始输入关键词 |
| ↑ / ↓ | 浏览上一条 / 下一条历史命令 | 不用重新打字 |
(reverse-i-search)。输入关键词(如 apt),Shell 会实时匹配最近的包含该词的历史命令。再按 Ctrl+R 跳到更早的匹配。找到后按回车执行,或按 ←/→ 编辑后再执行。示例代码
打开你的终端,逐条执行以下练习:
# 练习 1:自我介绍
whoami
# 输出: alice
pwd
# 输出: /home/alice
ls
# 输出: Desktop Documents Downloads Music Pictures Videos
# 练习 2:看看系统信息
date -u # UTC 时间
# 输出: 2026年 07月 30日 星期四 06:30:10 UTC
date # 本地时间
# 输出: 2026年 07月 30日 星期四 14:30:10 CST
cal 2026 # 全年日历
# 输出: 2026 全年日历(共 12 个月,可自行运行 cal 2026 查看)
cal 12 2026 # 2026 年 12 月的日历
# 输出: 十二月 2026
# 输出: 日 一 二 三 四 五 六
# 输出: 1 2 3 4 5
# 输出: 6 7 8 9 10 11 12
# 输出: 13 14 15 16 17 18 19
# 输出: 20 21 22 23 24 25 26
# 输出: 27 28 29 30 31
# 练习 3:echo 和引号实验
echo Hello World
# 输出: Hello World
echo "Hello World" # 双引号保留空格
# 输出: Hello World
echo 'Hello World' # 单引号保留所有字符
# 输出: Hello World
echo $SHELL # $ 变量展开,显示当前 Shell 路径
# 输出: /bin/bash
echo 'Your $SHELL is bash' # 单引号不展开变量
# 输出: Your $SHELL is bash
# 练习 4:Tab 补全体验
# 输入 "ls /" 然后按两下 Tab,看看 Shell 列出什么
# 输入 "ec" 然后按 Tab,Shell 自动补全为 echo
# 练习 5:查看命令类型
type ls
# 输出: ls is aliased to `ls --color=auto'
type cd
# 输出: cd is a shell builtin
type echo
# 输出: echo is a shell builtin
type date
# 输出: date is /usr/bin/date
# 练习 6:查看命令路径
which ls
# 输出: /usr/bin/ls
which whoami
# 输出: /usr/bin/whoami
# 练习 7:历史搜索
# 按 ↑ 和 ↓ 浏览之前的命令
# 按 Ctrl+R 输入 "date",找到你之前输入的 date 命令
# 练习 8:中断一个命令
# 输入 ping 127.0.0.1,然后按 Ctrl+C 终止它
获取帮助:如何自己探索未知命令
Linux 命令行最重要的能力不是"记住所有命令",而是"知道如何查看命令的用法"。以下五种方式从详细到简洁排列:
| 方法 | 命令 | 特点 | 使用场景 |
|---|---|---|---|
| man 手册 | man ls | 最完整,等效于书本。按 q 退出,/ 搜索 | 想深入了解一个命令的所有功能时 |
| --help | ls --help | 简洁版,只显示选项摘要 | 快速查某个选项的写法 |
| info 文档 | info ls | GNU 的超文本文档,可导航 | man 不够用时 |
| whatis | whatis ls | 一句话描述命令的作用 | 忘了某个命令是做什么的时候 |
| tldr | tldr ls | 社区提供的常见用法示例(需安装) | 想快速看实际使用的例子 |
# 实操:探索 ls 命令
man ls # 阅读 ls 的完整手册
# 重要导航:↑↓ 滚动,/ 搜索,n 下一个匹配,q 退出
ls --help # 快速查看选项(比 man 短得多)
# 输出: Usage: ls [OPTION]... [FILE]...
# 输出: List information about the FILEs (the current directory by default).
# 输出: Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
# 输出: ...
whatis ls # "list directory contents"
# 输出: ls (1) - list directory contents
# 安装 tldr(Ubuntu 可直接用 apt 安装)
sudo apt install -y tldr
# 输出: Reading package lists... Done
# 输出: Building dependency tree... Done
# 输出: The following NEW packages will be installed:
# 输出: tldr
# 输出: 0 upgraded, 1 newly installed, ...
# 使用示例
tldr ls # 显示 ls 的常见用法示例
# 输出: ls
# 输出: List directory contents.
# 输出: - List files one per line:
# 输出: ls -1
常见错误
| 错误/误区 | 解决方案 |
|---|---|
| "命令提示符一直不出现,终端卡住了" | 按 Ctrl+C 中断当前命令。如果卡死的是终端本身,可以关闭标签页重新打开。或者运行 reset 重置终端状态。 |
| "输入了命令但提示 'command not found'" | ① 检查拼写是否正确(Linux 命令严格区分大小写)② 检查该软件是否已安装(如 python3 需要 Python 3)③ 检查 $PATH 是否正确 |
| "忘了加 sudo,提示 Permission denied" | 用 ↑ 翻出刚才的命令,按 Home 键跳到行首,输入 sudo (注意后面有空格),再回车。比重新打一遍快得多。 |
| "分不清哪部分是终端输出、哪部分是提示符" | 看行的开头:以 $ 或 # 结尾的是等待你输入的命令行。没有这些符号的是程序的输出。 |
"在 / 目录下乱操作" | 刚学的时候避免在 /(根目录)执行删除或修改命令。一直在你的家目录 ~ 操作是安全的。 |
"把 ls 写成 1s(数字 1 代替字母 l)" | 这是初学者最常见的笔误。ls 是小写字母 L + S,不是数字 1 + S。你可以在终端中试试看会报什么错误。 |
"在脚本中使用 ifconfig 配置网络" | ifconfig 来自 net-tools 包,已废弃。现代 Linux 使用 ip 命令:ip addr show 查看 IP,ip link set eth0 up/down 启用/禁用网卡。见 4.5:网络故障排查 网络故障排查。 |
为什么推荐用 SSH 密钥而不是密码登录?
SSH 密钥认证相比密码认证有三个关键优势:
- 抗暴力破解:2048 位 RSA 密钥的安全强度相当于约 60 位密码。暴力破解密码可能在几小时内成功,暴力破解密钥则需要宇宙年龄级别的时间
- 无需传输密码:密钥认证过程中,私钥永远不离开本地机器。服务器只存储公钥,即使服务器被入侵,攻击者也无法获取你的私钥
- 自动化友好:自动化脚本和 CI/CD 系统无法"交互式输入密码",但可以使用密钥认证实现无人值守登录
密码认证的唯一优势是"简单直观",但在安全性要求较高的场景中,SSH 密钥是行业标准。
补充说明:本章仅从概念层面介绍 SSH 密钥认证的原理,SSH 的实操配置(密钥生成、分发、ssh_config 等)将在 2.11:SSH 深入 SSH 深入中详细讲解。
最佳实践
| # | 建议 | 说明 |
|---|---|---|
| 1 | 别背命令,练命令 | Linux 命令有几千个,没人能全记住。关键是多用——每天在终端中操作 30 分钟,两周后肌肉记忆自然形成。 |
| 2 | 多用 Tab,少打字 | 这是提升效率最立竿见影的方法。输入文件名的前几个字符然后按 Tab,Shell 会帮你补全。 |
| 3 | Ctrl+R 替代 ↑ 翻页 | 当历史命令很多时,↑ 要找很多次。Ctrl+R + 关键词 是秒查。 |
| 4 | 先 man 后问 | 遇到不认识的命令,先 man 命令名。Linux 社区的礼貌是"先 RTFM(Read The F***ing Manual)"。 |
| 5 | 用 Tab 发现命令 | 输入 apt- 然后按两次 Tab,Shell 会列出所有以 apt- 开头的命令。这是"探索式学习"的捷径。 |
| 6 | 把错误的命令保留在终端里 | 不要一输错就立刻清屏。看看错误信息是什么——"command not found"、"Permission denied"、"No such file"——这些信息会帮你逐渐理解系统的工作方式。 |
| 7 | 培养 "命令 + 选项 + 参数" 的思维习惯 | 每看到一个命令,下意识地划分它的三部分。这能帮你快速理解复杂命令的结构。 |
练习题
- (概念)终端(Terminal Emulator)和 Shell 有什么区别?试着用你自己的话解释。
- (概念)普通用户的命令提示符以
$结尾,root 用户以#结尾。为什么 Linux 要做这种区分? - (实操)在终端中输入
cal 9 1752,观察输出有什么奇怪的地方?搜索一下为什么。 - (实操)用
type命令检查以下命令的类型:pwd、clear、history、alias。把结果记录下来。 - (实操)运行
echo $PATH,查看你的系统中$PATH包含哪些目录。然后用which找到cat、grep、find分别在哪个目录。 - (探究 🔍)运行
man 7 hier,阅读 Linux 目录结构的官方文档。找到/usr、/var、/etc、/tmp的用途描述。这个挑战有点大,先看你能理解多少。 - (探究 🔍)尝试输入
ls -la /usr/bin/ | less,然后用 ↑↓ 滚动查看/usr/bin/下的所有命令。数一数一共有多少个可执行程序。这个目录就是$PATH的核心组成部分。
点击查看答案
- (概念)终端(Terminal Emulator)是显示文字和接收键盘输入的窗口程序(如 GNOME Terminal),负责输入输出显示。Shell 是运行在终端中的命令行解释器(如 Bash),负责解析并执行命令。类比:终端是前台(收菜单、上菜),Shell 是后厨主厨(解析菜单、指挥操作)。
- (概念)`$` 表示普通用户,`#` 表示 root 超级用户。Linux 刻意区分提示符以警示操作风险——看到 `#` 提示符时应格外小心,因为 root 拥有系统完全控制权,误操作可能破坏整个系统。这体现了"安全可见性"设计。
- (实操)`cal 9 1752` 显示 1752 年 9 月奇怪的日期跳变:2 日后面直接是 14 日。这是因为英国在 1752 年从儒略历切换为格里高利历,跳过了 11 天以修正历法累积误差。这是一个历史彩蛋,也是 `cal` 命令的有趣测试。
- (实操)`type` 输出:pwd 是 shell builtin(Shell 内建命令),clear 通常是 /usr/bin/clear(外部程序),history 是 shell builtin,alias 是 shell builtin。内建命令直接在 Shell 内部执行,无需 fork 子进程,比外部命令更快。
- (实操)`echo $PATH` 输出类似 `/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin`。`which cat` → `/usr/bin/cat`,`which grep` → `/usr/bin/grep`,`which find` → `/usr/bin/find`。如果 which 返回空,则该命令不在 PATH 中或未安装。
- (探究 🔍)`man 7 hier` 输出 Linux 目录层次标准手册。`/usr` 是次级层级(大部分用户工具),`/var` 存放可变数据(日志、缓存、数据库),`/etc` 存放本机配置,`/tmp` 存放临时文件(重启后清空)。先不必全部理解,只关注主要目录。
- (探究 🔍)`/usr/bin/` 下程序数量因系统而异(Ubuntu 桌面版约 1500-2500 个)。这就是为什么需要 `$PATH`——手工记忆几千个程序路径是不可能的。按 ↑↓ 在 less 中滚动浏览,观察不同类别命令的命名规律。
学习检查点
学完本章后,请检验自己是否掌握以下内容:
| 检查项 | 自测问题 | 验证方法 |
|---|---|---|
| 概念理解 | 能用自己的话解释终端(Terminal)和 Shell 的区别 | 尝试向他人讲解 |
| 命令操作 | 能不查文档使用 whoami、pwd、ls、date、echo 等基础命令 | 在终端实际执行 |
| 原理掌握 | 能说出 $PATH 环境变量的作用和命令查找机制 | 画出流程图 |
| 故障排查 | 能独立解决"command not found"和"Permission denied"错误 | 模拟故障并修复 |
| 最佳实践 | 能说明为什么 Tab 补全和 Ctrl+R 是最重要的效率技巧 | 对比不同操作方式 |
本章总结
本章是命令行的"第一天"。你学会了拆解命令提示符、运行基础命令、理解命令的三段式结构、用 Tab 和 Ctrl+R 显著提升效率、以及遇到未知命令时如何自己找答案。
核心概念速查:
| 概念 | 一句话定义 |
|---|---|
| 终端 (Terminal) | 显示文字和接收键盘输入的图形化窗口 |
| Shell | 读取、解析、执行命令的命令行解释器(Linux 默认是 Bash) |
| 命令提示符 | alice@ubuntu:~$ 结构:用户@主机名:当前目录$ |
| 命令结构 | command [-options] [arguments] 三段式语法 |
| $PATH | Shell 查找可执行程序的目录列表,冒号分隔 |
| Tab 补全 | 最重要的效率技巧:按 Tab 自动补全命令名或路径 |
| Ctrl+R | 第二重要的效率技巧:搜索历史命令 |
| man 手册 | Linux 命令的完整官方文档(按 q 退出,/ 搜索) |
下一步:进入 1.4:基本文件操作命令「基本文件操作命令」,学习在 Linux 中浏览和操作文件。
延伸阅读
- 1.4:基本文件操作命令 基本文件操作命令——ls、cd、mkdir、cp、mv 等文件操作实战
- 2.2:配置文件与系统设置 配置文件与系统设置——深入理解 $PATH 和 Shell 配置
- GNU Bash 参考手册——Bash Shell 的官方文档
- The Linux Command Line(William Shotts)——免费在线书籍,命令行入门的经典读物
- explainshell.com——输入一个命令,自动解释每个单词的含义
- cheat.sh——命令行速查表,在终端中直接
curl cheat.sh/ls使用