Shell 导航与基础
主线:图形界面只能点已存在的按钮,Shell 能运行任何程序、把它们组合起来自动化任务——GUI 覆盖 80% 场景,剩下 20% 必须回到命令行。
心智模型
- Shell 解析一行命令:按空白分词,第一个词是要执行的程序,其余是参数。
- 路径分两种:以
/开头的是绝对路径;相对路径从当前工作目录(pwd/$PWD)逐级解析。.是当前目录,..是父目录。 - 找程序:Shell 按
$PATH(冒号分隔的目录列表)搜索命令名;which cmd看解析到哪个文件,/bin/echo这类全路径可绕过$PATH。cd是 Shell 内建命令,所以which cd找不到它。
操作契约
- 先查手册再试:
man cmd看完整手册,cmd --help看摘要,装了tldr用tldr cmd看常见示例——从「魔法咒语」升级为「知道参数含义」。 - 路径含空格或特殊字符要引号:
"My Photos"或My\ Photos。单引号'...'内全是字面量,双引号"..."内允许$等展开。 - 核心命令速查:
cat打印全文;sort按行排序;uniq去连续重复行;head/tail看头尾几行;grep pattern file搜正则匹配行(-r递归搜目录);sed -i 's/a/b/g'原地替换;find按条件找文件;awk '{print $2}'按列取值。 - Tab 补全:补路径、补命令,比手打快且不易错。
- 现代替代按场景用:讲义推荐 zoxide 的
z(记常用路径)、eza(替代ls)、bat(替代cat)、ripgrep(替代grep)、fd(替代find)——本地交互更顺手,但可移植性弱;写给别人看的命令、脚本和教程仍用标准工具。
练习
学习材料在 exercises.md。
改编自 MIT The Missing Semester 课程 Lecture 1: Course overview + the shell(讲义 + 口播稿,CC BY-NC-SA 4.0):https://creativecommons.org/licenses/by-nc-sa/4.0/ · 课程站点:https://missing.csail.mit.edu/ · 讲座视频:https://www.youtube.com/watch?v=MSgoeuMqUmU