在 Linux 运维中,很多问题并不复杂,
复杂的是 不知道该用哪条命令、怎么判断结果是否“正常”。
这篇文章把一些高频、实用、容易被误用的命令集中讲清楚,是真正在生产环境能救命的那种。
一、生成随机密码(不靠第三方工具)
命令
tr -dc '[:alnum:]' < /dev/urandom | head -c 12

这条命令在干什么?
/dev/urandom:系统随机源(非人为可预测)tr -dc '[:alnum:]':只保留 字母 + 数字
去掉特殊字符
head -c 12:取前 12 个字符
最终效果:生成一个 12 位随机密码
适合场景
临时账号密码
脚本初始化密码
内部系统测试账号
⚠️ 提醒:
这是随机性足够、但不是“加密算法”,不要用在极高安全级别的密钥生成中。
tr -dc 'A-Za-z0-9!@#$%^&*()_+-=' < /dev/urandom | head -c 16
二、查看进程内存占用(定位“谁在吃内存”)
方法一:top 交互式查看(最直观)
top进入后按:
Shift + M按 内存占用从高到低排序
适合:
快速肉眼判断
实时观察内存变化

方法二:一次性看内存占用前 20 的进程
ps aux | head -1; ps aux | grep -v PID | sort -rn -k +4 | head -20含义拆解
ps aux:列出所有进程-k +4:按 第 4 列(%MEM)排序sort -rn:按数值、倒序head -20:取前 20 行
非常适合写排障报告或截图留证

三、查看 CPU 占用(谁把 CPU 跑满了)
查看 CPU 使用率最高的进程
ps aux k -%cpuk -%cpu:
按 CPU 使用率 从高到低排序
适合场景:
CPU 突然飙高
服务器响应变慢
怀疑死循环或异常程序

模拟 CPU 飙高(测试监控 / 告警)
dd if=/dev/zero of=/dev/null这条命令会发生什么?
不断读取
/dev/zero不断写入
/dev/null持续消耗 CPU
常用于:
测试监控系统是否能告警
验证 CPU 限流策略
教学演示
⚠️ 注意:
这是真·吃 CPU,用完记得 Ctrl + C 停掉。

四、搜索进程(不用 ps | grep)
命令
pgrep -a zabbix优点
pgrep:专门找进程-a:显示完整命令行不会把
grep zabbix自己也匹配出来
比 ps aux | grep 干净、专业
适合:
判断服务是否启动
查看启动参数
写脚本判断进程状态

五、查看文件描述符(排查“Too many open files”)
命令
df -ih你在看什么?
inode 使用情况
inode 用完 ≠ 磁盘满
常见问题现象:
磁盘还有空间
却无法创建新文件
很多日志爆炸、临时文件过多,都是 inode 先死。

六、查看磁盘占用(谁在偷偷吃空间)
1️⃣ 查看根目录下各目录占用情况
du -s /* | sort -nr一眼看出:
/var/data/home
谁最大

2️⃣ 查看当前目录下占用前 10 的子目录
du -s * | sort -nr | head适合:
排查日志目录
用户家目录
应用数据目录

3️⃣ 查看占用最小的 10 个目录(反向参考)
du -s * | sort -nr | tail用来确认:
哪些目录“几乎没东西”
哪些可以忽略

七、一个非常重要的运维思维总结
运维排障不是“把所有命令都跑一遍”,
而是 用最少的命令,回答最关键的问题:
谁在跑?
谁在吃?
吃的是 CPU、内存,还是磁盘?
是空间满,还是 inode 满?
这些命令之所以“经典”,
不是因为复杂,
而是因为几乎每天都用得上。