pt.phhsnews.com


pt.phhsnews.com / Como Personalizar (e Colorir) Seu Aviso de Bash

Como Personalizar (e Colorir) Seu Aviso de Bash


A maioria das distribuições de Linux configura o prompt de Bash para parecer comusername @ hostname: directory $. Mas você pode configurar o prompt do Bash para conter o que quiser e até mesmo escolher as cores que quiser.

As etapas de exemplo aqui foram executadas no Ubuntu 16.04 LTS. O processo deve ser o mesmo em outras distribuições Linux, embora o prompt Bash padrão e as configurações no arquivo .bashrc possam ser um pouco diferentes.

Onde a Variável Prompt é Armazenada

Sua configuração de prompt do Bash é armazenada em seu usuário arquivo .bashrc da conta, que está em~ / .bashrc. Portanto, se seu nome de usuário for bob, o arquivo estará em/home/bob/.bashrc.

Você pode abrir o arquivo para visualizar a variável atual do Bash. Usaremos o nano como nosso editor de texto de exemplo, embora você também possa usar o vi, o emacs ou qualquer outro editor de texto com o qual se sinta confortável. Abra um Terminal e execute:

nano ~ / .bashrc

Role para baixo até a seçãoPS1 =. A primeira variável parece bastante complicada porque inclui informações de cores - explicaremos isso mais tarde. A segunda variável, sem informações de cor, é a seguinte:

$ {debian_chroot: + ($ debian_chroot)}  u @  h:  w  $

Isso ainda é um pouco complicado devido ao$ {debian_chroot: + ($ debian_chroot)}bits. Estes apenas dizem ao Bash para informá-lo se você estiver usando um ambiente chroot do Debian e normalmente não será mostrado. Ignorando esses, aqui está a estrutura padrão da variável de prompt Bash:

 u @  h:  w  $
uindica seu nome de usuário,@indica o sinal @, hindica o nome do host (nome do computador),:indica o caractere:, windica o diretório de trabalho e $indica um $ se você é uma conta de usuário normal ou # se você é root. Então, colocando tudo isso junto, você obtémusername @ hostname: working_directory $.

Para alterar seu prompt do Bash, você só precisa adicionar, remover ou reorganizar os caracteres especiais na variável PS1. Mas há muito mais variáveis ​​que você pode usar do que as padrão.

Deixe o editor de texto para agora em nano, pressione Ctrl + X para sair. Mostraremos como experimentar variáveis ​​antes de realmente criar uma nova em seu arquivo .bashrc

Como criar um prompt de bash personalizado

A configuração do prompt do Bash é armazenada na variável PS1. Para salvar o conteúdo da variável PS1 em uma nova variável, execute o seguinte comando:

DEFAULT = $ PS1

Agora você pode definir a variável PS1 com valores diferentes para experimentar. Por exemplo, a primeira linha aqui definiria seu prompt como um prompt básico "user $", enquanto o segundo configuraria seu prompt para um prompt básico "user: working_directory $".

PS1 = " u  $" PS1 = " u:  w  $"

Se você quiser voltar ao seu prompt padrão, basta executar o seguinte comando:

PS1 = $ DEFAULT

O Bash será restaurado para o prompt padrão, obrigado para o fato de que você salvou essas configurações padrão anteriormente. Observe que quaisquer alterações feitas aqui são apenas temporárias para a sessão atual do Bash, para que você possa sempre sair e fazer login novamente ou fechar e reabrir a janela do terminal para voltar ao prompt padrão. Mas a linha acima torna possível voltar facilmente ao prompt padrão do Bash sem o incômodo de sair ou fechar uma janela.

Você pode adicionar qualquer caractere ou texto à variável. Então, para prefixar o prompt padrão com "Hello World", você poderia usar:

PS1 = "Olá Mundo  u @  h:  w  $"

Agora que você tem o básico, você só precisa saber o que são todos os caracteres especiais. Você provavelmente não se importará com muitos deles, mas aqui está a lista completa como aparece no manual do Bash:

  • Um caractere de campainha: a
  • A data, no formato “Data de semana do mês” ex .: “Ter 26 de maio”): d
  • O formato é passado para strftime (3) e o resultado é inserido na string de prompt; um formato vazio resulta em uma representação de hora específica de localidade. As chaves são necessárias: D {format}
  • Um caractere de escape: e
  • O nome do host, até o primeiro '.': h
  • O nome do host: H
  • O número de trabalhos atualmente gerenciados pelo shell: j
  • O nome da base do nome do dispositivo terminal do shell: l
  • Uma nova linha: n
  • Um retorno de carro: r
  • O nome do shell, o nome de base de $ 0 (a parte seguinte à barra final): s
  • A hora, no formato de 24 horas HH: MM: SS: t
  • A hora, em 12 horas HH : Formato MM: SS: T
  • A hora, no formato de 12 horas am / pm: @
  • A hora, no formato de 24 horas HH: MM: A
  • O nome de usuário do usuário atual: u
  • A versão do Bash (por exemplo, 2.00): v
  • O lançamento do Bash, versão + patchlevel (por exemplo, 2.00. 0): V
  • O diretório de trabalho atual, com $ HOME abreviado com um til (usa a variável $ PROMPT_DIRTRIM): w
  • O nome de base de $ PWD, com $ HOME abreviado com a til: W
  • O número do histórico deste comando:!
  • O número do comando deste comando: #
  • Se o uid efetivo é 0 , #, caso contrário $: $
  • O caractere cujo código ASCII é o valor octal nnn: nnn
  • Uma barra invertida:\
  • Iniciar uma seqüência de não caracteres de impressão. Isso poderia ser usado para incorporar uma seqüência de controle de terminal no prompt: [
  • Encerrar uma seqüência de caracteres não imprimíveis:]

Então, se você deseja adicionar a data e hora Para seu prompt de Bash e colocar o diretório de trabalho no comando em uma segunda linha, você pode usar a seguinte construção:

PS1 = "[ d  t]  u @  h  n  w  $"

Os colchetes aqui não são necessários, mas ajudam a dividir visualmente as coisas e tornam a linha mais fácil de ler. Como nós cobrimos anteriormente, você pode adicionar qualquer texto ou caracteres normais à variável que você gosta, então sinta-se livre para usar o que for melhor para você.

Existe um truque mais poderoso que você deve conhecer: Você pode adicionar a saída de qualquer comando. para o prompt. Sempre que o prompt aparecer, o Bash executará o comando e preencherá as informações atuais. Para fazer isso, basta incluir qualquer comando que você queira executar entre dois caracteres'. Isso não é um apóstrofo - esse é o sotaque grave, que aparece acima da tecla Tab no seu teclado.

Por exemplo, digamos que você queira ver a versão do kernel do Linux no prompt. Você pode usar uma linha como a seguinte:

PS1 = " u @  h em 'uname -s -r'  w  $"

Como outro exemplo, digamos que você queira ver o tempo de atividade do sistema e load average, conforme exibido pelo comandouptime. Você poderia usar a seguinte construção, que coloca o tempo de atividade em sua própria linha antes do restante do prompt

PS1 = "('uptime')  n  u @  h:  w $"

Sinta-se livre para experimentar com diferentes caracteres especiais e comandos para montar o seu prompt de comando ideal

Como adicionar cores ao seu prompt de bash

Uma vez que você descobriu o seu prompt preferido, você pode adicionar cores a ele. Isso é realmente muito simples, mas faz a variável parecer muito confusa e complicada se você não entender o que está vendo.

Por exemplo, a variável de prompt de cor padrão anterior era:

$ {debian_chroot : + ($ debian_chroot)}  [ 033 [01; 32m ]  u003  h  [ 033 [00m ]:  [ 033 [01; 34m ]  w  [ 033 [00m  ]  $

Ou, removendo os bits debian_chroot mais uma vez:

 [ 033 [01; 32m ]  u003  h  [ 033 [00m ]:  [ 033 [01; 34m ]  w  [ 033 [00m ]  $

Esta é na verdade apenas a variável u @ h: w $anterior, mas com informações de cores. Realmente, podemos dividi-lo em algumas seções:

 [ 033 [01; 32m ]   u @  h   [ 033 [00m ] :   [ 033 [01; 34m ]   w   [ 033 [00m ]   $ 

A primeira seção é a u @ hbit, precedido por informações de cor que o tornam verde. O segundo é o caractere:, precedido por informações de cor que removem qualquer cor. O terceiro é o bit w, precedido por informações de cor que o tornam azul. O quarto é o bit $, precedido por informações de cor que remove qualquer coloração.

Depois de entender como construir suas próprias tags de cor, você pode adicionar as cores que quiser em qualquer seção do seu texto. Bash prompt que você gosta.

Veja o que você precisa saber: Você deve incluir as informações do código de cores inteiro entre os [e]s. Dentro da tag, você deve começar com 033 [ou e [para indicar ao Bash que essa é uma informação de cor. 033 [e e [fazem a mesma coisa. e [é mais curto, por isso talvez seja mais conveniente usar, mas usaremos 033 [aqui, pois corresponde ao que é usado por padrão. No final da tag, você deve terminar comm para indicar o final de uma tag de cor.

Quebrando isso, aqui está como cada tag de cor será. A única diferença é a informação que você adiciona no lugar de COLOR para definir a cor atual:

 [ 033 [ COLOR  m ]

Bash permite que você altere a cor do texto em primeiro plano, adicione atributos como “negrito” ou “sublinhado” ao texto e defina uma cor de fundo.

Aqui estão os valores para texto de primeiro plano:

  • Preto: 30
  • Azul: 34
  • Ciano: 36
  • Verde: 32
  • Roxo: 35
  • Vermelho: 31
  • Branco: 37
  • Amarelo: 33

Por exemplo, como o texto roxo é o código de cor 32, você usaria [ 033 [ 32 m ]para texto em roxo.

Você também pode especificar um atributo para o texto. Este atributo deve ser adicionado antes do número da cor, separado por um ponto e vírgula (;). O texto com esses atributos terá uma aparência diferente em emuladores de terminal diferentes.

Estes são os valores dos atributos de texto:

  • Texto normal: 0
  • Texto em negrito ou claro: 1 (Depende do emulador de terminal). > Dim Text: 2
  • Texto sublinhado: 4
  • Texto intermitente: 5 (Isso não funciona na maioria dos emuladores de terminal.)
  • Texto invertido: 7 (Inverte as cores de primeiro e segundo plano, para que você veja texto preto em um fundo branco se o texto atual for texto branco em um fundo preto.)
  • Texto oculto: 8
  • Você realmente não precisa incluir o atributo de texto normal. De qualquer forma, esse é o padrão

Por exemplo, como o texto vermelho é o código 31 e o texto em negrito é o código 1, você usaria

[ 033 [1; 31 m ] para texto em negrito em vermelho.Você também pode especificar uma cor de segundo plano, mas não pode adicionar um atributo a uma cor de segundo plano.

Veja os valores para cores de segundo plano:

Segundo plano preto: 40

  • Fundo azul: 44
  • Fundo ciano: 46
  • Fundo verde: 42
  • Fundo roxo: 45
  • Fundo vermelho: 41
  • Fundo branco: 47
  • Fundo amarelo: 43
  • Por exemplo, como um plano de fundo azul é o código 44,

[ 033 [44 m ] especificaria um plano de fundo azul.Você pode especificar as cores de primeiro plano e de plano de fundo Tag. Por exemplo, 42 representa um fundo verde e 31 representa texto vermelho. Assim, para tornar o prompt padrão tornar-se texto vermelho em um plano de fundo verde, você usaria:

PS1 = " [ 033 [

42  m ]  [ 033 [ 31  m ]  u @  h:  w  $ " Apenas especificamos uma única cor de plano de fundo e uma única cor de texto de primeiro plano aqui, que começa no início do prompt e é aplicada a todo o texto no prompt. No entanto, você pode especificar quantas tags de cor desejar na variável para colorir seções diferentes da sua solicitação como desejar.

As cores de texto de fundo e de primeiro plano continuam após o prompt, a menos que você especifique o código de cores . Você também pode usar essa tag dentro da variável para redefinir a formatação de volta para o padrão em algum ponto do seu prompt. Por exemplo, a linha a seguir terminaria toda a coloração antes do caractere

$.PS1 = " [ 033 [

42  m ]  [ 033 [ 31  m ]  u @  h:  w \ [ 033 [ 00  m ]  $ " Como definir seu novo prompt padrão

Depois que você Você está experimentando com cores, você deve ter um prompt Bash que você gosta na sessão atual. Mas você provavelmente quer tornar esse novo prompt permanente, então ele é usado automaticamente em todas as suas sessões Bash.

Para fazer isso, você só precisa alterar o conteúdo da variável PS1 no arquivo .bashrc, que vimos anteriormente.

Abra o arquivo .bashrc em seu editor de texto preferido, assim:

nano ~ / .bashrc

Role para baixo e localize a seção PS1 =. Apenas substitua a variável padrão por sua variável customizada. Você provavelmente vai querer deixar o

$ {debian_chroot: + ($ debian_chroot)}sozinho, no entanto, eles não aparecerão a menos que você esteja em um ambiente chroot, de qualquer forma.Digite sua variável colorida PS1 sob o

se [" $ color_prompt "= sim]; então linha. Insira a variável sem cores sob a linhaelse.Salve o arquivo e feche seu editor de texto. Por exemplo, para salvar o arquivo em nano, pressione Ctrl + O, pressione Enter e pressione Ctrl + X para sair.

Na próxima vez em que você iniciar um novo Bash shell, por exemplo, fazendo login no terminal ou abrindo uma nova janela de terminal - você verá seu prompt personalizado.


Dispositivos Eletrônicos com Dano de Umidade Elevada?

Dispositivos Eletrônicos com Dano de Umidade Elevada?

Fazer com que seu dispositivo eletrônico favorito seja encharcado é sempre uma experiência angustiante, mas os altos níveis de umidade também podem danificar os dispositivos eletrônicos? A postagem de perguntas e respostas do SuperUser de hoje tem a resposta para a pergunta de um leitor preocupado. A sessão de Perguntas e Respostas vem para nós, cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas conduzido pela comunidade.

(how-top)

O que você pode fazer com o Bixby da Samsung?

O que você pode fazer com o Bixby da Samsung?

Parece que toda empresa de tecnologia sob o sol está trabalhando em um assistente controlado por voz para enfrentar os gostos do Assistente do Google, o Alexa da Amazon, e o Siri da Apple. A versão de marca da Samsung recebe um impulso da enorme participação de mercado de smartphones da empresa e uma inclusão um pouco menos que graciosa de um botão de hardware extra em seus modelos mais recentes.

(how-top)