Как изменить цвет в терминале Linux
Большую часть задач в Ubuntu удобнее всего выполнять через терминал. Это относится к управлению файловой системой, различным настройками, установке приложений и т. д. Поэтому важно, чтобы текст в нем был комфортным для чтения и не нагружал глаза, например, из-за цветов текста и фона. Тем более, оформление достаточно легко поменять.
В рамках данной статьи будет рассказано как изменить цвет в терминале Linux на примере Ubuntu и Gnome. А еще вы узнаете, как можно создать несколько профилей и быстро переключаться между ними, например, для дневного и ночного времени суток.
Как изменить цвет в терминале Linux
Для начала откройте окно терминала, одновременно нажав на клавиатуре Ctrl + Shift + T. Откройте контекстное меню с помощью соответствующей иконки, расположенной рядом с поиском, а затем кликните по пункту Параметры.
Теперь посетите вкладку Цвета. Изначально в ней включен режим Использовать цвета из системной темы, который автоматически выбирает подходящее оформление. Отключите его, чтобы получить полный доступ к настройкам.
Чуть ниже расположен пункт Встроенные схемы, где можно выбрать одно из нескольких готовых оформлений терминала. А дальше уже идет ручной выбор цветов по умолчанию и разных их вариаций. Кликните по нужному пункту, укажите понравившийся оттенок и нажмите Выбрать.
А с помощью инструмента Пипетка можно взять цвет любой точки на экране и применить его. Его удобно сочетать с палитрой, расположенной в нижней части окна.
Также вы отдельно можете настроить цвета для выделенного текста и фона, полужирного шрифта и курсора мыши, если активируете соответствующие пункты.
А ниже идет настройка прозрачности окна терминала. Если отключить параметр Use transparency from system theme, активировать Use transparent background и отрегулировать нижний ползунок, то получится такой результат:
Самая последняя настройка Выделение жирного текста тоже может оказаться полезной. Ее имеет смысл включить, если жирный текст не станет некомфортным для чтения. А теперь разберемся с созданием профилей с разными настройками.
Профили параметров терминала
Вы можете сделать несколько цветовых схем, например, светлую и темную, и быстро переключаться между ними. Для этого в окне Параметры щелкните по иконке Добавить в виде плюса, расположенной в блоке Профили. Задайте любое имя и нажмите Создать для подтверждения.
Теперь посетите вкладку Цвета и настройте все параметры по своему усмотрению. А для быстрого переключения между доступными профилями достаточно кликнуть правой кнопкой мыши по окошку терминала, в контекстном меню навести курсор на пункт Профили и выбрать нужный.
Выводы
Теперь вы знаете как изменить цвет терминала в Ubuntu. Оформление терминала в Ubuntu можно настроить по своему усмотрению, сделав цвета текста, фона и других элементов более яркими или, наоборот, спокойными, чтобы ничего не мешало чтению. А с помощью функции профилей получится быстро переключаться между разными вариантами оформления.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Changing colour of text and background of terminal?
I can change the colour through preference , but how can I change the background colour and text colour of terminal through the command line?
You can also use dconf . I have written an answer to similar question before: askubuntu.com/a/628129/295286
5 Answers 5
On certain XTerm/ANSI-compatible terminals (like xterm and gnome-terminal ), you can set colors using a palette bigger then the default 8/16-colors palette (for example using an 88-colors, 256-colors or 16777216-colors (RGB) palette; both xterm and gnome-terminal support both the 256-colors and the 16777216-colors (RGB) palette); mind that the shell might override this (this is the case e.g. for zsh ).
Here’s a script to list the colors in the 256-color palette along with their ANSI color code in XTerm/ANSI-compatible terminals with a 256-color palette support:
Depending on whether you want to apply the color to the foreground or to the background, use an value of 38 or 48 (respectively) in the following command:
For example, to set the foreground color ( = 38 ) to red ( = 196 ) and the background color ( = 48 ) to black ( = 0 ):
printf '\e[38;5;196m Foreground color: red\n' printf '\e[48;5;0m Background color: black\n'
It’s necessary to redraw the prompt using printf ‘\e[K’ in order for the background color to apply to the whole line and in order for the foreground color to apply to the cursor:
The same thing can be accomplished using RGB values instead of ANSI color codes in a compatible terminal; depending on whether you want to apply the color to the foreground or to the background, use an value of 38 or 48 (respectively) in the following command:
For example, to set the foreground color ( = 38 ) to red ( = 255 , = 0 , = 0 ) and the background color ( = 48 ) to black ( = 0 , = 0 , = 0 ):
printf '\e[38;2;255;0;0m Foreground color: red\n' printf '\e[48;2;0;0;0m Background color: black\n'
Again, it’s necessary to redraw the prompt using printf ‘\e[K’ in order for the background color to apply to the whole line and in order for the foreground color to apply to the cursor:
Using either methods, you can use printf ‘\e[0m’ to reset all the attributes:
Both xterm and gnome-terminal recognize the \e[38/48;2;R;G;Bm true color escape sequences; however, xterm rounds the actual color to the nearest in its 256-color palette. gnome-terminal displays the exact true color given in the escape sequence.
\e[K is dangerous; in some emulators (e.g. xterm ) if the cursor happens to be at the very right edge (visually displayed in the rightmost column, but logically already beyond that since a character was already printed in the rightmost column), that last letter gets stripped. See e.g. bugzilla.gnome.org/show_bug.cgi?id=740789 or savannah.gnu.org/bugs/?36831.
Correcting myself: If you emit \e[K at the beginning of the line (at the beginning of the prompt, rather than at the end of it) then of course it’s safe. (Won’t work with multiline prompt or command though.)
@egmont Thanks for the useful information, I see that on GNOME Bugzilla that is marked as fixed, is this the case? I can’t test this at this very moment, so I’ll do that later to check if this is still the case (unless you reply first) and include that information in the answer.
No, there is actually a correct answer — the simulation is NOT to reproduce bugs and illogical behaviour.
Information as found on this page, excluding preview column:
Sequences are composed of the Escape character (often represented by ” ^[ ” or ” ”) followed by some other characters: ” ^[FCm ” (where FC is one of the numbers in the bulleted list below).
In bash , the Esc code can be either of the following:
Note 1: The » \e[0m » sequence removes all attributes (formatting and colors). It can be a good idea to add it at the end of each colored text.
Note 2: Foreground and background colours may vary, depending on the terminal’s configuration and not all colours are supported.
Set/Reset
- 0 : Reset/remove all modifier, foreground and background attributes: echo -e «\e[0mNormal Text»
- 1 : Bold/Bright: echo -e «Normal \e[1mBold»
- 2 : Dim: echo -e «Normal \e[2mDim»
- 4 : Underlined: echo -e «Normal \e[4mUnderlined»
- 5 : Blink (doesn’t work in most terminals except XTerm): echo -e «Normal \e[5mBlink»
- 7 : Reverse/Invert: echo -e «Normal \e[7minverted»
- 8 : Hidden (useful for sensitive info): echo -e «Normal \e[8mHidden Input»
- 21 : Reset/Remove bold/bright: echo -e «Normal \e[1mBold \e[21mNormal»
- 22 : Reset/Remove dim: echo -e «Normal \e[2mDim \e[22mNormal»
- 24 : Reset/Remove underline: echo -e «Normal \e[4mUnderlined \e[24mNormal»
- 25 : Reset/Remove blink: echo -e «Normal \e[5mBlink \e[25mNormal»
- 27 : Reset/Remove reverse/invert: echo -e «Normal \e[7minverted \e[27mNormal»
- 28 : Reset/Remove hidden: echo -e «Normal \e[8mHidden \e[28mNormal»
Foreground
- 39 : Default (usually green, white or light gray): echo -e «Default \e[39mDefault»
- 30 : Black: echo -e «Default \e[30mBlack» (best combined with a background colour: echo -e «Default \e[30;107mBlack on white» )
- 31 : Red (don’t use with green background)
- 32 : Green
- 33 : Yellow
- 34 : Blue
- 35 : Magenta/Purple
- 36 : Cyan
- 37 : Light Gray
- 90 : Dark Gray
- 91 : Light Red
- 92 : Light Green
- 93 : Light Yellow
- 94 : Light Blue
- 95 : Light Magenta/Pink
- 96 : Light Cyan
- 97 : White
Background
- 49 : Default background color (usually black or blue)
- 40 : Black
- 41 : Red
- 42 : Green
- 43 : Yellow
- 44 : Blue
- 45 : Magenta/Purple
- 46 : Cyan
- 47 : Light Gray (don’t use with white foreground)
- 100 : Dark Gray (don’t use with black foreground)
- 101 : Light Red
- 102 : Light Green (don’t use with white foreground)
- 103 : Light Yellow (don’t use with white foreground)
- 104 : Light Blue (don’t use with light yellow foreground)
- 105 : Light Magenta/Pink (don’t use with light foreground)
- 106 : Light Cyan (don’t use with white foreground)
- 107 : White (don’t use with light foreground)
To set both the foreground and background colours at once, use ther form echo -e «\e[S;FG;BGm» . For example: echo -e «\e[1;97;41m» (bold white foreground on red background)
For 256 colour options, see the source page.