Я могу изменить цвет с помощью предпочтений, но как изменить цвет фона и цвет текста терминала через командную строку? Р>
Я могу изменить цвет с помощью предпочтений, но как изменить цвет фона и цвет текста терминала через командную строку? Р>
На некоторых терминалах, совместимых с XTerm / ANSI (например, xterm
и gnome-terminal
), вы можете устанавливать цвета, используя палитру, большую, чем палитра 8/16 цветов по умолчанию (например, с использованием 88-цветных, 256- цветов или палитры 16777216 цветов (RGB), и xterm
и gnome-terminal
поддерживают как 256 цветов, так и палитру 16777216 цветов (RGB); что оболочка может переопределить это (например, для zsh
).
Вот сценарий для отображения цветов в палитре с 256 цветами и их цветового кода ANSI на терминалах XTerm / ANSI с поддержкой 256-цветной палитры:
#!/bin/bash
for((i=16; i<256; i++)); do
printf "\e[48;5;${i}m%03d" $i;
printf '\e[0m';
[ ! $((($i - 15) % 6)) -eq 0 ] && printf ' ' || printf '\n'
done
В зависимости от того, хотите ли вы применить цвет к переднему или второстепенному, используйте значение <fg_bg>
38
или 48
(соответственно) в следующей команде:
printf '\e[<fg_bg>;5;<ANSI_color_code>m'
Например, чтобы установить цвет переднего плана ( <fg_bg>
= 38
) на красный ( <ANSI_color_code>
= 196
) и цвет фона ( <fg_bg>
= 48
) на черный ( <ANSI_color_code>
= 0
): р>
printf '\e[38;5;196m Foreground color: red\n'
printf '\e[48;5;0m Background color: black\n'
Необходимо перерисовать приглашение с помощью printf '\e[K'
, чтобы цвет фона применим к всей строке и для того, чтобы цвет переднего плана применим к курсору:
То же самое можно сделать, используя значения RGB вместо цветовых кодов ANSI в совместимом терминале; в зависимости от того, хотите ли вы применить цвет на переднем плане или на задний план, используйте <fg_bg>
значение 38
или 48
(соответственно) в следующей команде:
printf '\e[<fg_bg>;2;<R>;<G>;<B>m'
Например, чтобы установить цвет переднего плана ( <fg_bg>
= 38
) на красный ( <R>
= 255
, <G>
= 0
, <B>
= 0
) и фон ( <fg_bg>
= 48
) до черного ( <R>
= 0
, <G>
= 0
, <B>
= 0
):
printf '\e[38;2;255;0;0m Foreground color: red\n'
printf '\e[48;2;0;0;0m Background color: black\n'
Опять же, необходимо перерисовать приглашение, используя printf '\e[K'
, чтобы цвет фона применим к всей строке и для того, чтобы цвет переднего плана применим к курсору:
Используя оба метода, вы можете использовать printf '\e[0m'
для сброса всех атрибутов:
Если это предназначено для изменения цветов на случайном основании :
Вы можете использовать команду setterm :
setterm -term linux -back <background_colour> -fore <text_color> -clear
из цветов, вы можете выбрать (как для фонового, так и для фонового):
black|blue|green|cyan|red|magenta|yellow|white|default
для дополнительных параметров:
setterm -help
В 14.04 я не нашел возможность использовать dconf
для установки цветов или терминала. Однако вы можете использовать gconftool
Сначала вам нужно получить свое имя профиля:
gconftool-2 --get /apps/gnome-terminal/global/profile_list
Затем, чтобы задать цвет текста вашего профиля:
gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/foreground_color" --type string "#FFFFFF"
, например, чтобы установить цвет текста в белый
То же самое с цветом фона:
gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/background_color" --type string "#000000"
, например, чтобы установить цвет фона в черный
В качестве альтернативы, чтобы установить имя цвета (ов), вы можете просто использовать white
или green
, из той же палитры, что и команда setterm, например:
gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/background_color" --type string black
Информация, найденная на этой странице , исключая столбец предварительного просмотра:
Последовательности состоят из символа Escape (часто представленного « ^[
» или « <Esc>
»), за которым следуют некоторые другие символы: « <Esc>[FCm
» (где FC
- это одно из чисел в маркированном список ниже).
В bash
код Esc может быть одним из следующих:
\e
3
(восьмеричный) \x1B
(шестнадцатеричный) Примечание 1: Последовательность « \e[0m
» удаляет все атрибуты (форматирование и цвета). Это может быть хорошей идеей добавить его в конце каждого цветного текста.
Примечание 2: Цвета переднего плана и фона могут отличаться в зависимости от конфигурации терминала и не все цвета поддерживаются .
0
: Сбросить / удалить все атрибуты модификатора, переднего плана и фона: echo -e "\e[0mNormal Text"
1
: Жирный / Яркий: echo -e "Normal \e[1mBold"
2
: Dim: echo -e "Normal \e[2mDim"
4
: Подчеркнуто: echo -e "Normal \e[4mUnderlined"
5
: Blink (не работает в большинстве терминалов, кроме XTerm): echo -e "Normal \e[5mBlink"
7
: Обратное / Инверсное: echo -e "Normal \e[7minverted"
8
: Скрыто (полезно для конфиденциальной информации): echo -e "Normal \e[8mHidden Input"
21
: Сброс / Удалить полужирный / яркий: echo -e "Normal \e[1mBold \e[21mNormal"
22
: Сброс / Удалить тусклый: echo -e "Normal \e[2mDim \e[22mNormal"
24
: Сброс / удаление подчеркивания: echo -e "Normal \e[4mUnderlined \e[24mNormal"
25
: Сброс / удаление мерцания: echo -e "Normal \e[5mBlink \e[25mNormal"
27
: Сброс / удаление обратного / инвертирования: echo -e "Normal \e[7minverted \e[27mNormal"
28
: Сброс / удаление скрытых: echo -e "Normal \e[8mHidden \e[28mNormal"
39
: По умолчанию (обычно зеленый, белый или светло-серый): echo -e "Default \e[39mDefault"
30
: черный: echo -e "Default \e[30mBlack"
(лучше всего сочетается с цветом фона: echo -e "Default \e[30;107mBlack on white"
) 31
: красный (не использовать с зеленым фоном) 32
: зеленый 33
: желтый 34
: синий 35
: пурпурный / фиолетовый 36
: Cyan 37
: Светло-серый 90
: Темно-серый 91
: светло-красный 92
: светло-зеленый 93
: светло-желтый 94
: Голубой 95
: Светло-пурпурный / розовый 96
: Light Cyan 97
: Белый 49
: цвет фона по умолчанию (обычно черный или синий) 40
: черный 41
: Красный 42
: зеленый 43
: желтый 44
: синий 45
: пурпурный / фиолетовый 46
: Cyan 47
: Светло-серый (не использовать с белым фоном) 100
: темно-серый (не использовать с черным передним планом) 101
: светло-красный 102
: светло-зеленый (не использовать с белым фоном) 103
: светло-желтый (не использовать с белым фоном) 104
: Голубой (не использовать со светлым желтым передним планом) 105
: Светло-пурпурный / розовый (не использовать со светом переднего плана) 106
: светлый голубой (не использовать с белым фоном) 107
: белый (не использовать со светом переднего плана) Чтобы одновременно установить цвета переднего и заднего фона, используйте форму the echo -e "\e[S;FG;BGm"
. Например: echo -e "\e[1;97;41m"
(полужирный белый передний план на красном фоне)
Для 256 параметров цвета см. страницу источника.
Различные цветовые коды, используемые для получения цветного выхода, также могут использоваться для получения цветные фоны :
40 black
41 red
42 green
43 yellow
44 blue
45 magenta
46 cyan
47 white
Следовательно, следующая команда превращает мой фон в красный цвет:
$ echo -e '\e[0;41m'
В зависимости от оболочки, эмулятора терминала и т. д. вам может не понадобиться -e
.