O Ano Novo está chegando, já não queremos pensar em trabalho sério.
Todos estão tentando enfeitar algo para as festas: a casa, o escritório, o local de trabalho... Vamos também decorar algo! Por exemplo, o convite do terminal de comando. De certa forma, o terminal de comando também é um local de trabalho.
Em algumas distribuições, ele já vem "decorado":

Em outras, ele é cinza e sem graça:

E podemos fazer algo assim:

Claro, há gostos e cores diferentes. Se essa decoração parece tosca e inadequada para você, saiba que esse ponto de vista é totalmente válido. Mas se você também quer adicionar um pouco do espírito natalino, continue lendo este pequeno artigo de Natal da Cloud4Y.
Primeiro, vou explicar como o output do terminal é "decorado". Isso é feito através de sequências de escape. E, para ser mais exato, usando sequências de controle do terminal ANSI/VT100. O que automaticamente significa que seu emulador de terminal deve suportar esse padrão, caso contrário, a mágica de Natal não acontecerá. E sim, presume-se que seu $SHELL é o bash.
Essas sequências são chamadas de escape porque começam com o símbolo ASCII "escape". Existem muitas sequências de controle que permitem, por exemplo, exibir configurações do terminal, controlar a exibição e o movimento do cursor, alterar a fonte, apagar e ocultar texto. Nós, no entanto, escolheremos uma delas – a mudança da cor do texto e do fundo.
Executamos a sequência de código *ESC*[{attr1};...;{attrn}m
Como símbolo Escape é utilizada sua forma octal, ou seja, 33. Quanto aos atributos, aqui está uma lista resumida dos valores possíveis:
0 Resetar todos os atributos
1 Brilhante (aumento de brilho)
2 Escurecido
4 Sublinhado
5 Piscar
7 Inversão
8 Ocultar texto
Cores de Primeiro Plano (cor da caneta, usada para o texto):
30 Preto
31 Vermelho
32 Verde
33 Amarelo
34 Azul
35 Roxo
36 Ciano
37 Branco
Cores de Fundo (cor do papel ou fundo):
40 Preto
41 Vermelho
42 Verde
43 Amarelo
44 Azul
45 Roxo
46 Ciano
47 Branco
Note que se você agora digitar no terminal: echo 33[0;31mtexto qualquer 33[0m’
… você previsivelmente receberá no output uma abracadabra monocromática:

Por quê? Porque era necessário usar os recursos avançados do comando echo. Basta adicionar uma opção: echo -e ‘ 33[0;31malgum texto 33[0m’
Agora a saída ficará correta:
![]()
Entendemos como colorir a saída no terminal. Agora, vamos ver como colorir o prompt de comando.
Isso é feito através da alteração da variável PS1. Essa variável controla o prompt de comando. Sua aparência também pode ser alterada, inclusive com sequências de escape. Mas há uma pequena diferença: a sequência deve começar com o símbolo “[”, e terminar com o símbolo “]”, caso contrário, será impressa no terminal.
Todas as sequências de comando possíveis estão detalhadas no manual do bash, assim, eu sugiro que os leitores escolham sozinhos o que preferem ver no prompt de comando. Como exemplo, vou apresentar meu valor da variável PS1:
[ 33[34;1m]t[ 33[0m],[ 33[32m]u@l@h[ 33[0m]:[ 33[33m]W[ 33[0m],[ 33
[31m]![ 33[0m]$n
Vou decifrar esse encantamento estranho:
[ 33[34;1m] — ativamos a cor azul brilhante (segundo atributo) da fonte
t – exibimos o horário atual no formato HH:MM:SS
[ 33[0m] – resetamos as configurações de cor da fonte
, — apenas uma vírgula (surpreendente, não?)
[ 33[32m] — ativamos a cor verde da fonte
u@l@h – exibimos o nome do usuário, número do dispositivo do terminal e nome curto do host, separando com o símbolo “@”
[ 33[0m] — resetamos novamente as configurações de cor da fonte
: — apenas dois pontos (de repente!)
[ 33[33m] — ativamos a cor amarela da fonte
W – exibimos o nome do diretório atual
[ 33[0m] — mais uma vez, resetamos as configurações de cor da fonte
, — outra vírgula (quem poderia imaginar!)
[ 33[31m] — ativamos a cor vermelha da fonte
! — exibimos o número do comando no terminal
[ 33[0m] — não esqueçamos de resetar as configurações de cor da fonte
$ — exibimos “#” para root e “$” para todos os outros
n – nova linha. Por quê? Para que o comando comece na margem esquerda da janela, e não na posição final do prompt de comando.
Onde redefinir a variável? O mais lógico é fazer isso em ~/.bashrc.
A aparência do convite é limitada apenas pela sua imaginação. Na verdade, nada o impede de usar as ferramentas mencionadas acima para criar um prompt de comando na forma de uma árvore de Natal. No entanto, esse convite será bastante volumoso, e a facilidade de uso não melhorará. Você pode simplesmente exibir a árvore acima do prompt de comando ao entrar no sistema (precisamos editar ~\/ .bashrc de qualquer maneira). Vá em frente! E obrigado pela atenção.

O que mais é útil para ler no blog
→
→
→
→
→
Inscreva-se no nosso -canal para não perder o próximo artigo! Publicamos no máximo duas vezes por semana e apenas quando necessário. Também lembramos que o provedor de nuvem corporativa Cloud4Y lançou a promoção "Nuvem FZ-152 pelo preço normal". As inscrições podem ser feitas .
Fonte: habr.com
