运维命令靠百度?
Linux 运维40+
必备命令速查手册
文件操作 · 进程管理 · 系统监控 · 网络排查 · 日志分析 · 正则速查
📦 4 PARTS + CONCLUSION
👉 滑动
PART 02
系统资源监控
CPU·内存·磁盘·网络
运维老司机的一句话
记不住命令不可怕,可怕的是需要时找不到参考
这篇文章整理了 Linux 运维工作中最常用的 40+ 条命令,覆盖文件操作、进程管理、系统资源监控、网络排查、日志分析、安全防护等核心场景,末尾还附带了15 条常用正则表达式速查。无论是日常巡检还是紧急排障,收藏这一篇就够用了。
文件与进程操作
FILE & PROCESS · 10 条核心命令
清理系统中的空文件(0 字节),释放目录 clutter。常用于日志清理后的收尾。
find -type f -size 0 -exec rm -rf {} \;
按内存占用降序排列当前所有进程,快速定位吃内存的“大户”。
ps -e -o "%C : %p : %z : %a" | sort -k5 -nr
与上一条类似,改为按CPU 利用率降序排列,找出消耗 CPU 最多的进程。
ps -e -o "%C : %p : %z : %a" | sort -nr
从缓存目录中提取所有 jpg 关联的 URL,用 grep、strings 和 awk 组合实现。
grep -r -a jpg /data/cache/* | strings | \
grep "http:" | awk -F'http:' '{print "http:"$2;}'
CMD 05查看 http 并发请求数及 TCP 连接状态
统计各TCP 连接状态的数量分布(ESTABLISHED、TIME_WAIT 等),是排查并发问题的第一步。
netstat -n | awk '/^tcp/ {++S[$NF]} \
END {for(a in S) print a, S[a]}'
CMD 06sed 匹配 Root 行并将 no 替换成 yes
在 sshd_config 中匹配包含 Root 的行,将该行的no 替换为 yes,常用于修改 SSH 配置。
sed -i '/Root/s/no/yes/' /etc/ssh/sshd_config
三种方式查杀 MySQL 进程:用 ps + grep + awk + xargs 组合,或直接用 killall,或通过pid 文件定向杀进程。
ps aux | grep mysql | grep -v grep \
| awk '{print $2}' | xargs kill -9
killall -TERM mysqld
kill -9 `cat /usr/local/apache2/logs/httpd.pid`
列出 init 运行级别 3 下自动启动的服务,用 cut 截取第 15 个字符之后的服务名。
ls /etc/rc3.d/S* | cut -c 15-
CMD 09SHELL 中用 EOF 显示多行信息
在 Shell 脚本中输出多行文本,用cat << EOF语法实现 heredoc。
cat << EOF
+------------------------------------------------+
| === Welcome to Tunoff services === |
+------------------------------------------------+
EOF
CMD 10for 巧用:给 MySQL 建软链接
遍历 MySQL bin 目录下所有文件,批量创建到 /usr/bin 的软链接,省去逐个手动 ln。
cd /usr/local/mysql/bin
for i in *; do ln /usr/local/mysql/bin/$i /usr/bin/$i; done
系统资源监控
SYSTEM RESOURCE · CPU·内存·磁盘·网络
这一部分覆盖运维巡检中最高频的资源检查项。每条命令附带了判断标准,按需取用即可。
取 IP 地址
ifconfig eth0 | grep "inet addr:" | awk '{print $2}' | cut -c 6-
# 或者
ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' \
| cut -d: -f2 | awk '{print $1}'
内存大小
free -m | grep "Mem" | awk '{print $2}'
资源巡检速查表
以下命令覆盖CPU、内存、SWAP、磁盘、I/O、网络六大核心维度,每条附判断标准。
| 检查项 | 命令 | 判断标准 |
|---|
| CPU 负载 | cat /proc/loadavg | 前三个值不超过逻辑 CPU 的 4 倍 |
| CPU 负载(详细) | mpstat 1 1 | %idle 是否过低(<5%) |
| 内存空间 | free | free 值是否过低 |
| SWAP 空间 | free + vmstat 1 5 | swap used 是否过高,si/so 是否频繁 |
| 磁盘空间 | df -h | Use% 是否超过 90% |
| 磁盘 I/O 负载 | iostat -x 1 2 | %util 是否超过 100% |
| 网络负载 | sar -n DEV | rxbyt/s、txbyt/s 是否过高 |
| 网络错误 | netstat -i | drop/fifo/colls/carrier 是否有值 |
| 网络连接数 | netstat -an | grep ... | 连接数是否异常增多 |
| 进程总数 | ps aux | wc -l | 是否超过 250 |
| 可运行进程 | vmstat 1 5 | 是否超过逻辑 CPU 的 4 倍 |
| 进程详情 | top -id 1 | 是否有异常进程 |
| 磁盘大文件 | du -cks * | sort -rn | head -n 10 | 找出占用最多的 Top 10 |
| jpg 文件总大小 | find / -name *.jpg -exec wc -c {} \; | 统计全盘 jpg 总大小 |
✦ 关键提示:CPU 数量越多(多核算多个 CPU,可用cat /proc/cpuinfo | grep -c processor查看),系统负载越低,每秒能处理的请求数也越多。
日志排查与安全防护
LOG & SECURITY · 排查·防护·抓包
网络状态检查、用户管理、日志巡检、进程清理和安全防护命令集中在本节,是排障和应急响应的核心工具箱。
网络状态与用户检查
网络连通性检查
用ping、traceroute、nslookup、dig检查DNS、网关等是否可以正常连通。
用户检查
用who | wc -l检查登录用户是否过多(比如超过 50 个),也可以用uptime。
系统时间检查
用date检查系统时间是否正确,时间偏差会影响定时任务和日志分析。
打开文件数目
用lsof | wc -l检查打开文件总数是否过多。
日志巡检
系统日志
cat /var/log/rflogview/*errors
grep -i error /var/log/messages
grep -i fail /var/log/messages
# 核心日志
dmesg
用logwatch --print可以生成每日日志报告。配置/etc/log.d/logwatch.conf设置 Mailto 为自己的邮箱,启动 mail 服务即可每天自动收到日志报告。
安全防护与进程清理
lsof -i :80 | grep -v "ID" | awk '{print "kill -9",$2}' | sh
找出状态为Z的僵死进程(Zombie)并杀掉。
ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -9
抓取 80 端口的 10000 个包存入文件,用于防止 80 端口被攻击时分析数据。
tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts
从抓包文件中提取 IP,统计重复访问次数并从小到大排序(注意“-t\ +0”中间是两个空格)。
less pkts | awk '{printf $3"\n"}' \
| cut -d. -f 1-4 | sort | uniq -c \
| awk '{printf $1" "$2"\n"}' | sort -n -t\ +0
其他实用命令
php-cgi 活动进程数
netstat -anp | grep php-cgi | grep ^tcp | wc -l
系统自启动服务
chkconfig --list | awk '{if ($5=="3:on") print $1}'
查看网卡型号
kudzu --probe --class=network
安全排查核心思路
先查日志找线索,再抓包定位源头,最后清进程修配置
常用正则表达式速查
REGEX · 15 条实用表达式
正则表达式是运维和开发的通用利器,下面 15 条覆盖了中文字符、邮箱、URL、电话号码、IP 地址等最常见的匹配场景。
| 用途 | 正则表达式 |
|---|
| 匹配中文字符 | [\u4e00-\u9fa5] |
| 匹配双字节字符 | [^\x00-\xff] |
| 匹配空白行 | \n\s*\r |
| 匹配 HTML 标记 | <(\S*?)[^>]*>.*?</\1>|<.*? /> |
| 首尾空白字符 | ^\s*|\s*$ |
| Email 地址 | \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* |
| 网址 URL | [a-zA-z]+://[^\s]* |
| 帐号合法性 | ^[a-zA-Z][a-zA-Z0-9_]{4,15}$ |
| 国内电话号码 | \d{3}-\d{8}|\d{4}-\d{7} |
| 腾讯 QQ 号 | [1-9][0-9]{4,} |
| 中国邮政编码 | [1-9]\d{5}(?!\d) |
| 身份证号 | \d{15}|\d{18} |
| IP 地址 | \d+\.\d+\.\d+\.\d+ |
特定数字与字符串匹配
// 特定数字匹配
^[1-9]\d*$ // 匹配正整数
^-[1-9]\d*$ // 匹配负整数
^-?[1-9]\d*$ // 匹配整数
^[1-9]\d*|0$ // 匹配非负整数
^-[1-9]\d*|0$ // 匹配非正整数
// 特定字符串匹配
^[A-Za-z]+$ // 仅26个英文字母
^[A-Z]+$ // 仅大写字母
^[a-z]+$ // 仅小写字母
^[A-Za-z0-9]+$ // 数字+英文字母
^\w+$ // 数字+字母+下划线
双字节字符正则[^\x00-\xff]可用来计算字符串长度(一个双字节字符长度计 2,ASCII 字符计 1);空白行正则\n\s*\r可用来删除空白行。
这篇速查手册整理了 Linux 运维中最高频的 40+ 条命令和 15 条常用正则表达式,覆盖了文件操作、进程管理、资源监控、网络排查、日志分析和安全防护六大场景。
命令不在多,在于遇到问题时能快速找到对的工具。建议收藏本文,日常巡检时按 PART 02 的速查表走一遍,排障时从 PART 03 的日志和抓包入手。
我是大乐学IT,每天分享IT知识。如果你觉得今天这篇有收获,欢迎点赞、在看、转发三连,我们下篇见。
既然看到这里了,如果觉得有用,随手点个赞、在看、转发三连吧。
THANKS FOR READING