学习目标
- 概念层:厘清 terminal / shell / tty / pty / console 等核心概念的层级关系与历史渊源
- 操作层:熟练使用常用 Linux 命令进行文件管理、文本处理、进程控制与网络诊断
- 思维层:理解 Unix 哲学——"小工具组合干大事",掌握管道、重定向等组合范式
- 效率层:配置 iTerm2、tmux 等工具,打造高效的终端工作流
- 自动化层:能编写实用的 Shell 脚本,将重复操作自动化
前置知识
- 有使用过终端的基本经验(打开过 Terminal.app 或 iTerm2,敲过几行命令)
- 对"操作系统"有基本认知(知道 OS 是管理硬件和软件的中间层)
- 不需要任何 Linux 命令基础——本课程从零开始教
概念全景图
在深入细节之前,先俯瞰整个概念地图。这张图你现在可能不完全理解——没关系,它会在阶段一结束后变得清晰无比:
┌─────────────────────────────────────────────────────────┐
│ 你(用户) │
│ 键盘输入 眼睛看 │
│ ↓ ↑ │
│ ┌──────────────────────────────────────────────────┐ │
│ │ 终端模拟器(Terminal Emulator) │ │
│ │ 例如:iTerm2、Terminal.app、xterm │ │
│ │ GUI 程序,负责渲染文字、处理键盘 │ │
│ └──────────────┬──────────────────┬────────────────┘ │
│ │ PTY Master │ PTY Slave │
│ │ (控制端) │ (被控制端) │
│ │ ↓ │ ↓ │
│ ┌──────────────┴──────────────────┴────────────────┐ │
│ │ 伪终端(Pseudo Terminal / PTY) │ │
│ │ 内核提供的"虚拟电话线" │ │
│ └──────────────┬──────────────────┬────────────────┘ │
│ │ stdin/stdout │ │
│ │ ↓ │ ↓ │
│ ┌──────────────┴──────────────────┴────────────────┐ │
│ │ Shell(壳程序) │ │
│ │ 例如:bash、zsh、fish │ │
│ │ 解析命令、启动进程、管理作业 │ │
│ └──────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
三个关键认知
① Terminal(终端模拟器)是 GUI 程序,负责显示和输入——它是"前台"。
② Shell 是命令行解释器,负责解析和执行命令——它是"后台引擎"。
③ PTY(伪终端)是连接两者的"虚拟电话线"——让 Shell 以为自己在跟物理终端对话。
已完成
进行中
待开始
学习路线
阶段一 · 概念辨析 — Terminal / Shell / TTY / PTY
待开始
03 — TTY 与 PTY:内核视角的终端体系
line discipline、raw mode、PTY 对的工作原理
阶段二 · Shell 入门
待开始
04 — Shell 是什么:bash / zsh / fish 对比
Shell 的职责、主流 Shell 的差异、如何选择
待开始
05 — 环境变量、PATH 与配置文件
.zshrc / .bashrc、export、alias、PATH 的工作原理
阶段三 · 文件与系统命令
待开始
06 — 文件系统导航
ls、cd、pwd、tree——在目录树中自由穿行
待开始
07 — 文件操作
cp、mv、rm、mkdir、touch、ln——文件的增删改移
待开始
08 — 文件查看与搜索
cat、less、head、tail、find、locate——阅读与定位文件
待开始
09 — 权限管理
chmod、chown、chgrp、umask——Linux 权限模型
阶段四 · 管道与文本处理
待开始
10 — 标准输入输出与管道
stdin / stdout / stderr、|、>、<——Unix 组合的魔法
待开始
11 — grep:文本搜索利器
正则匹配、递归搜索、上下文控制——在海量文本中精准定位
待开始
12 — sed:流编辑器入门
替换、删除、插入——无需打开文件就能批量处理文本
待开始
13 — awk:文本处理瑞士军刀
按列处理、条件过滤、聚合计算——结构化文本的终极武器
阶段五 · 进程与网络
待开始
14 — 进程管理
ps、top、kill、jobs、bg、fg——谁在跑?怎么停?
待开始
15 — 网络诊断工具
curl、wget、ping、dig、ss——请求、下载、排查连通性
阶段六 · Shell 脚本基础
待开始
16 — 变量、条件判断与循环
Shell 作为编程语言的基本语法
待开始
17 — 函数、参数与错误处理
让脚本更健壮、更可复用的工程化写法
待开始
18 — 常用脚本模式与实战
批量重命名、日志清理、健康检查——常见场景的脚本模板
阶段七 · 终端效率工具
待开始
19 — iTerm2 配置与高级技巧
Profile、快捷键、分屏、Status Bar——打造顺手的工作环境
待开始
20 — tmux:终端复用器
Session / Window / Pane——永不丢失的终端会话
推荐阅读顺序
各篇之间存在递进依赖,建议按编号顺序阅读。如果你对某些阶段已有基础,可以跳到对应章节——每篇开头会标注所需前置知识。
- 01 → 02 → 03:概念辨析三篇必须在最开始读。不把这些概念厘清,后面会用但不知道自己在操作什么。
- 04 → 05:Shell 基础是后续所有命令操作的前提。
- 06 → 07 → 08 → 09:文件管理是最高频的操作,按依赖顺序递进。
- 10:管道的概念是整个阶段四的核心——理解它之后,grep/sed/awk 才能发挥真正威力。
- 11 → 12 → 13:从简单搜索到复杂文本处理,逐步升级。
- 14 → 15:进程和网络命令相对独立,但建议在掌握文件管理之后再学。
- 16 → 17 → 18:Shell 脚本需要前面阶段的命令基础,按编号递进。
- 19 → 20:工具篇独立于其他内容,可在学习命令阶段的间隙穿插阅读。
学习建议
① 打开终端跟着敲——只看不练等于没学。② 遇到不懂的命令用 man 查手册,养成自查阅习惯。③ 阶段三开始,每学一组命令就找一个实际场景用起来(比如整理下载文件夹)。