外观
文件、管道与输出
适用范围:使用系统 zsh 与常见 UNIX 工具的 macOS,Intel 与 Apple 芯片均适用。
路径正确,命令才有明确目标
在 Finder 建立一个名为 Mac Practice 的练习文件夹,再在终端输入 cd ,将这个文件夹拖进终端窗口,让终端填写路径,核对后回车。随后用 pwd 确认位置。也可以手动输入带引号的完整路径;路径里的空格不能被误解成参数分隔符。Apple:指定文件与文件夹
把待学习的文本副本放入练习文件夹,使用 ls -lah 看名称,再用 less "笔记副本.txt" 阅读。less 可以滚动查看,按 q 退出;它不会把编辑内容写回原文件。不要直接拿客户资料或密码文件练习文本筛选。
管道把输出交给下一步
下面的命令只处理写在命令里的三行文字,不读取你的私人文件:
zsh
printf '%s\n' orange apple orange
printf '%s\n' orange apple orange | sort
printf '%s\n' orange apple orange | sort | uniq第一行输出原始顺序;第二行按排序规则排列;第三行在排序之后去除相邻重复项,应只留下 apple 与 orange。这里 | 把左侧程序的标准输出交给右侧程序作为标准输入。排序行为还可能受语言环境影响,本例只用简单英文词。Apple:输入、输出与管道
重定向和管道的风险不同
> 会把输出写入文件;如果文件已经存在,常见默认行为是覆盖其内容。>> 则在末尾追加。两者都会修改文件,所以看到它们时应先找到右边的目标路径。管道本身只是传递数据,但管道中的程序也可能写文件或执行其他动作,不能单凭看到 | 就认定只读。
这一篇不要求写入练习文件。你可以先把结果显示在屏幕,理解每一步后再研究如何保存。复制网络上的命令时尤其要检查有没有下载后立刻执行、管理员权限、递归删除或不明变量。
练习与成功标准
把 orange 换成别的普通单词,再重复执行三个版本。用 man sort 与 man uniq 查看工具说明,确认去重为何放在排序之后。成功标准是能预测每一步输入和输出,而不是只看到最后“好像没报错”。下一步可阅读 可检查的 Shell 工作流。