Linux 命令速查

按用途分组的常用命令表,每条带一个能直接跑的例子。选项只列真正用得上的,记不住时来搜一下就行。

显示 153 / 153 条命令

man、--help 和 tldr 有什么区别

man 是系统自带的手册页,信息最全,但排版是给 1970 年代的终端看的,找一个参数往往要翻好几屏。命令支持 --help 时会打印一份精简的帮助,速度快但常常省略细节和坑。tldr 是社区维护的「太长不看版」,只给几个最常见的例子,适合快速回忆,但需要额外安装(apt install tldr 或 pip install tldr,也有 npm 版本)。

一个顺手的顺序是:先用 man -k 关键词 或 apropos 找命令名,再用 命令 --help 回忆参数,实在看不懂某个选项就去 man 里搜。man 里按 / 搜索、按 n 跳下一个匹配、按 q 退出,这三个键能省很多翻页时间。

几条必须小心的命令

表里标了「注意」的 6 条都属于会直接破坏数据的类型。rm -rf 不确认也不进回收站,最常见的翻车是变量为空时 rm -rf $DIR/ 展开成 rm -rf /,所以脚本里要写成 rm -rf "${DIR:?}"/ 让变量为空时直接报错退出。dd 不认文件系统,of 写错设备就会覆盖分区表,操作前用 lsblk 反复核对。mkfs 会在目标设备上重建文件系统,同样没有二次确认。

还有一类是「看起来无害但影响很大」:chattr +i 会让文件连 root 都改不了,忘记解除会导致配置改不动;fsck 对已挂载的读写文件系统运行可能造成严重损坏,一般要在卸载后或救援模式下执行。做任何写操作之前,先确认当前用户、当前目录和目标设备,必要时先备份。

这份表的边界

这里的命令以 GNU coreutils 和常见发行版的默认实现为准。macOS 上不少命令是 BSD 版本,像 sed -i 必须写成 sed -i ''、date 的参数也不一样;Alpine 用的是 BusyBox,选项更少。容器里通常没有 systemd,systemctl 那一组只在有 init 系统的机器上可用。真到线上排查,还是以目标机器上 man 的输出为准。