Linux 运维的核心效率,从来不是 “背会多少单个命令”,而是 “能把命令组合起来解决实际问题”。比如磁盘满了要快速找大文件、系统卡了要定位高负载进程、日志报错要提取关键数据 —— 这些场景靠单个命令根本不够,必须靠 “命令组合” 破局。
下面 30 个组合,按 系统监控、日志分析、文件管理、进程管理、网络排查、权限审计6 大高频场景分类,每个组合都来自真实运维场景,附带具体操作案例,新手也能直接复制使用。
一、系统监控与资源排查类(6 个):快速定位资源瓶颈
日常运维中,系统负载高、磁盘满、内存不够用 ,是最常见的告警,这 6 个组合能帮你 1 分钟找到问题根源。
1. 查看服务器负载:
top -b -n 1 | grep Cpu | awk '{print "CPU使用率:"$2"%"}' \
&& free -h | grep Mem | awk '{print "内存使用率:"$3"/"$2"("$7"空闲)"}' \
&& df -h | grep /$ | awk '{print "根分区使用率:"$5"("$4"空闲)"}'
场景说明
刚登录服务器,想快速看 CPU、内存、根分区的核心状态,不用分别输 top、free、df 三个命令。
命令解析
-
top -b -n 1:非交互模式输出 1 次系统状态,避免进入 top 交互界面; -
grep Cpu:过滤 CPU 行,awk提取使用率; -
free -h:人性化显示内存,grep Mem聚焦内存行; -
df -h | grep /$:只看根分区(避免显示其他挂载点),提取使用率和空闲空间。
注意事项
- 若根分区挂载点不是
/(比如特殊系统),需把grep /$改成实际挂载点(如grep /root)。
2. 查看吃 CPU 最多的前 10 个进程:
ps -eo pid,ppid,%cpu,%mem,cmd --sort=-%cpu | head -10
场景说明
系统 CPU 使用率突然飙升到 80% 以上,要快速找出 “吃 CPU 最多的前 10 个进程”,看是不是异常进程(如挖矿程序)。
命令解析
-
ps -eo:自定义输出字段(pid = 进程 ID,ppid = 父进程 ID,% cpu=CPU 占比,% mem = 内存占比,cmd = 进程命令); -
--sort=-%cpu:按 CPU 占比倒序排列(-表示倒序); -
head -10:只显示前 10 条,避免输出过长。
注意事项
- • 若想查 “吃内存最多” 的进程,把
--sort=-%cpu改成--sort=-%mem。
3. 快速找到 大于 100M 的大文件
find / -type f -size +100M 2>/dev/null | xargs du -sh | sort -hr
场景说明
收到 “根分区使用率 90%” 的告警,要快速找到 “大于 100M 的大文件”,看是不是日志没切割或临时文件没清理。
命令解析
-
find / -type f -size +100M:从根目录找所有大小超过 100M 的文件(-type f指定文件,避免目录); -
2>/dev/null:忽略权限不足的报错(比如/proc目录下的文件); -
xargs du -sh:对找到的文件逐个计算大小(-s单文件,-h人性化显示); -
sort -hr:按大小倒序排列(-h识别 “G/M” 单位,-r倒序)。
注意事项
-
• 若想找 “大于 1G” 的文件,把
+100M改成+1G; -
• 删除大文件前先确认用途(比如
access.log若在使用,需先切割再删除)。
4. 查看系统响应慢问题
vmstat 1 5 | awk 'NR>1 {print "平均等待IO时间:"$16"ms 等待IO进程数:"$17"个"}'
场景说明
系统响应变慢,但 CPU、内存使用率都不高,怀疑是 “磁盘 IO 瓶颈”,要查看 IO 等待情况。
命令解析
-
•
vmstat 1 5:每 1 秒输出 1 次系统 IO 状态,共输出 5 次(避免单次数据不准); -
•
NR>1:跳过 vmstat 的表头行; -
•
$16:vmstat 输出中 “wa” 字段(IO 等待时间,单位 ms),$17:“st” 字段(等待 IO 的进程数)。
注意事项
- • 若 wa 长期超过 20ms,需进一步用
iostat -x 1查看具体磁盘的 IO 情况(如sda的 util% 是否接近 100%)。
5. 查看指定网卡(如 eth0)的实时流量
sar -n DEV 1 3 | grep -v Average | awk '/eth0/ {print "网卡eth0:接收"$5"KB/s 发送"$6"KB/s"}'
场景说明
服务器带宽跑满,要查看 “指定网卡(如 eth0)的实时流量”,判断是接收还是发送流量过高。
命令解析
-
sar -n DEV 1 3:每 1 秒输出 1 次网卡流量,共 3 次(-n DEV指定网卡统计); -
grep -v Average:排除最后一行的平均值(只看实时数据); -
awk '/eth0/:只过滤 eth0 网卡的行,$5是接收流量(rxkB/s),$6是发送流量(txkB/s)。
注意事项
- • 先通过
ip addr确认网卡名(如 centos7 可能是ens33,不是eth0),再替换命令中的网卡名。
6. 检查服务器非法登录
w | awk 'NR>1 {print "登录用户:"$1" 登录IP:"$3" 登录时间:"$4}'
场景说明
怀疑服务器有非法登录,要查看 “当前在线的用户”,包括用户名、登录 IP 和时间,判断是否有异常账号。
命令解析
-
•
w:查看当前登录用户及操作; -
•
NR>1:跳过 w 的表头; -
•
$1是用户名,$3是登录 IP(若本地登录是localhost),$4是登录时间。
注意事项
- • 若想查 “历史登录记录”,改用
last -n 10(显示最近 10 次登录)。
二、权限与安全审计类(4 个):保障服务器安全
运维中 权限配置错误导致服务起不来、误删文件、非法修改配置、 是常见安全问题,这 4 个组合能帮你审计权限和操作记录。
7. 查找文件777权限
find /data/app -perm 777 -type f 2>/dev/null
场景说明
服务器被扫描出 “有文件权限为 777(所有人可读写执行)”,要 “找出 /data/app 目录下所有权限为 777 的文件”,修改为安全权限(如 644)。
命令解析
-
find /data/app:指定查找目录; -
-perm 777:只找权限为 777 的文件(777=rwxrwxrwx); -
-type f:只找文件(避免目录,目录 777 风险较低); -
2>/dev/null:忽略权限不足的报错。
注意事项
-
若想找 “权限含 SUID” 的危险文件(可能被提权),用
find / -perm -4000 -type f 2>/dev/null(4000=SUID 位); -
不要盲目把所有 777 文件改成 644,需确认文件用途(如脚本文件可能需要执行权限,改 755)。
8. 查看该目录的 ACL(访问控制列表)权限
getfacl /data/app | grep -E "user:|group:"
场景说明
用ls -l看 /data/app 目录权限是drwxr-xr-x,但某个用户还是没权限访问,要 “查看该目录的 ACL(访问控制列表)权限”,判断是否有特殊权限配置。
命令解析
-
getfacl /data/app:查看目录的 ACL 权限(比ls -l更详细,支持多用户 / 组权限); -
grep -E "user:|group:":只显示用户和组的 ACL 权限(避免其他冗余信息)。
注意事项
-
• 若要给用户加 ACL 权限,用
setfacl -m u:admin:rwx /data/app(给 admin 用户加读写执行权限); -
• 查看文件 ACL 权限同理,把目录改成文件路径(如
getfacl /data/app/config.conf)。
9. 查看所有用户的最后登录时间
lastlog | grep -v "Never logged in"
场景说明
要 “查看所有用户的最后登录时间”,判断是否有长期不用的账号被非法登录(比如 root 账号 3 个月没登录,突然有登录记录)。
命令解析
-
•
lastlog:显示所有用户的最后登录信息(包括系统账号); -
•
grep -v "Never logged in":排除 “从未登录过” 的账号(减少输出)。
注意事项
-
•
lastlog显示的是/var/log/lastlog文件的内容,若该文件被清空,会显示不准确; -
• 若想查 “某个用户的登录记录”,用
lastlog -u admin(查看 admin 用户)。
10. 查看历史执行的高危命令
grep -E "rm -rf|chmod|chown" /root/.bash_history | tail -20
场景说明
服务器上的文件突然丢失,要 “查看 root 用户最近执行的 20 条含 rm -rf、chmod、chown 的命令”,判断是否有人误操作删除文件或修改权限。
命令解析
-
•
grep -E "rm -rf|chmod|chown":过滤含危险命令(rm -rf 删除,chmod 改权限,chown 改所有者)的行; -
•
/root/.bash_history:root 用户的命令历史文件(普通用户是/home/用户名/.bash_history); -
•
tail -20:显示最后 20 条命令。
注意事项
-
• 命令历史默认不记录时间,若想记录时间,需在
/etc/profile中加export HISTTIMEFORMAT="%F %T ",执行source /etc/profile生效; -
• 若用户手动清空了
.bash_history,此命令无法查到,需提前配置命令审计(如用 auditd 服务)。
三、命令组合的核心原则
-
- 按需组合:不要死记硬背,比如 “找大文件” 就想到
find+du+sort,“分析日志” 就想到grep+awk+sort,按场景记组合逻辑;
- 按需组合:不要死记硬背,比如 “找大文件” 就想到
-
- 先测后用:批量删除、修改文件前,先用
ls或cat预览结果(比如把rm -f改成ls -l),避免误操作;
- 先测后用:批量删除、修改文件前,先用
-
- 善用管道:
|是命令组合的核心,把前一个命令的输出作为后一个命令的输入,比如 “找文件→算大小→排序” 就是典型的管道组合;
- 善用管道:
-
- 记关键参数:不用记所有参数,比如
find记-name(按名找)、-size(按大小)、-mtime(按时间),awk记-F(分隔符)、$n(字段),够用就行。
- 记关键参数:不用记所有参数,比如
这些组合不是 “万能公式”,但能覆盖你 90% 以上的日常运维需求。遇到新场景时,试着用 “基础命令 + 管道 + 过滤” 的思路组合,慢慢就能形成自己的运维命令库。
295

被折叠的 条评论
为什么被折叠?



