两类场景总在提醒我该整理一份命令清单。一类是日常写代码,某个命令用得不够频繁,参数记不住,每次都要重新搜索引擎查一遍。

另一类更麻烦:公司的测试服务器系统版本老,很多现代工具装不上,只能用回那些”老式”命令。这些命令恰恰因为平时用不到,用法早就生疏了,真要用的时候翻半天才想起来参数怎么写。

这篇是一份分类地图,把常用命令和工具按场景归类,每条一两句话说清楚它解决什么问题、默认行为是什么。已经写过详细教程的条目直接跳转过去看用法,还没写的先记住名字,用到时候自己查 man--help

文件与目录:从「东西在哪」查起

  • ls:列出目录内容,默认不显示隐藏文件(. 开头),常配 -la 看详情和隐藏项
  • find:按名称、类型、时间、大小等条件递归查找文件,条件组合和 -exec 两种写法的性能差异见 find:条件组合、-exec 两种写法与性能实战
  • fdfind 的现代替代,默认按名称模糊匹配、自动跳过 .gitignore 里的文件,语法更接近自然语言
  • tree:以树状结构展示目录层级,排查项目结构时比 ls -R 直观
  • du:统计文件/目录占用的磁盘空间,-h 转成人类可读单位,-s 只看汇总不展开子目录
  • df:查看文件系统整体的磁盘使用率,和 du(查某个目录/文件多大)不是一回事,df 是”盘还剩多少”
  • file:判断文件的真实类型,不依赖扩展名,遇到没有后缀的文件时有用
  • stat:查看文件的详细元信息(大小、权限、三个时间戳),比 ls -l 信息更全
  • ln:创建硬链接/软链接,版本切换、目录搬迁的常用手段,inode 原理和相对路径坑见 ln 软硬链接实战

ls -la 每一列什么意思、stat 三个时间戳的区别、磁盘满了怎么用 df+du 逐层定位,见 ls、stat、du、df 实战:文件信息与磁盘占用怎么查

终端里用图形化三栏界面管理文件,比裸敲 ls/cd 更高效,见 yazi:终端里的三栏文件管理器

文本处理与搜索:抓文本、转格式、过滤结果

  • grep:按正则匹配文本行,默认不递归,只在当前目录搜要加 -r;BRE/-E/-P 三种正则模式的区别和参数速查见 grep:正则匹配、上下文控制与 -E/-P 实战
  • ripgrep(rg)grep 的现代替代,默认递归搜索、自动遵循 .gitignore、速度快一个数量级,是本博客文章里推荐搜索时的首选
  • sed:流编辑器,按行对文本做替换、删除、插入,最常见用法是 sed 's/旧/新/g' 批量替换;和 awk 的选型对比、-i 参数的跨平台坑见 sed 与 awk 实战对比:什么时候该用哪个
  • awk:按列处理结构化文本(日志、CSV),比 sed 更适合”取第几列、按条件过滤”这类场景,同上一条的对比文章
  • cut / sort / uniq:三个小工具常一起用——cut 截取列,sort 排序,uniq -c 统计重复次数,组合起来能替代不少 awk 脚本
  • wc:统计行数(-l)、单词数、字节数,比写 awk 判断行数快
  • head / tail:取文件开头/结尾若干行,tail -f 实时跟踪日志——-n +N 取中间段、-F 治日志轮转见 head 与 tail 实战
  • jq:命令行的 JSON 处理器,从 API 响应或日志里提取字段、过滤、重新格式化

这几个小工具怎么组合替代 awk 脚本,完整实战见 cut、sort、uniq、wc、jq 实战:小工具组合怎么顶一个 awk 脚本

环境能装第三方工具时,grep 换成 ripgrep,配合 fzf 模糊筛选、fd 找文件,是效率提升最直接的一步,完整用法见 终端搜索三件套:fzf + ripgrep + fd,以及 jq;装不上的场合还得靠原生 grep,见上面的链接。

进程与系统资源:谁在跑、吃了多少

  • ps:查看当前进程快照,ps aux 是最常用的组合,看全部用户的所有进程——STAT 状态码(尤其 D/Z)、VSZ/RSS 的区别见 ps、top、free 输出怎么读
  • top / htop:实时监控进程和资源占用,htoptop 的现代替代,界面更直观、支持鼠标操作和树状显示父子进程;load average 怎么和核数一起读,同上一条的文章
  • kill / pkill:给进程发信号,默认发 SIGTERM(15,请求优雅退出),-9SIGKILL(强制杀死,进程来不及清理资源)——为什么 -9 该是最后手段、SIGHUP 重载配置的约定,见 kill 默认不是”杀死”:进程信号与 nice 优先级实战
  • nice / renice:调整进程的 CPU 调度优先级,数值越低优先级越高,同上一条的文章
  • systemctl:管理 systemd 服务的启动、停止、开机自启和状态查看,是现代 Linux 发行版的服务管理标准——enablestart 的区别、unit 文件怎么写见 systemctl 与 journalctl 实战
  • journalctl:查看 systemd 管理的日志,-u 服务名 只看某个服务、-f 实时跟踪,取代了传统的 /var/log/ 逐个文件翻,按时间/级别过滤同上一条的文章
  • crontab:管理定时任务,每个用户一份任务表,五个时间字段定义执行时机——“手动跑正常、cron 里不执行”的环境变量坑见 crontab 定时任务实战

端口、进程、日志三类问题的完整排查流程(含 sslsof),见 Linux 服务器问题排查:端口、进程、日志常用命令速查

网络排查:连不上、超时、端口占用先查这些

  • curl:发起 HTTP 请求、测试接口连通性,调试 API 时最常用的工具,不带参数默认发 GET
  • wget:下载文件,相比 curl 更适合直接保存到本地、支持断点续传

两者的分工(curl 调接口、wget 下载)和各自高频参数,见 curl 与 wget 实战:调接口、下载文件与断点续传

  • ss:查看 socket 连接状态(监听端口、已建立连接),是 netstat 的现代替代,速度更快、输出更简洁——TIME_WAIT/CLOSE_WAIT 状态怎么读见 ss 与 lsof 深入
  • lsof:列出进程打开的文件(Linux 下”一切皆文件”,网络连接也算),常用来反查”哪个进程占用了这个端口”;+L1 揪出已删除还占磁盘的文件,同上一条的文章
  • ping:测试到目标主机的网络连通性和延迟,基于 ICMP,某些网络环境会屏蔽
  • traceroute:追踪数据包到目标主机经过的每一跳路由,定位网络中间环节的问题
  • dig / nslookup:查询 DNS 解析结果,dig 输出更详细,排查域名解析问题的首选

这三者按”连通性→路径→解析”分层排查的完整流程,见 网络连不上怎么排查:ping、traceroute 与 dig/nslookup 实战

sslsof 的实际排查场景(比如揪出占用 8080 端口的进程),同样在 Linux 服务器问题排查 里有完整示例。

权限与用户管理:谁能做什么

  • chmod / chown:分别管文件权限和属主属组,数字模式、符号模式、setuid/setgid/sticky bit 这些细节容易搞混,完整实战见 Linux 权限与属主管理:chmod、chown 从数字模式到特殊权限位实战
  • sudo:以其他用户(默认 root)身份执行单条命令,比直接切到 root 更安全,操作有日志可查
  • su:切换到另一个用户的完整 shell 会话,su - 会同时加载目标用户的环境变量
  • useradd / usermod:创建用户、修改用户属性(所属组、家目录、shell),发行版不同细节略有差异
  • id / whoami:查看当前用户的身份信息,id 显示 UID/GID 和所属组,whoami 只输出用户名

sudo/su 的区别、useradd -m 为什么有时候不创建家目录,见 Linux 用户与权限管理:sudo、su 与 useradd 实战

包管理与服务安装:装什么、从哪装

  • apt:Debian / Ubuntu 系发行版的包管理器,apt update 刷新源、apt install 装包
  • yum / dnf:RHEL / CentOS / Fedora 系的包管理器,dnfyum 的继任者,新版本发行版默认用 dnf
  • brew:macOS(以及部分 Linux 发行版)的包管理器,不需要 sudo,装在用户目录下
  • systemctl enable:把服务设为开机自启,和上面”进程与系统资源”里的 systemctl status 是同一个命令的不同用法——一个管”装完之后要不要自启”,一个管”现在是什么状态”

三大包管理家族的命令怎么对应,完整对照见 apt、yum/dnf、brew 包管理实战:换发行版不用重新查命令

压缩与传输:打包、发送、同步

Git 命令行工具链

Shell 环境与效率工具

这一类不是单个命令,而是整套终端使用体验的优化,各自有完整教程:

这份地图会持续更新

chmod/chowngrepfindtarrsyncsed/awkping/traceroute/dig、包管理、sudo/su/useraddcut/sort/uniq/wc/jqls/stat/du/dfkill/nicecurl/wgetps/top/freesystemctl/journalctlssh/scpss/lsof 深入、crontabln 这些都写完详细教程了——地图上的条目已经全部有对应文章,后面出现新的常用命令再继续补充。