Я могу изменить цвет через предпочтение, но как я могу изменить цвет фона и цвет текста терминала через командную строку?
Если это предназначено для случайного изменения цвета база :
Вы можете использовать команду 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 / / foreground_color" --type string "#FFFFFF"
например, чтобы установить белый цвет текста
То же самое с цветом фона:
gconftool-2 --set "/ apps / gnome-terminal / profiles / / background_color" -строка типа "# 000000"
например, чтобы установить черный цвет фона
В качестве альтернативы, чтобы установить название цвета (ов), вы можете просто использовать белый
или зеленый
из та же палитра, что и у команды setterm, например:
gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/background_color" --type string black
Различные цветовые коды, которые используются для получения цветного вывода, также могут использоваться для получения цветного фона :
40 black
41 red
42 green
43 yellow
44 blue
45 magenta
46 cyan
47 white
Поэтому следующая команда меняет фон на красный цвет:
$ echo -e '\e[0;41m'
В зависимости от оболочки, эмулятора терминала и т. Д. Вам может не понадобиться -e
.
См. Ответ kos для переключения переднего плана или фона на определенный цвет палитры, или даже прямой цвет RGB в некоторых терминалах. Эффект такой последовательности длится до тех пор, пока не будет выбран другой цвет (или он не будет возвращен к цвету по умолчанию).
Другой подход, поддерживаемый некоторыми эмуляторами терминала, заключается в переопределении точных значений RGB терминала. по умолчанию цвета переднего плана и фона с использованием escape-последовательностей OSC 10/11:
echo -ne '\e]10;#123456\e\\' # set default foreground to #123456
echo -ne '\e]11;#abcdef\e\\' # set default background to #abcdef
Это, вероятно, будет длиться намного дольше (пока не будет отменено другим OSC 10/11 или сброшено через OSC 110/111), но в отличие от при подходе dconf это по-прежнему влияет только на текущий терминал.
Информация, найденная на этой странице , за исключением столбца предварительного просмотра:
Последовательности состоят из символа Escape (часто обозначаемого как « ^ [
] ”Или”
”), за которым следуют некоторые другие символы:” ^ [FCm
”(где FC
- одно из чисел в маркированном списке ниже
В bash
код Esc может быть одним из следующих:
\ e
\ 033
(восьмеричный) \ x1B
(шестнадцатеричный) Примечание 1: Последовательность « \ e [0m
» удаляет все атрибуты (форматирование и цвета). Может быть хорошей идеей добавить его в конец каждого цветного текста.
Примечание 2: Цвета переднего плана и фона могут различаться в зависимости от конфигурации терминала и поддерживаются не все цвета .
0
: сбросить / удалить все атрибуты модификатора, переднего плана и фона: echo -e "\ e [0mNormal Text"
1
: жирный / яркий : echo -e "Нормальный \ e [1mBold"
2
: Тусклый: echo -e "Нормальный \ e [2mDim"
4
: Подчеркнутый: echo -e "Нормальный \ e [4mUnderlined"
5
: Мигает (не работает в большинстве терминалов, кроме XTerm): echo -e "Нормальный \ e [5mBlink"
7
: Реверс / Инверсия: echo -e "Нормальный \ e [7minverted"
8
: Скрытый (полезно для конфиденциальной информации): echo -e "Нормальный \ e [8mHidden Input"
21
: Сброс / удаление жирного / яркого: echo -e "Нормальный \ e [1mBold \ e [21mNormal"
22
: Сброс / удаление затемнения: echo -e "Нет rmal \ e [2mDim \ e [22mNormal "
24
: сбросить / удалить подчеркивание: echo -e" Normal \ e [4mUnderlined \ e [24mNormal ”
25
: Reset / Убрать мигание: echo -e "Нормальный \ e [5mBlink \ e [25mNormal"
27
: Сброс / Удалить обратное / обратное: echo -e "Нормальное \ e [7minverted \ e [ 27mNormal "
28
: Сброс / Удаление скрытого: echo -e" Нормальный \ e [8mHidden \ e [28mNormal ”
39
: По умолчанию (обычно зеленый, белый) или светло-серый): echo -e "Default \ e [39mDefault"
30
: Black: echo -e "Default \ e [30mBlack"
(лучше всего сочетается с фоном) color: echo -e "По умолчанию \ e [30; 107mЧерный на белом"
) 31
: Красный (не использовать с зеленым фоном) 32
: Зеленый 33
: желтый 34
: синий 35
: пурпурный / фиолетовый 36
: голубой 37
: светло-серый ] 90
: темно-серый 91
: светло-красный 92
: светло-зеленый 93
: светло-желтый 94
: светло-синий 95
: светло-пурпурный / розовый 96
: светло-голубой ] 97
: Белый 49
: Цвет фона по умолчанию (обычно черный или синий) 40
: Черный 41
: Красный 42
: зеленый 43
: желтый 44
: синий 45
: пурпурный / фиолетовый 46
: голубой 47
: Светло-серый (не использовать с белым передним планом) 100
: темно-серый (не использовать с черным передним планом) 101
: светло-красный 102
: светлый Зеленый (не используйте с белым передним планом) 103
: светло-желтый (не используйте с белым передним планом) 104
: голубой (не используйте со светло-желтым передним планом) 105
: светло-пурпурный / розовый (не используйте со светлым передним планом) 106
: светло-голубой (не используйте с белым передним планом) 107
: белый (не используйте не использую с l ight foreground) Для одновременной установки цвета переднего плана и фона используйте следующую форму echo -e "\ e [S; FG; BGm"
. Например: echo -e "\ e [1; 97; 41m"
(жирный белый передний план на красном фоне)
Для 256 вариантов цвета см. Исходную страницу.
На некоторых XTerm/ANSI-совместимых клеммах (например, xterm
и gnome-терминале
) можно задавать цвета, используя палитру, большую, чем стандартная 8/16-цветная палитра (например, используя 88-цветную, 256-цветную или 16777216-цветную (RGB) палитру; оба терминала xterm
и gnome Terminal
поддерживают как 256-цветовую, так и 16777216-цветовую палитру (RGB); имейте в виду, что оболочка может перекрыть эту палитру (так происходит в случае e. g. для 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
В зависимости от того, хотите ли вы применить цвет на переднем плане или на заднем плане, используйте
значение 38
или 48
(соответственно) в следующей команде:
printf '\e[<fg_bg>;5;<ANSI_color_code>m'
Например, установить цвет переднего плана (
=38
) на красный (
=196
). и цвет фона (
=48
) до черного (
=0
):
printf '\e[38;5;196m Foreground color: red\n'
printf '\e[48;5;0m Background color: black\n'
Необходимо перерисовать запрос, используя printf '\e[K'
, чтобы цвет фона применялся ко всей линии, и чтобы цвет переднего плана применялся к курсору:
То же самое можно сделать, используя значения RGB вместо кодов цвета ANSI в совместимом терминале; в зависимости от того, хотите ли вы применить цвет на переднем плане или на заднем плане, используйте значение
, равное 38
или 48
(соответственно) в следующей команде:
printf '\e[<fg_bg>;2;<R>;<G>;<B>m'
Например, для установки цвета переднего плана (
=38
) на красный (
=255
,
=0
, =
0
) и цвет фона (
=48
) до черного (
=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'
Снова необходимо перерисовать запрос, используя printf '\e[K'
, чтобы цвет фона применялся ко всей линии, и чтобы цвет переднего плана применялся к курсору:
Используя любой из методов, можно использовать printf '\e[0m'
, чтобы сбросить все атрибуты: