Árvore de Natal na linha de comando

O Ano Novo está chegando, não quero mais pensar em trabalho sério.

Todo mundo está tentando decorar algo para o feriado: casa, escritório, local de trabalho... Vamos decorar alguma coisa também! Por exemplo, um prompt de linha de comando. Até certo ponto, a linha de comando também é um local de trabalho.

Em algumas distribuições já vem “decorado”:

Árvore de Natal na linha de comando

Em outros, é cinza e imperceptível:

Árvore de Natal na linha de comando

E podemos fazer, por exemplo, assim:

Árvore de Natal na linha de comando

Claro, todos os marcadores têm gostos e cores diferentes. Se tal coloração parece cafona e inadequada para você, saiba que esse ponto de vista tem todo o direito à vida. E se você também quiser adicionar um pouco do espírito de Ano Novo, leia um breve artigo de Ano Novo da Cloud4Y.

Primeiro, explicarei como a saída do terminal é “colorida”. Isso é feito usando sequências de escape. Ou mais precisamente, as sequências de código de controle do terminal ANSI/VT100. O que significa automaticamente que o seu emulador de terminal deve suportar este padrão, caso contrário o milagre do Ano Novo não acontecerá. E sim, $SHELL é considerado o seu bash.

Esses comandos são chamados de sequências de escape porque no início de cada um deles existe um caractere ASCII “escape”. Existem muitas sequências de controle e permitem, por exemplo, exibir configurações do terminal, controlar a exibição e o movimento do cursor, alterar a fonte, excluir e ocultar texto. Escolheremos uma entre todas as diversas possibilidades - alterando a cor do texto e do fundo.

Execute a sequência de código *ESC*[{attr1};...;{attrn}m
Como um símbolo fuga sua forma octal é usada, ou seja 33. Quanto aos atributos, aqui está uma pequena lista de valores possíveis:

0 Redefinir todos os atributos
1 Brilhante (maior brilho)
2 Escurecer
4 Sublinhado
5 Piscar
7 Reverter
8 Oculto (ocultar texto)

Cores de primeiro plano (cor da caneta, o texto é exibido nesta cor):
30 Preto
31 Vermelho
32 Verde
33 Amarelo
34 Azul
35 Magenta (magenta)
36 Azul-ciano)
37 Branco (белый)

Cores de fundo (cor do papel ou cor de fundo):
40 Preto
41 Vermelho
42 Verde
43 Amarelo
44 Azul
45 Magenta (magenta)
46 Azul-ciano)
47 Branco (белый)

Observe que se você agora comandar no terminal: echo 33[0;31mнекоторый текст 33[0m’

... então você previsivelmente obterá gobbledygook monocromático na saída:

Árvore de Natal na linha de comando

Por que? Porque foi necessário usar os recursos avançados do comando echo. Basta adicionar uma chave: echo -e ‘ 33[0;31mнекоторый текст 33[0m’

A saída agora parecerá correta:

Árvore de Natal na linha de comando

Resolvemos a coloração da saída para o terminal. Agora vamos ver como colorir o prompt de comando.

Isso é feito alterando a variável PS1. A variável é responsável pelo prompt da linha de comando. Sua aparência também pode ser alterada, inclusive por meio de sequências de escape. Mas há uma pequena diferença: você precisa iniciar a sequência com o símbolo “[”, e termina com o símbolo “]”, caso contrário, será enviado para o terminal.

Todas as sequências de comando possíveis são descritas em detalhes no manual do bash, então convido os leitores a escolherem por si mesmos o que preferem ver no prompt da linha de comando. Como exemplo, darei meu valor para a 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 este terrível feitiço:

[ 33[34;1m] — ativar a cor da fonte azul brilhante (segundo atributo)
t – exibir a hora atual no formato HH: MM: SS
[33[0m] – redefinir as configurações de cor da fonte
, - apenas uma vírgula (inesperado, certo?)
[33[32m] — ative a cor da fonte verde
você@l@h – exibir o nome do usuário, o número do dispositivo terminal e o nome abreviado do host, separados pelo símbolo “@”
[33[0m] — redefina as configurações de cor da fonte novamente
: - apenas dois pontos (de repente!)
[33[33m] — ative a cor da fonte amarela
W – exibe o nome do diretório atual
[33[0m] — redefina as configurações de cor da fonte novamente
, - outra vírgula (quem diria!)
[33[31m] — ative a cor da fonte vermelha
! — exibe o número do comando no terminal
[33[0m] - não se esqueça de redefinir as configurações de cor da fonte
$ — imprima “#” para root e “$” para todos os outros
n - tradução de linha. Para que? Para que o comando comece na borda esquerda da janela, e não no final do prompt da linha de comando.

Onde redefinir uma variável? O lugar mais lógico para fazer isso é ~/.bashrc.

A aparência do convite é limitada apenas pela sua imaginação. Em princípio, nada impede que você faça um prompt de linha de comando em forma de árvore de Natal usando as ferramentas descritas acima. É verdade que tal convite será muito complicado e o trabalho definitivamente não se tornará mais conveniente. A árvore de Natal pode simplesmente ser exibida acima do prompt da linha de comando ao fazer login (ainda precisamos editar ~/.bashrc). Vá em frente! E obrigado pela sua atenção.

Árvore de Natal na linha de comando

O que mais você pode ler no blog? Nuvem4Y

Configurando o topo no GNU/Linux
Pentesters na vanguarda da segurança cibernética
Startups que podem surpreender
Os travesseiros são necessários em um data center?
A casa que um robô construiu

Assine o nosso Telegram-channel para não perder o próximo artigo! Escrevemos no máximo duas vezes por semana e apenas a negócios. Lembramos também que o provedor de nuvem corporativa Cloud4Y lançou a promoção “Nuvem FZ-152 pelo preço normal”. Você pode se inscrever até 31 de dezembro.

Fonte: habr.com

Adicionar um comentário