Wenn ich etwas greife, ist das Ergebnis immer rot. Ich weiß, dass der Befehl grep --color
das Ergebnis in Farbe ausgibt, die standardmäßig rot ist. Kann ich die Farbe ändern?
Wenn ich etwas greife, ist das Ergebnis immer rot. Ich weiß, dass der Befehl grep --color
das Ergebnis in Farbe ausgibt, die standardmäßig rot ist. Kann ich die Farbe ändern?
Antworten:
Sie können die Hervorhebungsfarbe ändern, grep
indem Sie eine Umgebungsvariable verwenden GREP_COLORS
, die Sie folgendermaßen festlegen können:
export GREP_COLORS='ms=01;31'
Die Zahlen können Text formatieren, die Vordergrundfarbe oder die Hintergrundfarbe ändern oder Schriftarten ändern.
Die Startbedingungen für alle GREP_COLORS
Optionen sind der Standardtextstil, die Standardschriftart und die Standardfarben des Terminals. Wenn Sie eine dieser Optionen zurücksetzen, werden die Standardeinstellungen des Terminals und nicht die Standardeinstellungen des Terminals grep
wiederhergestellt.
ᴀ;ʙ;…
- ;
trennt numerische Optionen , die Sie (zB fett , gelb auf schwarzem Text kombiniert Optionen kombinieren möchten 1
, 33
und 40
in 1;33;40
)+ᴇꜰꜰᴇᴄᴛ
- ᴇꜰꜰᴇᴄᴛ wird aktiviert, wenn Sie diese numerische Option verwenden-ᴇꜰꜰᴇᴄᴛ
- ᴇꜰꜰᴇᴄᴛ wird deaktiviert , wenn Sie diese numerische Option verwendencolor
, green
, cyan
, Und grey
- in der „Text - Styling“ Abschnitt, beziehen sich diese auf die Vordergrundfarbecolors
- Im Abschnitt "Textstil" bezieht sich dies sowohl auf die Vordergrundfarbe als auch auf die Hintergrundfarbethis color
- im Abschnitt "Vordergrundfarben" bezieht sich dies auf die Vordergrundfarbe; Im Abschnitt "Hintergrundfarben" bezieht sich dies auf die HintergrundfarbeEine leere Zeichenfolge oder 0
setzt den gesamten Textstil zurück und setzt beide Farben auf die Standardeinstellungen zurück , setzt jedoch die Schriftart nicht auf die Standardeinstellungen zurück.
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ 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!) │
└────────────┴────────────────────────────────────────────────────────────────────┘
Beachten Sie, dass das Nicht-GUI-TTY keine helleren Hintergrundfarbserien bietet.
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ 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!) │
└────────────┴────────────────────────────────────────────────────────────────────┘
Das obige Diagramm zeigt einen Screenshot des Inhalts, der in "ANSI-Escape-Code, 8-Bit-Farben" auf Wikipedia veröffentlicht wurde und von CMG Lee et al. am 24. Februar 2016 und später und von den Autoren unter der CC BY-SA 3.0-Urheberrechtslizenz und der GFDL-Urheberrechtslizenz lizenziert .
Farben aus der obigen 256-Farben-Tabelle können wie folgt verwendet werden:
38;5;ɴ
- Ersetzen Sie ɴ durch den Wert einer bestimmten Farbe in der obigen Tabelle, um die Vordergrundfarbe auf die Farbe zu ändern, die dem Terminal am nächsten kommt48;5;ɴ
- Ersetzen Sie ɴ durch den Wert einer bestimmten Farbe in der obigen Tabelle, um die Hintergrundfarbe auf die Farbe zu ändern, die dem Terminal am nächsten kommtZum Beispiel 38;5;214;48;5;30
wird der Vordergrund auf Farbe 214
und der Hintergrund auf Farbe gesetzt 30
, was auf Terminals, die dies unterstützen, zu einem Orange-on-Teal-Ergebnis führt.
Beachten Sie, dass nicht alle Terminals alle 256 Farben unterstützen. Beachten Sie daher, dass die ausgewählte Farbe möglicherweise nicht verwendet wird. Es wird nur die unterstützte Farbe verwendet, die der ausgewählten am nächsten kommt.
Beispielsweise unterstützt das Nicht-GUI-TTY nur die 16 Grundfarben für den Vordergrund und die 8 Grundfarben für den Hintergrund, sodass die nächsten verwendeten Farben möglicherweise nicht Ihren Erwartungen entsprechen. Als Beispiel wird die Orange-auf-Blaugrün-Auswahl oben ( 38;5;214;48;5;30
) im Nicht-GUI-TTY als Gelb-auf-Schwarz angezeigt, da dies die am nächsten unterstützten Farben sind.
10
ist die Standardschriftart. 11
durch 20
sind potenzielle alternative Schriftarten ( 20
bedeutet normalerweise eine 𝕱𝖗𝖆𝖐𝖙𝖚𝖗 Schrift in den seltenen Terminals, die dies unterstützen). Nur 10
und 12
scheinen standardmäßig in der Nicht-GUI-TTY zu existieren, und keine existieren in GNOME-Terminal oder xterm
.
grep
Schriftarten werden vor dem Beenden nicht ordnungsgemäß zurückgeschaltet. Führen reset
Sie den Befehl aus, wenn Sie nach der grep
Rückkehr zur Shell in einer unerwünschten Schriftart stecken bleiben .
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal ┃ xterm ┃ non-GUI TTY ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│ 10 │ «no effect» │ «no effect» │ «reset font» │
│ 11 │ «no effect» │ «no effect» │ -messed up font │
│ 12 │ «no effect» │ «no effect» │ +messed up font │
└─────┴─────────────────────────┴─────────────────────────┴───────────────────────┘
Quellen im Abschnitt "Numerische Optionen":
● "ANSI-Escape-Code, SGR-Parameter (Select Graphic Rendition)" in Wikipedia
● Experimentelle Überprüfung auf GNOME-Terminalxterm
und TTY ohne GUI-Modus unter Ubuntu 16.04
Der Standardwert von GREP_COLORS
ist'ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'
Die Bedeutung jedes akzeptierten Elements GREP_COLORS
kann auf der Handbuchseite von GNU.org überprüft werden .
Zum Abschluss und wie von @damadam hervorgehoben, müssen Sie das export
zu Ihrem hinzufügen .bashrc
, um die Änderungen zu speichern.
Verbunden:
38;5;ɴ
wobei ɴ durch einen der Farbwerte ersetzt werden soll. Verwenden Sie 48;5;ɴ
für den Hintergrund die gleiche Methode. Zum Beispiel 38;5;214;48;5;30
sollten Sie Orange auf Petrol geben. Andernfalls unterstützt Ihr Terminal möglicherweise keine 256 Farben. Beispielsweise unterstützt das Nicht-GUI-TTY nur 16 Farben für den Vordergrund und 8 für den Hintergrund und wählt die Vordergrund- und Hintergrundfarben aus den 16 und 8 aus, die Orange auf Türkis am nächsten kommen, Gelb auf Schwarz.
Dazu die Antwort von @M. Becerra, vergessen Sie nicht , diese hinzufügen export
innen ~/.bashrc
. Du kannst es so machen:
nano ~/.bashrc
und tippe jetzt dein export
:
export GREP_COLORS='ms=01;33:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'
Dies setzt die grep
Ergebnisse auf gelb und ich muss das export
Terminal oder den Computer nach dem Neustart nicht wiederholen .
<<<hello GREP_COLORS='ms=5;104' grep '.*'
einmal! Eine Liste der Codes finden Sie zB hier (Abschnitt 6).