Aqui:
http://en.wikipedia.org/wiki/ANSI_escape_code
(nota: muitos deles geralmente não funcionam, mas a maioria deles é marcada assim.)
Estou fazendo um jogo no terminal e confiei bastante no link acima. Ele também mostra como ocultar / exibir o cursor, tornar a cor (anos 30), "negrito" (mais claro), mais escuro, sublinhado, itálico, cor de plano de fundo (anos 40 em vez de anos 30), etc. Você também pode alterar a localização do cursor ( o que é muito útil - por exemplo, "\x1B[1A"
move o cursor para cima uma linha; "\x1B[0;0H"
move o cursor para a linha 0, col 0; "\x1B[2J"
limpa a tela; "\x1B[2K"
limpa a linha.
Para seus propósitos, como as pessoas disseram:
echo -e "\x1b[30;44m black with blue background \x1b[m"
echo -e "\x1b[31;42m red with green background \x1b[m"
echo -e "\x1b[32;40m green with black background \x1b[m"
echo -e "\x1b[8m Invisible; na na na na boo boo \x1b[m"
Nota: Você precisa o -e
em
echo **-e** "\x1b[35;1m Light purple \x1b[m"
ou você precisa usar aspas simples. Digite man echo
para saber por que (aspas duplas geralmente são difíceis de imprimir; quando preciso que as coisas não sejam expandidas ou sequências de escape ANSI), uso aspas simples porque é fácil - mesmo que eu me acostumei a fazê-lo tantas vezes - para esquecer o -e , nesse caso, você obtém " box with numbers and letters
[35; 1m").
Toda vez que você vir CSI
substituí-lo por "\x1b["
(ou "\e["
ou "\u1b["
). "\x1b["
Eu acho que é mais padrão, mas eu realmente não sei qual é a diferença entre eles.