摘要:
拒绝无效加班。从日志分析到进程管理,这 18 个 Linux 命令行技巧,不仅能救火,还能让你在终端运指如飞。收藏这一篇就够了。



凌晨 2 点,线上服务突然报警。
你揉着惺忪的睡眼打开终端,面对黑压压的屏幕和几个 G 的日志文件,还在用 cat 甚至 vim 一行行往下翻?

停下!这简直是在慢性自杀。

在 Linux 世界里,普通司机和“老司机”的区别,不在于谁背的命令多,而在于谁能用最少的字符,解决最复杂的问题

今天,我把自己压箱底的 18 个 Linux 骚操作 整理了出来。这些技巧专治“线上排错难”和“手速跟不上脑速”的痛点。

坐稳了,发车!


01 日志分析篇:拒绝“肉眼 debug”

线上出 Bug,最怕的就是在海量日志里找那一行报错。

1. 关键上下文,一网打尽

grep 报错信息是不够的,你得知道报错前发生了什么。

  • -A 5: 显示匹配行及 5 行 (After)
  • -B 5: 显示匹配行及 5 行 (Before)
  • -C 5: 显示匹配行及前后 5 行 (Context)
# 找出 "Error" 及其前后 5 行,案发现场还原
grep -C 5 "Error" application.log

2. 实时监控,精准过滤

tail -f 刷屏太快看不清?配合 grep 只要你关心的。

# 只看包含 "NullPointer" 的实时日志
tail -f catalina.out | grep --line-buffered "NullPointer"

3. 统计报错频率(面试必问)

想知道哪个 API 报错最多?或者哪个 IP 在攻击你?
sortuniq 是绝配。

# 统计日志中报错最多的前 10 个关键词/IP
cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 10

老司机解说uniq -c 计数,sort -nr 按数字倒序排列。这招能让你瞬间看清流量大头。


02 运指如飞篇:手速提升 100%

不想把时间浪费在敲重复命令上?这些快捷键和缩写要记牢。

4. 忘记 sudo 怎么办?

敲了一长串命令,回车发现 Permission denied。别删了重敲!
输入 sudo !!,自动执行上一条命令。

$ yum install nginx
> Permission denied
$ sudo !! 
> sudo yum install nginx (自动执行)

5. 快速搜索历史命令

还在按 箭头找十分钟前敲的命令?
按下 Ctrl + R,输入关键词,终端会自动匹配最近的一条历史记录。

6. 快速备份文件

修改配置文件前,备份是个好习惯。
别再写 cp nginx.conf nginx.conf.bak 这么长的字了。

# 大括号扩展,自动展开为 cp nginx.conf nginx.conf.bak
cp nginx.conf{,.bak}

7. 回到上一个目录

手滑切错目录,或者需要在两个深层目录间反复横跳?
cd -,在最近两个目录间“反复横跳”。


03 线上救火篇:稳、准、狠

服务器 CPU 飙高?磁盘满了?端口被占?秒级定位。

8. 谁占用了我的端口?

启动服务报错 "Address already in use"。
别急,用 lsofss 揪出元凶。

# 查看 8080 端口被谁占了
lsof -i :8080
# 或者
ss -lntp | grep 8080

9. 批量杀进程

还在 ps -ef 找 PID 然后一个一个 kill
pkill 支持按名称杀进程,慎用,但真香。

# 干掉所有名为 nginx 的进程
pkill -9 nginx

10. 磁盘满了,谁是罪魁祸首?

服务器报警磁盘 100%,用这个命令快速定位大文件。

# 查找当前目录下大于 500M 的文件
find . -type f -size +500M
# 或者查看当前目录各文件夹大小,并排序
du -h --max-depth=1 | sort -hr

11. 即使断网,任务也不能停

在远程服务器跑耗时脚本,最怕 SSH 断开。
必须学会使用 nohup 或者神器 screen / tmux

# 最简单的后台运行,日志输出到 log.txt
nohup ./script.sh > log.txt 2>&1 &

04 防删库跑路篇:保命要紧

常在河边走,哪有不湿鞋。但我们可以穿上雨靴。

12. 给 rm 装个保险

.bashrc 里加上这行配置,当你手抖敲下 rm 时,它会提示你确认。

# 强制开启交互模式
alias rm='rm -i'

更推荐安装 trash-cli,把 rm 映射为“移入回收站”,给自己一粒后悔药。


写在最后

Linux 命令行浩如烟海,死记硬背是没用的。
真正的“骚操作”,是在遇到问题时,能瞬间组合出最合适的工具。

如果你觉得这篇文章让你学到了新姿势:

  1. 点个“在看”,备份你的知识库。
  2. 转发给那个还在一行行翻日志的同事(救救孩子)。

Q.E.D.


寻门而入,破门而出