当我 grep 某些内容时,结果总是红色的。我知道该命令grep --color
会以彩色打印结果,默认情况下为红色。我可以更改颜色吗?
答案1
grep
您可以使用环境变量来更改的突出显示颜色GREP_COLORS
,您可以像这样设置:
export GREP_COLORS='ms=01;31'
数字选项
数字可以设置文本样式、改变前景色或背景色、或者改变字体。
所有选项的起始条件GREP_COLORS
都是终端的默认文本样式、字体和颜色。重置其中任何一个都会恢复为终端的默认值,而不是 的任何grep
默认值。
传奇
ᴀ;ʙ;…
—;
分隔要组合的数字选项(例如,黑底黄字粗体文本将选项1
、33
和40
组合成1;33;40
)+ᴇꜰꜰᴇᴄᴛ
—ᴇꜰꜰᴇᴄᴛ当您使用该数字选项时开启-ᴇꜰꜰᴇᴄᴛ
—ᴇꜰꜰᴇᴄᴛ当您使用该数字选项时将被关闭color
、、、和— 在“green
文本样式”部分中,这些指的是前景色cyan
grey
colors
— 在“文本样式”部分中,这指的是前景色和背景色this color
— 在“前景色”部分中,这指的是前景色;在“背景色”部分中,这指的是背景色
文本样式
空字符串或0
重置所有文本样式并将两种颜色重置为默认值,但才不是将字体重置为默认字体。
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal ┃ xterm ┃ non-GUI TTY ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│ │ «reset style+colors» │ «reset style+colors» │ «reset style+colors» │
│ 0 │ «reset style+colors» │ «reset style+colors» │ «reset style+colors» │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│ 1 │ +bold, +brighter color │ +bold, +brighter color │ +brighter color, │
│ │ │ │ -forced grey │
│ 2 │ +fainter color │ +fainter color │ +forced grey │
│ 3 │ +italic │ +italic │ +forced green │
│ │ │ │ ● overrides 2 and 4 │
│ 4 │ +underline │ +underline │ +forced cyan │
│ │ │ │ ● overrides 2 │
│ 5 │ «no effect» │ +blink │ «no effect» │
│ 7 │ +invert colors │ +invert colors │ +invert colors │
│ 8 │ +invisible │ +invisible │ «no effect» │
│ │ │ ● underline appears │ │
│ 9 │ +strikethrough │ +strikethrough │ «no effect» │
├─────┼─────────────────────────┤ ├───────────────────────┤
│ 21 │ -bold, -brighter color, │ +double underline │ -brighter color, │
│ │ -fainter color ├─────────────────────────┤ -forced grey │
│ 22 │ -bold, -brighter color, │ -bold, -brighter color, │ -brighter color, │
│ │ -fainter color │ -fainter color │ -forced grey │
│ 23 │ -italic │ -italic │ -forced green │
│ 24 │ -underline │ -underline, │ -forced cyan │
│ │ │ -double underline │ │
│ 25 │ «no effect» │ -blink │ «no effect» │
│ 27 │ -invert colors │ -invert colors │ -invert colors │
│ 28 │ -invisible │ -invisible │ «no effect» │
│ 29 │ -strikethrough │ -strikethrough │ «no effect» │
└─────┴─────────────────────────┴─────────────────────────┴───────────────────────┘
前景色
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal ┃ xterm ┃ non-GUI TTY ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│ 39 │ «reset this color» │ «reset this color» │ «reset this color» │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│ 30 │ very dark grey │ black │ black │
│ 31 │ dull red │ red │ light red │
│ 32 │ dull green │ light green │ light green │
│ 33 │ dull yellow │ yellow │ yellow │
│ 34 │ greyish blue │ dark blue │ sky blue │
│ 35 │ dull purple │ purple │ purple │
│ 36 │ teal │ cyan │ cyan │
│ 37 │ light grey │ light grey │ light grey │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│ 90 │ dark grey │ dull grey │ dull grey │
│ 91 │ red │ bright red │ bright red │
│ 92 │ lime green │ bright green │ bright green │
│ 93 │ yellow │ bright yellow │ pure yellow │
│ 94 │ light greyish blue │ dull blue │ deep blue │
│ 95 │ light purple │ magenta │ magenta │
│ 96 │ cyan │ bright cyan │ bright cyan │
│ 97 │ off white │ white │ white │
├─────┴──────┬──────────────────┴─────────────────────────┴───────────────────────┤
│ 38;2;ʀ;ɢ;ʙ │ replace ʀ, ɢ, and ʙ with RGB values from 0 to 255 │
│ │ for closest supported color (non-GUI TTY has only 16 colors!) │
│ 38;5;ɴ │ replace ɴ with value from 256-color chart below │
│ │ for closest supported color (non-GUI TTY has only 16 colors!) │
└────────────┴────────────────────────────────────────────────────────────────────┘
背景颜色
请注意,非 GUI TTY 不提供更亮的背景颜色系列。
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal ┃ xterm ┃ non-GUI TTY ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│ 49 │ «reset this color» │ «reset this color» │ «reset this color» │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│ 40 │ very dark grey │ black │ black │
│ 41 │ dull red │ red │ light red │
│ 42 │ dull green │ light green │ light green │
│ 43 │ dull yellow │ yellow │ yellow │
│ 44 │ greyish blue │ dark blue │ sky blue │
│ 45 │ dull purple │ purple │ purple │
│ 46 │ teal │ cyan │ cyan │
│ 47 │ light grey │ light grey │ light grey │
├─────┼─────────────────────────┼─────────────────────────┼╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶┤
│ 100 │ dark grey │ dull grey │ black │
│ 101 │ red │ bright red │ light red │
│ 102 │ lime green │ bright green │ light green │
│ 103 │ yellow │ bright yellow │ yellow │
│ 104 │ light greyish blue │ dull blue │ sky blue │
│ 105 │ light purple │ magenta │ purple │
│ 106 │ cyan │ bright cyan │ cyan │
│ 107 │ off white │ white │ light grey │
├─────┴──────┬──────────────────┴─────────────────────────┴───────────────────────┤
│ 48;2;ʀ;ɢ;ʙ │ replace ʀ, ɢ, and ʙ with RGB values from 0 to 255 │
│ │ for closest supported color (non-GUI TTY has only 8 colors!) │
│ 48;5;ɴ │ replace ɴ with value from 256-color chart below │
│ │ for closest supported color (non-GUI TTY has only 8 colors!) │
└────────────┴────────────────────────────────────────────────────────────────────┘
256 色图表
上图是发布于维基百科上的“ANSI 转义代码,8 位颜色”,作者由 CMG Lee 等人于 2016 年 2 月 24 日及之后发布, 和经作者授权两者之下CC BY-SA 3.0 版权许可和GFDL 版权许可。
上面 256 色图表中的颜色可以按如下方式使用:
38;5;ɴ
— 将 ɴ 替换为上表中特定颜色的值,以更改前景色与终端支持的最接近的颜色48;5;ɴ
— 将 ɴ 替换为上表中特定颜色的值,以更改背景颜色与终端支持的最接近的颜色
例如,38;5;214;48;5;30
将前景设置为颜色214
,将背景设置为颜色30
,在支持它的终端上产生橙色和青色的效果。
请注意,并非所有终端都支持全部 256 种颜色,因此请务必注意,所选颜色可能不会被使用。只有最接近所选颜色的支持颜色才会被使用。
例如,非 GUI TTY 仅支持基本的 16 种前景颜色和基本的 8 种背景颜色,因此最终使用的最接近的颜色可能不是您所期望的。例如,上图 () 中的橙色配青色选项38;5;214;48;5;30
在非 GUI TTY 中显示为黄色配黑色,因为这些是最接近的支持颜色。
字体
10
是默认字体。11
到20
是潜在的替代字体(20
通常意味着A
答案2
除了@M. Becerra 的回答之外,别忘了export
在里面添加这个~/.bashrc
。你可以这样做:
nano ~/.bashrc
然后输入你的export
:
export GREP_COLORS='ms=01;33:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'
这会将grep
结果设置为黄色,并且我不需要在export
重启终端或计算机后重做。
答案3
选择图形呈现 (SGR) 命令由终端或终端仿真器解释。M. Becerra 发起的回答(上文)涉及 SGR 值。
环境变量GREP_COLORS
就像LS_COLORS
除了......
代码 | 解释 |
---|---|
mt |
ms 和 的SGR mc 。 |
ms |
针对与匹配相符的非匹配上下文的 SGR。 |
mc |
与匹配一致的非匹配上下文的SGR(-v )。 |
sl |
整个选定线路的 SGR。 |
cx |
整个上下文行的 SGR。 |
rv |
反转sl 和 的布尔值cx 。 |
fn |
文件名的 SGR ( -H )。 |
ln |
行号的 SGR(-n )。 |
bn |
SGR 用于字节偏移。 |
se |
行和上下文字段之间的分隔符(: 和- )的 SGR。 |
ne |
布尔值以防止清除到 eol。 |
注意:省略布尔值会将值设置为 false。
export GREP_COLORS='ms=01;33:mc=01;31:sl=:cx=:fn=1;96:ln=1;96:bn=1;96:se=1;97'
damadam 的黄色很好,但我需要能够在黑色背景下看到文件名。
该信息实际上在 grep 手册页中(@see man grep)。