跳到内容

元数据卡

  • 前置知识:ch02-first-commands 到 ch02-wildcards-pipes
  • 预计时间:25 分钟
  • 阅读模式:打开终端,跟着敲

练手之前,打开你的终端。这是唯一的方法——光看不动手等于没学。

热身(5 分钟,必做)

热身 1:确认你在哪

bash
pwd
ls

看看你在哪个目录,周围有什么文件。

热身 2:建个练习营地

bash
cd ~
mkdir practice
cd practice
touch hello.txt
echo "终端入门,从此开始" > hello.txt
cat hello.txt

你在家目录下建了一个叫 practice 的营地,在里面放了第一块写着字的石板。

热身 3:查看你的 PATH

bash
echo $PATH
which ls
which pwd

PATH 里的目录里,你至少应该认识 /usr/bin/bin。用 which 看看你常用的命令都在哪。

热身 4:根目录浏览

bash
ls / | sort | head -10

ls / 看根目录有什么,| sort 排序,| head -10 只看前十行。第一次用管道组合三个命令。


挑战(15 分钟,选做)

挑战 1:管道链—找最新的日志文件

bash
ls -lt /var/log | head -4 | tail -3

一步一步来:

  1. ls -lt /var/log — 按修改时间排序 /var/log 里的内容
  2. | head -4 — 取前 4 行(第一行是"total",跳过)
  3. | tail -3 — 从这 4 行里取后 3 行

理解每步发生了什么。

挑战 2:批量重命名

这句话你应该记住:什么破坏性操作,都先用 echo 测试。

bash
# 在 practice 目录里创建 10 个测试文件
cd ~/practice
touch test-{1..10}.txt

# 测试重命名(只打印,不执行)
for f in test-*.txt; do
  echo mv "$f" "${f%.txt}.bak"
done

# 确认输出都正确后,去掉 echo 执行
for f in test-*.txt; do
  mv "$f" "${f%.txt}.bak"
done

# 验证
ls

这个练习让你体会到批量操作的安全流程:测试 → 确认 → 执行

挑战 3:探险 PATH

bash
which python3
which grep
which cat
file $(which python3)

which 找到 Python、grep、cat 的位置。再用 file 看看它们的文件类型——大部分会是 ELF 可执行文件。

挑战 4:用 echo 写进配置文件

bash
# 先在当前会话测试变量
export WORKSHOP_NAME="变量村"
echo $WORKSHOP_NAME

# 测试通过后,写进配置文件
# 先看看你现在用的是 Bash 还是 Zsh
echo $SHELL

# 确认配置文件存在,以防万一先备份
cp ~/.bashrc ~/.bashrc.bak

# 追加一行
echo "export WORKSHOP_NAME=\"变量村\"" >> ~/.bashrc

# 重载
source ~/.bashrc

现在关掉终端再打开,echo $WORKSHOP_NAME 应该还能打出"变量村"。


排障(5 分钟)

下面每个命令都有问题。你能看出问题在哪吗?

问题 1:目录误删

bash
rm -rf ~/build

你本来想删当前目录下的 build,但你在 /tmp 里——这个命令实际上删了哪个目录?

问题 2:家目录误伤

bash
cd ~
rm -r practice

如果在 practice 里你还有重要文件——已经没了。为什么这是不可挽回的?你本来可以做什么来预防?

问题 3:grep 的参数陷阱

bash
ls -l | grep .txt

你本来只想列出 .txt 文件。但 ls -l | grep .txt 显示了所有文件。为什么?

提示grep 的参数是正则表达式,不是通配符。. 在正则里匹配任意字符。所以 .txt 匹配的是"任意字符 + txt"——几乎所有文件名都有字符,所以全出来了。

正确的做法是用通配符:

bash
ls -l *.txt

验收清单

做完这些你就对终端不再陌生了:

  • [ ] 能用 cdlspwd 自如地在文件系统中导航
  • [ ] 能用 touchmkdircpmvrm 创建和管理文件目录
  • [ ] 理解 $变量 的含义,知道 echo $PATH 看什么
  • [ ] 会用 *? 通配符做批量操作
  • [ ] 会用 | 把命令串联起来
  • [ ] 知道文件名空格需要用引号包住
  • [ ] 知道 rm -rf 的危险性,养成先 ls 后删的习惯
  • [ ] 知道 >>> 的区别

旅人笔记

终端不怕试——怕的是不试。
破坏性操作先 echo 测试。
rm -rf 前停一秒,pwd 确认位置。
用 Tab 补全,用上下箭头翻历史命令。
你今天已经跟电脑说上话了——而且它照做了。


→ 下一步:时光机——Git

你已经能在终端里自由穿梭了——创建、删除、移动、查找,不在话下。

但很快你会遇到一个让所有开发者都头疼的问题:改了代码,改错了,想回到一小时前——可是已经保存了。

下一章,你会拿到时光机:Git。你可以任意回溯到任何一个时刻,像从未犯错一样重新出发。

还记得工坊主人说的那句话吗——"改坏了别怕,我们有存档。"

Built with VitePress | Software Systems Atlas