Como fazer: sublinhado, negrito, itálico, tachado, cor, plano de fundo e tamanho no Terminal do Gnome?

39

Como fazer: sublinhado, negrito, itálico, rasurado e colorido no Terminal do Gnome?

Bold

Itálico

u̲n̲d̲e̲r̲l̲i̲n̲e̲

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

Cor

background

font & lt; (seu mono se você não pudesse dizer)

tamanho

    
por Akiva 26.09.2014 / 18:26

4 respostas

50
  

Os terminais ANSI / VT100 e emuladores de terminal não são apenas capazes de   exibir texto em preto e branco; eles podem exibir cores e formatados   textos graças a seqüências de escape. Essas seqüências são compostas do   Caractere de escape (geralmente representado por "^ [" ou "Esc") seguido por   alguns outros personagens: "Esc [FormatCodem".

No Bash, o caractere pode ser obtido com as seguintes sintaxes:

\e
3
\x1B

Os comandos (para fácil copiar e colar):

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"

Origem (incluindo todos os tipos de códigos de cor de primeiro plano / segundo plano): link

    
por Sylvain Pineau 26.09.2014 / 18:44
19

Para estender a resposta de Sylvain, algumas funções auxiliares:

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

Então

    
por glenn jackman 17.04.2018 / 01:00
16

Algo que ainda não foi abordado é a combinação de dois ou três parâmetros, e. g. negrito e sublinhado , em uma cor predefinida. Isto é conseguido por uma sintaxe de 3 vias, por exemplo:

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

fará com que "este é um teste" seja impresso na cor amarela ( 33m ), itálico ( 3m ) e sublinhado ( 4m ).
Note que é não necessário repetir o \e[ todas as vezes.
Note também que (tanto para Sylvain) eu também adicionei um \e[0m para redefinir as configurações de cada vez, porque senão a cor amarela e o estilo da fonte permanecerão ativos no terminal! Escusado será dizer que você absolutamente tem que estar atento para que estes sejam redefinidos em scripts, porque os usuários que usam seus scripts podem não gostar se o seu script permanentemente modifica suas configurações de cor + estilo no terminal!

    
por syntaxerror 09.02.2015 / 14:29
6

GNOME Terminal 3.28 (VTE 0,52), estreando no Ubuntu 18.04 LTS, adiciona suporte para mais alguns estilos, incluindo encaracolados e sublinhados coloridas como visto na Kitty, overline como visto no Konsole, e, finalmente, todo mundo está muito amado ou muito atributo piscar odiado também.

Estes também trabalhar automaticamente em qualquer outro emulador de terminal-base TEV (por exemplo Tilix, Terminator, Xfce4-terminal, Guake etc.), dado que TEV é, pelo menos, na versão 0.52.

Aqui está uma lista demonstrando as sequências de escape padrão, bem como adições (de VTE) do GNOME Terminal. Note-se que para cada sequência de abertura Eu também estou mostrando a seqüência de encerramento dessa propriedade única, ao invés do genérico \e[m ou \e[0m que desativa todos os modos especiais.

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'

(*) Os valores do Truecolor para sublinhados são ligeiramente aproximados.

E um pouco estranho que não se encaixa nesta imagem, pois é mais uma funcionalidade do que um estilo, mas provavelmente vale a pena mencionar aqui, é hyperlink apoio co-projetado com iTerm2, disponível desde GNOME Terminal 3.26 (VTE 0,50):

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

Aqui está uma captura de tela demonstrando o resultado:

    
por egmont 11.12.2017 / 23:24