Linux中grep颜色高亮需启用--color选项,默认红色;支持auto/always/never三模式控制触发时机;可通过GREP_COLOR自定义颜色,推荐alias grep='grep --color=auto'实现默认高亮。

Linux 中用 grep 实现颜色高亮非常简单,核心是启用 --color 选项,它会让匹配到的文本以醒目的颜色(默认红色)显示,大幅提升可读性。
基础用法:开启默认高亮
只需加上 --color=always 或简写为 --color(多数系统中 --color 默认等价于 always):
-
grep --color "error" /var/log/syslog—— 在日志中查找 "error",匹配部分红底白字或高亮红色 -
ps aux | grep --color nginx—— 管道配合使用,高亮进程名中的关键词 -
grep -n --color "TODO" *.c—— 同时显示行号和高亮,适合代码审查
控制颜色行为:auto / always / never
--color 接受三个值,影响何时启用颜色:
-
--color=auto:最常用,默认行为;仅当输出到终端(非重定向、非管道下游)时才上色 -
--color=always:强制始终高亮(即使重定向到文件或管道给其他命令,也保留 ANSI 转义码) -
--color=never:完全禁用颜色,适合脚本处理或避免干扰解析
例如:grep --color=auto "fail" *.log 安全又直观;而 grep --color=always "warn" app.log | head -5 可确保前五行仍带颜色(但注意下游命令是否支持 ANSI)。
自定义高亮颜色:修改 GREP_COLOR
系统默认用红色(1;31),可通过环境变量 GREP_COLOR 改变:
- 临时生效:
GREP_COLOR='1;32' grep --color "test" file.txt(绿色高亮) - 永久生效:在
~/.bashrc或~/.zshrc中添加:
export GREP_COLOR='1;36'(亮青色)或 export GREP_COLOR='4;33'(黄色下划线)
其中 1 表示加粗(高亮),32 是绿色前景色;组合如 4;33 表示下划线 + 黄色文字。背景色可用 40–47,例如 1;41 是白字红底。
让所有 grep 默认带颜色(推荐设置)
避免每次敲 --color,可设别名或环境变量:
- 加别名(推荐):
alias grep='grep --color=auto',写入 shell 配置后立即生效 - 或设全局选项:
export GREP_OPTIONS='--color=auto'(注意:较新版本 grep 已弃用 GREP_OPTIONS,别名更可靠)
设置后,哪怕只输 grep "xyz" file,也能自动高亮,且不影响脚本兼容性。











