Kiedy coś grepuję, wynik jest zawsze czerwony. Wiem, że polecenie grep --colordrukuje wynik w kolorze, który domyślnie jest czerwony. Czy mogę zmienić kolor?
Kiedy coś grepuję, wynik jest zawsze czerwony. Wiem, że polecenie grep --colordrukuje wynik w kolorze, który domyślnie jest czerwony. Czy mogę zmienić kolor?
Odpowiedzi:
Możesz zmienić kolor podświetlenia grepza pomocą zmiennej środowiskowej GREP_COLORS, którą możesz ustawić w następujący sposób:
export GREP_COLORS='ms=01;31'
Liczby mogą stylizować tekst, zmieniać kolor pierwszego planu lub kolor tła lub zmieniać czcionki.
Warunki początkowe dla wszystkich GREP_COLORSopcji to domyślny styl, czcionka i kolory terminala. Zresetowanie któregokolwiek z nich spowoduje przywrócenie ustawień domyślnych terminala, a nie ustawień domyślnych terminala grep.
ᴀ;ʙ;…- ;oddziela opcje numerycznych, które chcesz połączyć (na przykład pogrubienie żółty na czarny łączy tekstowych opcje 1, 33i 40do 1;33;40)+ᴇꜰꜰᴇᴄᴛ- ᴇꜰꜰᴇᴄᴛ włącza się, gdy używasz tej opcji numerycznej-ᴇꜰꜰᴇᴄᴛ- ᴇꜰꜰᴇᴄᴛ wyłącza się, gdy używasz tej opcji numerycznejcolor, green, cyan, I grey- w sekcji „stylizacji tekstu”, odnoszą się do koloru planiecolors - w sekcji „Styl tekstowy” odnosi się to zarówno do koloru pierwszego planu, jak i koloru tłathis color- w sekcji „Kolory pierwszego planu” odnosi się do koloru pierwszego planu; w sekcji „Kolory tła” odnosi się do koloru tłaPusty ciąg znaków lub 0resetuje wszystkie style tekstu i resetuje oba kolory do wartości domyślnych, ale nie resetuje czcionki do wartości domyślnych.
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ 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!) │
└────────────┴────────────────────────────────────────────────────────────────────┘
Pamiętaj, że TTY bez GUI nie zapewnia jaśniejszej serii kolorów tła.
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ 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!) │
└────────────┴────────────────────────────────────────────────────────────────────┘
Powyższy wykres to zrzut ekranu treści opublikowanej w „Kodzie ucieczkowym ANSI, kolory 8-bitowe” na Wikipedii , autor : CMG Lee i in. w dniu 24 lutego 2016 r. i później oraz na licencji autorów na podstawie zarówno licencji CC CC-SA-SA 3.0, jak i licencji GFDL .
Kolory z powyższej tabeli 256 kolorów można użyć w następujący sposób:
38;5;ɴ- zamień ɴ na wartość określonego koloru z powyższej tabeli, aby zmienić kolor pierwszego planu na najbliższy kolor obsługiwany przez terminal48;5;ɴ- zamień ɴ na wartość określonego koloru z powyższej tabeli, aby zmienić kolor tła na najbliższy kolor obsługiwany przez terminalNa przykład 38;5;214;48;5;30ustawi kolor pierwszego planu na kolor, 214a tło na kolor 30, dając pomarańczowo-turkusowy wynik na terminalach, które go obsługują.
Pamiętaj, że nie wszystkie terminale obsługują wszystkie 256 kolorów, dlatego należy pamiętać, że wybrany kolor może nie zostać użyty. Zostanie użyty tylko obsługiwany kolor najbliższy wybranemu.
Na przykład TTY bez GUI obsługuje tylko podstawowe 16 kolorów dla pierwszego planu i podstawowe 8 kolorów dla tła, więc najbliższe kolory, które zostaną użyte, mogą nie być zgodne z oczekiwaniami. Na przykład zaznaczenie pomarańczowo-tealowe powyżej ( 38;5;214;48;5;30) pokazuje się jako żółto-czarne w TTY bez GUI, ponieważ są to najbliższe obsługiwane kolory.
10jest domyślną czcionką. 11through 20to potencjalne czcionki alternatywne ( 20zwykle oznacza czcionkę 𝕱𝖗𝖆𝖐𝖙𝖚𝖗 w rzadkich terminalach, które ją obsługują). Jedynie 10i 12wydaje się, że istnieje domyślnie w TTY bez GUI, i żaden nie istnieje w GNOME Terminal lub xterm.
grepnie przełącza poprawnie czcionek z powrotem przed wyjściem, więc uruchom, resetjeśli utkniesz w niechcianej czcionce po greppowrocie do powłoki.
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ 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 │
└─────┴─────────────────────────┴─────────────────────────┴───────────────────────┘
Źródła sekcji „Opcje numeryczne”:
● „Kod ucieczkowy ANSI, parametry SGR (Select Graphic Rendition)” na Wikipedii
● Weryfikacja eksperymentalna na terminalu GNOMExtermi TTY w trybie innym niż GUI na Ubuntu 16.04
Wartość domyślna GREP_COLORSto'ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'
Znaczenie każdego zaakceptowanego elementu GREP_COLORSmożna sprawdzić na stronie podręcznika GNU.org .
Aby zakończyć, jak wskazał @damadam, musisz dodać exportdo swojego .bashrc, aby zapisać zmiany.
Związane z:
38;5;ɴ, gdzie ɴ należy zastąpić jedną z wartości kolorów. W tle używaj 48;5;ɴw ten sam sposób. Na przykład 38;5;214;48;5;30powinien dać ci pomarańczę na turkusowym. Jeśli nie, terminal może nie obsługiwać 256 kolorów. Na przykład TTY bez GUI obsługuje tylko 16 kolorów dla pierwszego planu i 8 dla tła i wybierze kolory pierwszego planu i tła spośród tych 16 i 8 najbliższych pomarańczowi na turkusowym kolorze, który jest żółty na czarnym tle.
Oprócz odpowiedzi z @M. Becerra, nie zapomnij dodać tego do exportśrodka ~/.bashrc. Możesz to zrobić w ten sposób:
nano ~/.bashrc
i wpisz teraz swoje export:
export GREP_COLORS='ms=01;33:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'
Powoduje grepto ustawienie żółtych wyników i nie muszę powtarzać exportterminala po ponownym uruchomieniu ani komputera.
<<<hello GREP_COLORS='ms=5;104' grep '.*'raz! Listę kodów można znaleźć np. Tutaj (sekcja 6).