Я использовал несколько цветов в моем приглашении PS1, таких как
\033]01;31\] # pink
\033]00m\] # white
\033]01;36\] # bold green
\033]02;36\] # green
\033]01;34\] # blue
\033]01;33\] # bold yellow
Где я могу найти список кодов цвета, которые я могу использовать?
Я посмотрел на Colorize Bash Console Color, но он не ответил на мой вопрос о списке реальных кодов.
Было бы хорошо, если бы была более читаемая форма.
Смотрите также https://unix.stackexchange.com/a/127800/10043
\]
здесь на самом деле не является частью цветовой последовательности; это служит определенной цели в настройке подсказок (я добавил несколько абзацев в конец моего ответа по этому поводу). «Было бы неплохо, если бы была и более читаемая форма». -> Вырезать и вставить в свой ответ является одним из способов сделать это.Ответы:
Это экранирующие последовательности ANSI ; эта ссылка на таблицу цветовых кодов, но на этой странице Википедии есть и другие интересные вещи. Не все из них работают (например) на нормальной консоли Linux.
Это неверно:
0
сбрасывает терминал к его настройкам по умолчанию (который, вероятно, белый). Фактический код для белого переднего плана - 37. Кроме того, экранированная закрывающая скобка в конце (\]
) не является частью цветовой последовательности (см. Последние несколько абзацев ниже для объяснения их назначения при установке приглашения).Обратите внимание, что некоторые терминалы с графическим интерфейсом позволяют указывать индивидуальную цветовую схему. Это повлияет на вывод.
Здесь есть список, который добавляет 7 цветов переднего плана и 7 цветов фона, которых я раньше не видел, но они, кажется, работают:
Кроме того, если у вас есть графический терминал с 256 цветами (я думаю, что большинство из них сейчас), вы можете применить цвета из этой диаграммы:
Последовательность ANSI для их выбора, используя номер в нижнем левом углу, начинается
38;5;
для переднего плана и48;5;
для фона, затем номер цвета, например, так:Дает мне светло-оранжевый от загара (имеется в виду, приблизительная диаграмма цвета).
Вы можете видеть цвета на этом графике 1 так, как они бы выглядели на вашем терминале довольно легко:
Вывод не требует пояснений.
Некоторые системы устанавливают переменную $ TERM,
xterm-256color
если вы находитесь на 256-цветном терминале через некоторый код оболочки в/etc/profile
. На других вы должны быть в состоянии настроить свой терминал для использования этого. Это позволит приложениям TUI знать, что существует 256 цветов, и позволит вам добавить что-то вроде этого к вашему~/.bashrc
:Помните, что когда вы используете цветовые escape-последовательности в вашем приглашении, вы должны заключить их в экранированные (с
\
префиксом) квадратные скобки, например:Обратите внимание, что
[
внутренняя часть последовательности цветов не избежала, а окружающие - нет. Цель последнего состоит в том, чтобы указать оболочке, что вложенная последовательность не учитывается в длине символа подсказки. Если этот счет неправильный, то при прокрутке истории назад будут происходить странные вещи, например, если она слишком длинная, избыточная длина последней прокручиваемой строки будет отображаться в вашем приглашении, и вы не сможете вернуться на это (это игнорируется так же, как приглашение).Также обратите внимание, что если вы хотите включить вывод команды, запускаемой каждый раз, когда подсказка используется (в отличие от однократного, когда подсказка установлена), вы должны установить ее в виде буквенной строки с одинарными кавычками, например:
Хотя это не очень хороший пример, если вы довольны использованием специальных
\d
или\D{format}
быстрых экранирований bash - которые не являются темой вопроса, но их можно найти вman bash
разделе нижеPROMPTING
. Существуют различные другие полезные экранирования, такие как\w
для текущего каталога,\u
для текущего пользователя и т. Д.1. Основная часть этой диаграммы, цвета 16 - 231 (обратите внимание, что они не в числовом порядке) - это цветной куб RGB 6 x 6 x 6. «Цветовой куб» относится к тому факту, что цветовое пространство RGB может быть представлено с использованием трехмерного массива (с одной осью для красного, одной для зеленого и одной для синего). Каждый цвет в кубе здесь может быть представлен в виде координат в массиве 6 x 6 x 6, а индекс в диаграмме рассчитывается следующим образом:
Первый цвет в кубе с индексом 16 на графике - черный (RGB 0, 0, 0). Вы можете использовать эту формулу в сценарии оболочки:
источник
echo
ничего кроме буквального текста, который не начинается с тире (-
). Это непереносимо. Все распространенные реализации нарушают стандарт, который гласит, что никакие опции не должны поддерживаться. Хуже того, они противоречивы. Вы должны использоватьprintf
вместо этого. (И не встраивайте переменные в операторы printf, используйте%s
.)colortest-256
перечислите Xterm Pallette в красивой компактной форме. (apt-get install colortest
если отсутствует)Похоже, по крайней мере, некоторые из списка:
на основе https://wiki.archlinux.org/index.php/Color_Bash_Prompt
источник
Я написал функцию bash, которая может показать вам все цвета, если это поможет.
Вы можете добавить это в .bashrc / .bash_profile / .bash_aliases или сохранить как скрипт и запустить его таким образом. Вы можете использовать цвета, чтобы изменить цвет, как я сделал с моим именем ниже.
colorgrid () выводит:
Я изменил свое имя в моем .bash_profile, выполнив это:
Обратите внимание, что префикс 01 в строке типа
\[\033[01;38;5;214m\]a
устанавливает его жирным шрифтом.источник
Другой скрипт, подобный тому, который выложил TAFKA «goldilocks» для отображения цветов, может быть немного более практичным для справочных целей:
Размер должен соответствовать размеру используемого вами терминала. Для этой цели это немного излишне, но теперь вы можете контролировать многие аспекты того, как это отображается с помощью параметров. Надеюсь, все они говорят сами за себя.
источник
источник