Vi em algumas capturas de tela (não me lembro onde na web) que o terminal pode exibir as [username@machine /]$
letras em negrito. Estou ansioso para conseguir isso também, porque sempre me vejo percorrendo saídas longas para descobrir com dificuldade a primeira linha após o meu comando.
Como posso tornar o nome do usuário etc. em negrito ou colorido?
bash
prompt
escape-characters
Benjamin
fonte
fonte
Respostas:
Você deve conseguir fazer isso definindo a
PS1
variável prompt no seu~/.bashrc
arquivo da seguinte maneira:Para torná-lo colorido (e possivelmente em negrito - isso depende se o seu emulador de terminal o ativou), você precisa adicionar códigos de cores de escape:
Aqui, tudo o que não estiver escapando entre as peças
1;91m
e0m
será colorido na1;91
cor (vermelho forte). Coloque esses códigos de escape em diferentes partes do prompt para usar cores diferentes, mas lembre-se de redefinir as cores com0m
ou você também terá saída de terminal colorida. Lembre-se de fornecer o arquivo posteriormente para atualizar o shell atual:source ~/.bashrc
fonte
1;31
e1;91
. Usando o peso normal da fonte, a faixa 90-97 fornece cores mais brilhantes que a outra.Encontre onde
PS1
está o seu conjunto.bashrc
e insira'\[\e[1m\]'
no início e\[\e[0m\]
no final.\[
e\]
são necessários para que o shell saiba que a bagunça dentro ocupa 0 espaço na tela, o que evita algum comportamento errado durante a edição de linha. Você não precisa se preocupar muito com isso.\e[
é conhecido como CSI (introdutor da sequência de controle). Você o verá usado na maioria dos códigos listados na página referenciada da Wikipedia.\e
significa o caractere de escape.CSI 1m
ativa o negrito eCSI 0m
redefine a fonte para que o restante do texto seja normal.A Wikipedia possui uma lista completa de códigos de escape ANSI que você pode usar se o seu emulador de terminal suportar.
Editar
Para portabilidade e legibilidade, você deve usar em
tput
vez de códigos de escape codificados. A única desvantagem é que atput
abordagem não funciona com terminais que suportam códigos ANSI, mas possuem bancos de dados terminfo quebrados ou ausentes, mas nesse caso o terminfo quebrado é um problema maior, já que muitos dos aplicativos de console que dependem do terminfo podem não funcionar corretamente.Aqui está um exemplo do que faço no meu
.bashrc
:Aqui está a aparência de uma versão genérica minha. O
0
é o status de saída do último comando.fonte
Este é o prompt padrão que você obtém no cygwin bash shell:
Referências:
man bash
e verifique aPROMPTING
seção.fonte
Eu uso essa função shell para obter atributos de texto no terminal:
Então, para usá-lo:
Isso me dá
[username@hostname]:cwd>
ondeusername@hostname
são negrito verde ecwd
negrito azul.fonte
~/.bashrc
?~/.bashrc
arquivo e o uso para definir meu prompt. Eu até mudo as cores dependendo do sistema em que estou.Para parecer um prompt padrão do Ubuntu, adicione
export PS1='\[\e[1;32m\]\u@\h\e[0;39m\]:\e[1;34m\]\w\e[0;39m\]$\[\e[0m\] '
no seu
~/.bashrc
.Isso produzirá o conhecido verde
user@host
(negrito), seguido por dois pontos brancos não negritos, seguido pelo diretório de trabalho em azul negrito, seguido por um$
sinal, um espaço e seu comando em letras brancas não negritas:fonte