讲解

学到这里,你已经掌握了 Linux 命令行的核心地图。最后一节把零散的安全与效率习惯收拢成一份清单。安全篇的核心是「先演练,后执行」:带通配符的删除先 echo 或 ls 看匹配结果;批量改名、批量处理先用 -n/--dry-run(支持的命令)或 echo 预演;对陌生脚本先读完再跑,绝不 curl ... | sh 直接管道执行来路不明的安装脚本——下载下来看一遍再跑是底线。

习惯篇:路径和变量永远加引号("$file" 而不是 $file),防止空格和空值引发的分词灾难;重要操作用 -i 询问;定期清理大文件(du 那一套);把重复三次以上的操作写成脚本或函数。脚本篇:第一行写 shebang #!/bin/bash,第二行写 set -euo pipefail——出错即停(-e)、未定义变量即报错(-u)、管道任一环节失败整体算失败(-o pipefail),这行「安全三件套」能挡掉脚本里一半的坑。

成长篇:遇到不懂的命令先 man 或 tldr;把解决问题用到的命令记下来(笔记或 shell 注释);定期回看自己的 history 统计高频命令,把长的做成别名;学一点正则表达式(grep -E 已经开了头)。命令行是用出来的技能,每天用终端完成一件本来要开图形界面的事,三个月后你会回不去了。

示例

一段值得模仿的健壮小脚本:

# 安全三件套:出错即停、未定义变量报错、管道失败整体失败
set -euo pipefail

# 变量加引号,路径操作先检查
TARGET="backup"
if [ ! -d "$TARGET" ]; then
  mkdir "$TARGET"
fi

# 用日期生成不会冲突的备份文件名
cp notes.txt "$TARGET/notes-$(date +%Y%m%d).txt"
ls -l "$TARGET"

危险操作的正确预演姿势:

# 先用 echo 看通配符到底匹配了什么(echo 不会真的删除)
echo docs/*.txt

# 确认无误后才执行真实操作
ls docs/*.txt

常见坑

  • 变量不加引号:file="my doc.txt" 之后 rm $file 会删 my 和 doc.txt 两个东西。永远 "$file"。
  • curl | sh 一键安装:把远程脚本直接喂给 shell 等于交出整台机器,先下载阅读再执行。
  • 脚本不写 set -euo pipefail:前面命令失败后面照跑,把错误一路放大。三件套是每个脚本的第一印象。
  • 凭记忆敲长路径:Tab 补全和 history 搜索永远比手敲可靠,手敲长路径是 rm 事故的头号温床。

小结

先演练后执行、变量加引号、脚本三件套、不跑没读过的脚本。至此你已经具备独立使用 Linux 命令行的完整基础:文件、权限、进程、网络、包管理一网打尽,剩下的就是多用、多查、多总结。