Terminal · Shell · Linux 命令

从概念辨析到命令实战,系统掌握命令行世界的全貌

共 7 阶段 · 20 篇笔记 · 持续更新中

学习目标

前置知识

概念全景图

在深入细节之前,先俯瞰整个概念地图。这张图你现在可能不完全理解——没关系,它会在阶段一结束后变得清晰无比:

┌─────────────────────────────────────────────────────────┐
│                    你(用户)                              │
│                  键盘输入  眼睛看                           │
│                    ↓        ↑                            │
│  ┌──────────────────────────────────────────────────┐   │
│  │         终端模拟器(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

已完成 01 — 历史视角与概念辨析 从电传打字机到终端模拟器,一段必须了解的历史
待开始 02 — Terminal 与 Shell:前端与后端的分工 终端模拟器的职责、Shell 的职责、两者如何协作
待开始 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——永不丢失的终端会话

推荐阅读顺序

各篇之间存在递进依赖,建议按编号顺序阅读。如果你对某些阶段已有基础,可以跳到对应章节——每篇开头会标注所需前置知识。

学习建议

① 打开终端跟着敲——只看不练等于没学。② 遇到不懂的命令用 man 查手册,养成自查阅习惯。③ 阶段三开始,每学一组命令就找一个实际场景用起来(比如整理下载文件夹)。