it-roy-ru.com

Как сделать: подчеркивание, полужирный шрифт, курсив, зачеркивание, цвет, фон и размер в Gnome Terminal?

Как сделать: подчеркивание, жирный, курсив, зачеркнутый и цвет в терминале Gnome?

Жирный

Курсив

подчеркивание

s̶t̶r̶i̶k̶e̶ ̶i̶t̶ ̶l̶i̶k̶̶e̶ ̶i̶t̶s̶ ̶h̶o̶t

цвет

background

font <(моно, если вы не можете сказать)

размер

50
Akiva

Терминалы ANSI/VT100 и эмуляторы терминалов могут не только отображать черно-белый текст; они могут отображать цвета и форматированный текст благодаря escape-последовательностям. Эти последовательности состоят из символа Escape (часто обозначаемого "^ [" или "Esc"), за которым следуют некоторые другие символы: "Esc [FormatCodem".

В Bash символ можно получить с помощью следующих синтаксисов:

\e
\033
\x1B

enter image description here

Команды (для простого копирования-вставки):

echo -e "\e[1mbold\e[0m"
echo -e "\e[3mitalic\e[0m"
echo -e "\e[4munderline\e[0m"
echo -e "\e[9mstrikethrough\e[0m"
echo -e "\e[31mHello World\e[0m"
echo -e "\x1B[31mHello World\e[0m"

Источник (включая все типы кодов цвета переднего плана/фона): http://misc.flogisoft.com/bash/tip_colors_and_formatting

67
Sylvain Pineau

Чтобы расширить ответ Сильвена, некоторые вспомогательные функции:

ansi()          { echo -e "\e[${1}m${*:2}\e[0m"; }
bold()          { ansi 1 "[email protected]"; }
italic()        { ansi 3 "[email protected]"; }
underline()     { ansi 4 "[email protected]"; }
strikethrough() { ansi 9 "[email protected]"; }
red()           { ansi 31 "[email protected]"; }

Затем

enter image description here

24
glenn jackman

Что-то, что еще не было рассмотрено, --- это комбинация двух или трех параметров, e. г. полужирный и подчеркивание , в предопределенном цвете. Это достигается с помощью трехстороннего синтаксиса, например:

~$ printf "\e[3;4;33mthis is a test\n\e[0m"

приведет к тому, что "это тест" будет напечатан желтым цветом (33m), курсивом (3m) И подчеркнут (4m).
Обратите внимание, что нет необходимости повторять код \e[ каждый раз.
Обратите внимание, что (как и Sylvain) я также добавил \e[0m для сброса настроек каждый раз, потому что в противном случае желтый цвет и стиль шрифта останутся активными в терминале! Излишне говорить, что вам абсолютно необходимо следить за тем, чтобы они сбрасывались в сценариях, поскольку пользователям, которые используют ваши сценарии, это может не понравиться, если ваш сценарий постоянно изменяется их настройки цвета + стиля в терминале!

18
syntaxerror

В GNOME Terminal 3.28 (VTE 0.52), дебютировавшем в Ubuntu 18.04 LTS, добавлена ​​поддержка еще нескольких стилей, включая фигурные и цветные подчеркивания, как в Kitty, overline, как в Konsole, и, наконец, все любимые или ненавистные атрибуты мерцания.

Они также автоматически работают в любом другом эмуляторе терминала на основе VTE (например, Tilix, Terminator, Xfce4-терминал, Guake и т.д.), Учитывая, что VTE имеет версию не ниже 0.52.

Вот список, демонстрирующий стандартные escape-последовательности, а также дополнения GNOME Terminal (VTE). Обратите внимание, что для каждой открывающей последовательности я также показываю только закрывающую последовательность этого свойства, а не общий \e[m или \e[0m, который отключает все специальные режимы.

echo -e '\e[1mbold\e[22m'
echo -e '\e[2mdim\e[22m'
echo -e '\e[3mitalic\e[23m'
echo -e '\e[4munderline\e[24m'
echo -e '\e[4:1mthis is also underline (new in 0.52)\e[4:0m'
echo -e '\e[21mdouble underline (new in 0.52)\e[24m'
echo -e '\e[4:2mthis is also double underline (new in 0.52)\e[4:0m'
echo -e '\e[4:3mcurly underline (new in 0.52)\e[4:0m'
echo -e '\e[5mblink (new in 0.52)\e[25m'
echo -e '\e[7mreverse\e[27m'
echo -e '\e[8minvisible\e[28m <- invisible (but copy-pasteable)'
echo -e '\e[9mstrikethrough\e[29m'
echo -e '\e[53moverline (new in 0.52)\e[55m'

echo -e '\e[31mred\e[39m'
echo -e '\e[91mbright red\e[39m'
echo -e '\e[38:5:42m256-color, de jure standard (ITU-T T.416)\e[39m'
echo -e '\e[38;5;42m256-color, de facto standard (commonly used)\e[39m'
echo -e '\e[38:2::240:143:104mtruecolor, de jure standard (ITU-T T.416) (new in 0.52)\e[39m'
echo -e '\e[38:2:240:143:104mtruecolor, rarely used incorrect format (might be removed at some point)\e[39m'
echo -e '\e[38;2;240;143;104mtruecolor, de facto standard (commonly used)\e[39m'

echo -e '\e[46mcyan background\e[49m'
echo -e '\e[106mbright cyan background\e[49m'
echo -e '\e[48:5:42m256-color background, de jure standard (ITU-T T.416)\e[49m'
echo -e '\e[48;5;42m256-color background, de facto standard (commonly used)\e[49m'
echo -e '\e[48:2::240:143:104mtruecolor background, de jure standard (ITU-T T.416) (new in 0.52)\e[49m'
echo -e '\e[48:2:240:143:104mtruecolor background, rarely used incorrect format (might be removed at some point)\e[49m'
echo -e '\e[48;2;240;143;104mtruecolor background, de facto standard (commonly used)\e[49m'

echo -e '\e[21m\e[58:5:42m256-color underline (new in 0.52)\e[59m\e[24m'
echo -e '\e[21m\e[58;5;42m256-color underline (new in 0.52)\e[59m\e[24m'
echo -e '\e[4:3m\e[58:2::240:143:104mtruecolor underline (new in 0.52) (*)\e[59m\e[4:0m'
echo -e '\e[4:3m\e[58:2:240:143:104mtruecolor underline (new in 0.52) (might be removed at some point) (*)\e[59m\e[4:0m'
echo -e '\e[4:3m\e[58;2;240;143;104mtruecolor underline (new in 0.52) (*)\e[59m\e[4:0m'

(*) Значения TrueColor для подчеркивания слегка аппроксимируются.

И немного странный, который не совсем вписывается в эту картину, поскольку это скорее функциональность, чем стиль, но, вероятно, стоит упомянуть здесь, - гиперссылка поддержка, совместная с iTerm2, доступная с GNOME Terminal 3.26 (VTE 0.50):

echo -e '\e]8;;http://askubuntu.com\e\\hyperlink\e]8;;\e\\'

Вот скриншот, демонстрирующий результат: Rendering in gnome-terminal 3.28

12
egmont