Коли я щось клапну, результат завжди червоного кольору. Я знаю, що команда grep --color
друкує результат у кольорі, який за замовчуванням є червоним. Чи можна змінити колір?
Коли я щось клапну, результат завжди червоного кольору. Я знаю, що команда grep --color
друкує результат у кольорі, який за замовчуванням є червоним. Чи можна змінити колір?
Відповіді:
Ви можете змінити колір виділення 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!) │
└────────────┴────────────────────────────────────────────────────────────────────┘
Наведена вище діаграма - це скріншот вмісту, опублікованого у "Енсі-коді пошуку, 8-бітні кольори" у Вікіпедії , автор CMG Lee та ін. 24 лютого 2016 р. і пізніше та отримано ліцензію авторів як під авторською ліцензією 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
зазвичай означає шрифт 𝕱𝖗𝖆𝖐𝖙𝖚𝖗 у рідкісних терміналах, які підтримують його). Тільки 10
і, 12
здається, існують за замовчуванням у не-GUI TTY, і жоден не існує в терміналі GNOME або xterm
.
grep
не правильно перемикає шрифти назад перед виходом, тому запустіть, reset
якщо ви застрягли в небажаному шрифті після grep
повернення до оболонки.
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ 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 │
└─────┴─────────────────────────┴─────────────────────────┴───────────────────────┘
Джерела розділу "Числові параметри":
● "Код аварійного відбору ANSI, параметри SGR (Виберіть графічне відтворення)" у Вікіпедії
● Експериментальна перевірка на терміналі GNOMExterm
та TTY в режимі не GUI в Ubuntu 16.04
Значення за замовчуванням GREP_COLORS
-'ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'
Значення кожного прийнятого елемента GREP_COLORS
можна перевірити на сторінці керівництва GNU.org .
Для завершення, і як вказував @damadam, вам потрібно додати його export
до свого .bashrc
, щоб зберегти зміни.
Пов'язані:
38;5;ɴ
, де ɴ слід замінити одним із значень кольору. Для фону використовуйте 48;5;ɴ
так само. Наприклад, 38;5;214;48;5;30
повинні дати вам апельсин на чирок. Якщо цього немає, ваш термінал може не підтримувати 256 кольорів. Наприклад, не-GUI TTY підтримує лише 16 кольорів для переднього плану та 8 для тла, а також вибере кольори переднього плану та фонові кольори з тих 16 та 8, які є найближчими до оранжевого на шкірці, який є жовтим на чорному.
Окрім відповіді від @M. Бесерра, не забудьте додати це 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
термінал після перезавантаження або комп'ютер.
<<<hello GREP_COLORS='ms=5;104' grep '.*'
один раз! Перелік кодів можна знайти, наприклад, тут (розділ 6).