CURATED GUIDE · 固定上游版本

命令行的艺术:新手安全实践精选

把高收藏命令行长文整理成可执行的入门路线,覆盖 Bash、管道、文本处理、SSH 与故障排查。

这是一份基于 the-art-of-command-line 简体中文版 的选编与实践导览,不是原仓库 ZIP。目标是建立可重复使用的 Bash 基本功,而不是收集看起来复杂的一行命令。

固定版本:6b50745d2e788add2e8f1ed29010e72659a9a074。示例主要面向 Linux Bash;Windows 可在 WSL 等可信 Unix 环境中练习,macOS 的部分命令参数可能不同。

1. 先学会求助,再背命令

  1. man bash:浏览 Bash 手册,理解命令、参数、重定向、管道、变量和退出状态。
  2. command --help:快速查看某个命令支持的参数;把 command 换成实际命令。
  3. type command:确认名字最终指向别名、函数、内建命令还是可执行文件。
  4. man command 或 info command:在使用陌生参数前查语义。
  5. 遇到长命令先拆成小段执行,并检查每一步输出。

建议熟悉一种终端文本编辑器。Vim 很常见,但不是唯一选择;关键是会打开、修改、保存、退出和不保存退出。

2. 文件操作:先看清楚,再修改

pwd
ls -la
mkdir -p practice
cd practice
cp source.txt backup.txt
mv backup.txt renamed.txt
less renamed.txt

练习:创建测试目录和三个文本文件,复制、重命名、查看并逐个删除,全程不碰测试目录之外的数据。

3. 重定向和管道:知道数据去了哪里

printf 'alpha\nbeta\n' | grep alpha
grep -n 'error' application.log | head -n 20

不要凭终端“有输出”判断成功,也不要把生产错误直接重定向到 /dev/null 后忘记。

4. 文本处理:先用样例验证

printf '{"name":"demo","ok":true}\n' | jq '.name'
printf 'b\na\na\n' | sort | uniq -c

处理真实文件前保留备份,用十几行样例验证规则,再扩大到完整文件。

5. 进程与系统排查:从证据开始

排查顺序:复现问题 → 明确时间和影响 → 看服务状态与日志 → 看资源、端口、网络和依赖 → 每次只改一个变量 → 验证并记录。

6. SSH:便利不能绕过主机验证

Host practice-server
    HostName example-host
    User practice-user
    ServerAliveInterval 15
    ServerAliveCountMax 3

这只是配置模板,不包含真实地址或密钥,不能直接假设它适用于你的服务器。

7. 单行命令的判断标准

好的单行命令应该可读、可解释、可回滚或有备份、对异常输入有边界。把命令粘贴到终端前,至少回答:

  1. 输入从哪里来,输出会覆盖什么?
  2. 通配符和变量会展开成什么?
  3. 任一段失败时,后续是否仍会执行?
  4. 是否泄露口令、令牌、个人信息或内网地址?
  5. 能否先在测试目录或小样例上验证?

shellcheck 可以辅助检查 Shell 脚本,但不能代替人工理解业务影响。

8. 七天练习与验收

验收标准不是记住多少命令,而是能从手册找到答案、解释每个参数、用样例验证,并在失败时保住数据。

来源、改动与许可

原作者为 Josh Levy,内容由众多作者和译者共同完善。本站删除 OSX/Windows 的过时细节和冷门命令,重新组织学习顺序,新增练习、安全边界及检查清单。

原作品及本站演绎专题均采用 Creative Commons Attribution-ShareAlike 4.0 International 许可。再分发或演绎时须保留适当署名、许可链接和修改说明,并以相同方式共享。

离线保存这份精选导览

关注公众号「日拱一卒」,发送口令「命令行」,按提示验证后下载 Markdown 或 PDF。

前往下载