第 5 章:Terminal、Shell、命令与帮助
建议学时:2 小时|状态:Ubuntu Bash 命令可在本机复现
学习目标
- 区分终端窗口与 Shell;
- 看懂命令、选项、参数、引号和退出码;
- 在求助前先阅读帮助。
概念图
概念图 / 文本
键盘输入 → Terminal → Shell 解析 → 程序运行 → 输出与退出码Windows Terminal 是窗口;PowerShell 和 Bash 是解释命令的 Shell。同一终端可以开多个标签页,每个标签页使用不同 Shell。
命令结构
概念图 / 文本
command options arguments
ls -la ~/linux-learning-lab在 Ubuntu Bash:
Ubuntu Bash
type ls
command -v ls
ls --help | head
man ls按 q 退出 man 或 less。type 能告诉你名称是别名、内建命令还是可执行文件。
引号与变量
Ubuntu Bash
name="Linux learner"
printf 'literal: $name\n'
printf "expanded: $name\n"
printf '%s\n' "$name"单引号通常保持字面值;双引号允许变量展开;引用 "$name" 可以避免空格被拆成多个参数。
退出码
Ubuntu Bash
test -d ~/linux-learning-lab
echo "$?"
test -d ~/definitely-missing
echo "$?"约定上 0 表示成功,非 0 表示某种失败。命令没有输出不等于失败,必须结合退出码或实际结果。
历史与补全
Tab补全文件和命令;- 上下方向键浏览历史;
history查看编号;Ctrl+C请求停止当前前台命令;Ctrl+D在空行发送文件结束,常用于退出 Shell。
实验:安全地观察失败
Ubuntu Bash
mkdir -p ~/linux-learning-lab/tmp
cd ~/linux-learning-lab/tmp
pwd
ls missing-file
printf 'exit=%s\n' "$?"预期:ls 报文件不存在,退出码非 0。练习读错误信息,而不是看到红字就重装软件。
故障分支
- 命令不存在:用
type和command -v判断是拼写、PATH 还是未安装。 - 引号未闭合:按
Ctrl+C取消续行提示,重新输入。 - 手册无法打开:最小环境可能未安装 man pages,可先使用
--help。
自测
- Windows Terminal 与 Bash 谁负责解释命令?
- 为什么变量通常写成
"$name"? - 怎样判断一条“没有输出”的命令是否成功?
答案见答案索引。