grep命令与正则表达式应用

grep 是 Linux 运维工作中最常用的命令之一,在实际运维场景中 grep 应用广泛,涵盖日志分析、系统监控、故障排查等多个方面。


一、基本语法

grep [选项] 模式 [文件...]

二、常用选项

选项说明
-i忽略大小写
-v反向匹配,显示不包含模式的行
-n显示匹配行的行号
-c只显示匹配行的计数
-l只显示包含匹配项的文件名
-q静默输出
-o仅显示匹配的部分
-r-R递归搜索目录
-E使用扩展正则表达式 (等同于egrep)
-F不使用正则表达式,按字面意思匹配 (等同于fgrep)
-A num显示匹配行及其后num行
-B num显示匹配行及其前num行
-C num显示匹配行及其前后各num行

三、日志分析与监控

1、实时监控日志文件

# 实时监控 Nginx 访问日志中的 500 错误
[root@lichu ~]# tail -f /var/log/nginx/access.log | grep " 500 "

2、分析时间段内的日志

# 分析上午9点的日志
[root@lichu ~]# grep "14/Aug/2025:09" /var/log/nginx/access.log

四、系统监控与检查

1、检查网络连接

# 统计各IP的连接数
[root@lichu ~]# netstat -ntu |awk '/^tcp|^udp)/ {print $5}' |cut -d: -f1 |sort |uniq -c |sort -nr

2、检查磁盘使用

# 检查磁盘空间不足的分区
[root@lichu ~]# df -h | grep -E "[8-9][0-9]%|100%"

五、配置文件检查

1、检查无效配置

# 检查Nginx无效配置(注释和空行除外)
[root@lichu ~]# grep -vE "^#|^$" /etc/nginx/nginx.conf
[root@lichu ~]# grep -vE "^.*#|^$" /etc/nginx/nginx.conf

2、检查服务配置

# 检查所有启用的服务
[root@lichu ~]# systemctl list-unit-files | grep enabled

六、综合案例

1、分析网站访问情况

# 统计访问量最高的10个IP
[root@lichu ~]# grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -10
    106 139.0.0.0
     62 93.123.109.245
     17 91.234.6.206
     17 149.102.254.28
     15 91.224.92.17
     12 125.0.0.0
     11 170.64.210.68
      9 45.156.128.149
      9 130.0.0.0
      7 45.156.128.148

# 统计访问量最高的10个URL
[root@lichu ~]# awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -10
    136 /
     53 /wp-admin/setup-config.php
     53 /wordpress/wp-admin/setup-config.php
     23 /favicon.ico
     23 400
      6 /.env
      4 /.git/config
      4 /cmd_sco
      2 /shell?cd+/tmp;rm+-rf+*;wget+
      2 mstshash=Administr"

2、查找系统异常

# 查找系统关键日志中的异常(结合多个日志文件)
[root@lichu ~]# grep -i -r "error\|fail\|critical\|exception\|denied\|refused\|timeout" /var/log/{messages,syslog,dmesg,secure}

3、检查SSH登录尝试

# 检查失败的SSH登录尝试
grep "Failed password" /var/log/secure| awk '{print $11}' | sort | uniq -c | sort -nr

# 检查成功登录的IP
grep "Accepted password" /var/log/secure | awk '{print $11}' | sort | uniq


💡 感谢你读到这里!这篇《grep命令与正则表达式应用》是我的用心分享,如果你觉得有收获,不妨:


点个「赞」或「分享」,让更多同路人相遇


🔍 关注我的博客,持续接收技术/成长类干货


💬 文末留言聊聊你的想法,或遇到的同类问题~


🔒 本文为原创,转载请保留原文链接(https://www.lichu228.top/archives/411)与作者信息,感谢尊重与支持!


🌐 想找更多优质内容?点击进入博客主页探索吧~


暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇