命令之间能「接起来」
终端里有个很强大的概念叫管道(|):把一个命令的输出,接给下一个命令当输入。就像流水线,上一个工序的产物喂给下一个工序。
命令1 | 命令2 | 命令3
管道让简单命令组合出强大功能,也是 Claude Code 在终端里分析项目时常借助的工具。
贯穿项目我们
todo-app 里的待办就存在一个文本文件里。用 wc 数行数、用 grep 搜内容、用 ls | wc -l 数文件——这些管道操作正是 todo 工具将来处理数据的底层方式。先认识几个常用命令
数行数:wc
wc -l 统计行数:
wc -l package.json
# 42 package.json
看文件开头/结尾:head / tail
head -20 app.js # 看前 20 行
tail -10 app.js # 看最后 10 行
搜索:grep
grep "TODO" src/ # 在 src 里找含 TODO 的行
用管道把它们接起来
例子:想知道 src 目录下有多少个文件。
ls src | wc -l
# 命令1:ls src 列出文件
# 命令2:wc -l 数这些行数
再看一个:找出代码里所有 console.log 的位置。
grep -r "console.log" src/ | head -20
# 先搜出所有 console.log,再只取前 20 条
为什么要懂这些
你可能想「这些我自己用得少,为什么还要学」:
- Claude Code 会自己用——你看得懂它的操作,才知道它干了什么
- 你可以让它用管道查东西——比如「帮我统计有多少行代码」
- 自己排查时,一条管道命令常常比翻半天文件快
理解「输出 → 输入」这条线,比死记命令更重要。
落地练习:数一数 todo-app 里的「料」
回到我们上节建的 todo-app 目录,用管道干点真事。先手动造点内容,再统计:
- 在
todo-app里建一个文件,写几行字:
echo "买牛奶" > todo.txt
echo "交房租" >> todo.txt
echo "写周报" >> todo.txt
- 看它有多少行:
wc -l todo.txt,应该输出3 - 找出含「买」的行:
grep "买" todo.txt - 数目录下有几个文件:
ls | wc -l
怎么判断做对了?——
wc -l返回 3,grep "买"只显示「买牛奶」那一行。你亲手用管道把数据「接」了起来,这就是 todo 工具将来干活的方式。
卡住了怎么办? > 和 >> 的区别忘了?> 覆盖、>> 追加,按上面命令照抄即可。grep 没输出?可能文件里没这个字,cat todo.txt 看下内容。
常见坑:把 | 和 > 搞混
新手常把管道符 | 和重定向符 > 弄混。
|管道:把上一条命令的输出接给下一条命令当输入(两个命令都参与)>重定向:把上一条命令的输出写进文件(写盘,第二个不是命令而是文件)
一句话记法:| 接命令、> 写文件。写错的话行为差很多——> 会新建/清空文件,容易误删内容。
小结
这一节掌握了管道的思路:命令的输出可以是下一条命令的输入。配合 wc、head、grep,就能用简单命令组合出有用的结果,并已经在 todo-app 里用管道干了真事。下一节,我们正式和 Claude Code 对话。