20 篇地图,一眼回望
全系列四段:地基(目录与一切皆文件、文件操作、vim)→ 三剑客(grep 筛行、awk 切列、sed 改文件,管道串流水线)→ 系统管理(权限、进程、nohup/tmux、systemd、软件包、磁盘)→ 实战进阶(SSH、环境变量、crontab、日志、性能观测)。零散的命令只有挂进「场景」才能长在脑子里——下面就是五个最高频事故场景的标准动作。
场景一:CPU 飙高
$ top # P 按 CPU 排,锁定 PID;看 wa 是不是也高
$ ps aux | grep PID # 确认它是谁
$ cat /proc/PID/cmdline # 它的完整启动命令
# Java 进程 → jstack 定位线程(JVM 系列);其他 → strace 看系统调用
$ kill -15 PID # 决定处置时,先 15 后 9场景二:内存告急
$ free -h # 只认 available,别被 free 骗
$ ps aux --sort=-%mem | head # 内存大户排行榜
$ cat /proc/meminfo | head # 细节
$ dmesg | tail # 有没有 OOM killer 的击杀记录场景三:磁盘写满
$ df -h ; df -i # 空间与 inode 双查
$ du -sh /* | sort -rh | head # 逐层钻取
$ find / -size +500M 2>/dev/null # 直挖大文件
$ lsof +L1 # 已删未释放的句柄(截断 > 而非 rm)场景四:服务起不来
$ systemctl status note-app # 先看状态和最近日志
$ journalctl -u note-app -n 50 # 完整报错
$ ss -ltnp | grep 8080 # 端口被占?
$ ls -l /opt/app/note.jar # 权限对不对、文件在不在
$ systemctl daemon-reload # 改过 unit 文件后别忘了场景五:网络不通
$ ping 目标IP # 通不通(ICMP 可能被禁,不代表服务挂)
$ ss -ltnp | grep 端口 # 对端服务起了没
$ curl -v telnet://目标:端口 # 端口通不通
$ ip route # 路由对不对
# 再往深 → tcpdump 抓包(网络系列 Wireshark 三步法)持续精进路线
第一步: muscle memory——本系列的高频命令每天用,形成肌肉记忆,别背。第二步:shell 脚本——变量、判断、循环,把重复动作固化成脚本(配合 crontab 篇的托管姿势)。第三步:容器与编排——Docker 把「一台机器」变成「一个进程」,K8s 把「N 台机器」变成「一个集群」,但它们的底层正是本系列的进程、网络、磁盘、权限。第四步:按需深入内核——排查到极致时再回来啃(内存管理、文件系统、网络协议栈),带着问题学,效率翻倍。
收官清单:随身速查卡
| 想干什么 | 一条命令 |
|---|---|
| 看谁吃 CPU / 内存 | top(P / M)、ps aux --sort=-%mem |
| 看磁盘 / inode | df -h、df -i、du -sh * | sort -rh | head |
| 找文件 / 大文件 | find . -name "x"、find . -size +500M |
| 翻日志 | journalctl -u 服务 -f、grep -C 3 关键字 |
| 看端口 / 连接 | ss -ltnp、ss -ant | uniq -c 统计 |
| 管服务 | systemctl status/restart、enable --now |
| 批量改文件 | grep -rl | xargs sed -i.bak |
| 断线跑长任务 | tmux new -s x / tmux a -t x |
Linux 系列正式收官。从分布式事务到锁,从限流熔断到缓存,从 JVM、Nginx、网络到今天的 Linux——后端的「地基与骨架」已经拼完。命令是敲会的,不是看会的,找个下午把每篇的命令块亲手过一遍,这一系列才算真正属于你。
评论 (0)