Linux 命令组合:解决 99% 日常运维需求

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/null4000=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 服务)。

三、命令组合的核心原则

    1. 按需组合:不要死记硬背,比如 “找大文件” 就想到find+du+sort,“分析日志” 就想到grep+awk+sort,按场景记组合逻辑;
    1. 先测后用:批量删除、修改文件前,先用lscat预览结果(比如把rm -f改成ls -l),避免误操作;
    1. 善用管道|是命令组合的核心,把前一个命令的输出作为后一个命令的输入,比如 “找文件→算大小→排序” 就是典型的管道组合;
    1. 记关键参数:不用记所有参数,比如find-name(按名找)、-size(按大小)、-mtime(按时间),awk-F(分隔符)、$n(字段),够用就行。

这些组合不是 “万能公式”,但能覆盖你 90% 以上的日常运维需求。遇到新场景时,试着用 “基础命令 + 管道 + 过滤” 的思路组合,慢慢就能形成自己的运维命令库。

🔥运维干货分享

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数字劳动力

您的打赏是我创作旅程中的关键燃

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值