Administrator
Published on 2026-01-27 / 5 Visits
0
0

Linux 运维常用命令科普 ——随机密码、CPU / 内存 / 磁盘 / 进程排查一篇搞定

在 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 -%cpu
  • k -%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 满?

这些命令之所以“经典”,
不是因为复杂,
而是因为几乎每天都用得上



Comment