Ubuntu 26.04 grep 命令超全实战教程:日志排查、文本检索、正则过滤

玩 Linux 离不开文本检索,而 grep 就是系统自带、最实用的终端搜索工具。全称 Global Regular Expression Print,简单理解就是:从文件或命令输出中,精准筛选出你想要的内容

Ubuntu 26.04 默认自带 grep,开箱即用。不管是排查系统报错、分析登录日志、查找配置参数,还是过滤端口、进程信息,grep 都是日常运维最高频、最刚需的命令。

这篇文章我结合 Ubuntu 26.04 真实使用场景,整理一套新手也能直接抄走即用的 grep 实战用法,从基础搜索到正则、递归检索、日志排错全覆盖。

一、grep 基础语法(最简单记忆方式)

grep 的结构非常固定,记住这一行就够用:

grep [参数] 搜索关键词 目标文件

如果不指定文件,可以搭配管道 | 过滤其他命令的输出,这也是工作中最常用的方式。

二、最常用基础用法(日常 90% 场景够用)

1. 基础搜索:查找包含指定关键词的行

最经典场景:查看服务器 SSH 成功登录记录:

grep 'Accepted' /var/log/auth.log

系统会直接输出所有登录成功的日志,包含时间、IP、端口、登录方式。

2. 关键词高亮显示

远程 SSH 连接时,默认不会标红关键词,加上参数强制高亮,阅读更清晰:

grep --color=always 'Accepted' /var/log/auth.log

想要永久高亮,可以设置别名:

echo "alias grep='grep --color=always'" >> ~/.bashrc
source ~/.bashrc

3. 忽略大小写搜索 -i

日志、用户名大小写不固定时,-i 是必备参数,不区分大小写匹配:

grep -i alexander /etc/passwd

4. 显示行号 -n

修改配置文件时,用来定位参数所在行数,方便后续编辑:

grep -in 'ssh' /etc/ssh/sshd_config

5. 精准匹配完整单词 -w

默认 grep 会匹配片段单词,比如搜索cat 会顺带匹配 catalogue。加上 -w 只匹配独立完整单词,避免误匹配:

grep -iw 'cat' test.txt

6. 统计匹配行数 -c

快速统计登录次数、报错次数,不用手动数:

grep -c 'Accepted' /var/log/auth.log

7. 反向过滤 -v(非常实用)

反向匹配,只显示不包含关键词的行。常用于过滤注释、空行、无用日志:

# 过滤掉所有注释行
grep -v '^#' /etc/ssh/sshd_config

# 只查看不含报错的正常日志
grep -iv 'error' /var/log/syslog

三、多关键词 + 正则进阶搜索

1. 同时匹配多个关键词 -E

使用 -E 开启扩展正则,用 | 代表“或”,同时匹配多个内容:

grep -E 'Accepted|Failed' /var/log/auth.log

2. 精准匹配行首、行尾

正则两个最常用锚点:

^ 代表行开头,$ 代表行结尾

# 匹配以 alexander 开头的用户
grep '^alexander' /etc/passwd

# 匹配以 bash 结尾的可登录用户
grep 'bash$' /etc/passwd

四、递归全盘搜索:批量查找文件内容

想要在某个文件夹下,批量查找所有包含关键词的文件,用 -r递归搜索。排查配置、代码、系统文件超级方便。

1. 递归搜索目录

grep -r "password" /etc/

2. 搜索时排除指定目录

避免输出大量无用文件,提升搜索效率:

grep -r "password" /etc --exclude-dir={apparmor.d,pam.d}

3. 只显示匹配的文件名 -l

不需要看内容,只想知道哪些文件包含关键词:

grep -rl "debug" /var/log

五、搭配管道过滤命令输出(最高频工作场景)

grep 最香的用法,就是配合管道过滤其他命令结果,日常排查几乎离不开。

查看指定端口服务:

ss -pnltu | grep -i cups

筛选指定用户登录记录:

grep 'Accepted' /var/log/auth.log | grep cherry

实时监控系统报错:

tail -f /var/log/syslog | grep -i error

六、日志排错神器:查看上下文日志

遇到报错,只看报错行不够,需要看前后日志分析原因:

  • -A n:显示匹配行后 n 行
  • -B n:显示匹配行前 n 行
  • -C n:显示前后各 n 行
grep -C 3 "Failed password" /var/log/auth.log

七、grep 常用参数速查表(收藏即可)

不用死记,工作直接对照:

  • -i:忽略大小写
  • -n:显示行号
  • -w:精准匹配完整单词
  • -c:统计匹配行数
  • -v:反向过滤,排除匹配内容
  • -r:递归搜索目录
  • -E:多关键词、正则或匹配
  • -l:只输出匹配文件名
  • -C/A/B:查看日志上下文

八、Ubuntu 26.04 实战小案例

1. 查看服务器暴力破解 SSH 记录

grep过滤日志查看服务器暴力破解 SSH 记录
grep -C 2 "Failed password" /var/log/auth.log

2. 过滤干净配置文件(无注释无空行)

grep -v '^#' /etc/ssh/sshd_config | grep -v '^$'

总结

grep 看似简单,却是 Linux 运维、开发调试的核心工具。在 Ubuntu 26.04 中,掌握 大小写忽略、行号、反向过滤、递归搜索、正则多匹配、日志上下文 这几套用法,基本可以搞定所有文本检索、日志排查场景。

日常不用记复杂正则,优先熟练本文的高频命令,足够满足 99% 的个人和服务器运维需求。

本文首发于 58Linux技术博客,专注Ubuntu桌面使用、Linux服务器运维与网站搭建实战。

发表评论

粤ICP备10052831号 | © 2026 58Linux 技术笔记. All Rights Reserved. | 联系我们 | 关于本站
本站内容开放共享,仅供学习交流 | 专注 Ubuntu & Linux 实战教程
Built with GeneratePress