数字选项

数字选项

当我 grep 某些内容时,结果总是红色的。我知道该命令grep --color会以彩色打印结果,默认情况下为红色。我可以更改颜色吗?

答案1

grep您可以使用环境变量来更改的突出显示颜色GREP_COLORS,您可以像这样设置:

export GREP_COLORS='ms=01;31'

数字选项

数字可以设置文本样式、改变前景色或背景色、或者改变字体。

所有选项的起始条件GREP_COLORS都是终端的默认文本样式、字体和颜色。重置其中任何一个都会恢复为终端的默认值,而不是 的任何grep默认值。

传奇

  • ;ʙ;;分隔要组合的数字选项(例如,黑底黄字粗体文本将选项13340组合成1;33;40
  • +ᴇꜰꜰᴇᴄᴛᴇꜰꜰᴇᴄᴛ当您使用该数字选项时开启
  • -ᴇꜰꜰᴇᴄᴛᴇꜰꜰᴇᴄᴛ当您使用该数字选项时将被关闭
  • color、、、和— 在“green文本样式”部分中,这些指的是前景色cyangrey
  • 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 色图表

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是默认字体。1120是潜在的替代字体(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)。

相关内容