Pesquisar este blog

domingo, 30 de maio de 2010

Como alterar o prompt no BASH

Para alterar a string do prompt do shell (Bash) basta inserir no arquivo /etc/bashrc uma seqüência de caracteres especiais.

Os caracteres são decodificados da seguinte maneira:

\d A data atual no formato "Dia_da_semana Mês Dia"
\h Nome da máquina até o primeiro . (ponto)
\n Nova linha
\s Nome do shell
\t A hora atual no formato de 24 horas hh:mm:ss
\u O nome do usuário atual
\w Caminho completo do diretório de trabalho atual
\W Nome do diretório atual
\! O número do comando no histórico
\# O número do comando na sessão atual do shell
\$ Caractere que diferencia um usuário comum do super-usuário
\nnn Caracter correspondente ao número octal nnn
\\ Uma barra
\[ Inicia uma seqüencia de caracteres que não serão impressos na tela para poder incluir uma seqüencia de controle do terminal
\] Fim da seqüencia de caracteres que não serão impressos

Existem vários tipos de prompt, os mais usados são o primário e o secundário,
definidos nas variáveis PS1 e PS2.
O prompt primário é para a entrada de um comando e o secundário para quando for preciso complementar um comando.

Como já dito, esta variável deve ser definida no arquivo /etc/bashrc (há outros arquivos que podem ser usados também).

Se você quiser alterar o prompt de um usuário somente,  copie o arquivo /etc/bashrc para /home/usuario/.bashrc e edite então este arquivo.

Veja um exemplo de uma definição do prompt primário:

PS1="[\u@\h \W]\\$ "
export PS1

Ficaria assim  =>  [usuario@maquina /local]#

Você poderá também colorir o prompt, adicionando na seqüencia os códigos de cores ANSI.

Estes códigos devem ser adicionados como caracteres que não serão impressos, ficando entre o \[ e o \].

Além disso os códigos devem começar com \033[ e terminar com um m minúsculo.

A sintaxe completa deve ficar assim => \[\033[Z;YY;XXm\]

Onde Z é o estilo dos caracteres, YY é a cor de fundo e XX a cor dos caracteres.

Veja a tabela de cores e estilos:

Cores Caracteres Fundo

Preto 30 40
Vermelho 31 41
Verde 32 42
Amarelo 33 43
Azul 34 44
Roxo 35 45
Ciano 36 46
Cinza 37 47

Estilo dos Caracteres

Normal 0
Bold 1 Dá brilho as cores
Undescore 4
Blink 5 Pisca-pisca
Inverse 7 Inverte cor de fundo
Concealed 8

Por exemplo:

\[\033[0;40;32m\] > deixa o caracter verde em fundo preto.

\[\033[1;47;33m\] > deixa o caracter amarelo brilhante em fundo cinza.

\[\033[5;40;36m\] > deixa o caracter ciano piscando em fundo preto.

Veja então alguns exemplos de prompt:

export PS1="Data: \d Hora: \t ->"

export PS1="\253\u@\h\273 \$ "

export PS1="\[\033[1;40;32m\]\u\[\033[0;40;33m\]@\[\033[1;40;31m\]\h\  [\033[0m\]\\$"

export PS1="\[\033[1;44;37m\]\253\[\033[1;44;32m\]\u\[\033 [1;44;37m\]@\[\033[1;44;33m\]\h\[\033[1;44;37m\]:\[\033[1;44;36m\] \w\[\033[1;44;37m\]\273\[\033[0m\]\\$ "

export PS1="\[\033[0;44;37m\]\d \t\[\033[0m\] \n\[\033[0;40;32m\]\s\[\033[1;40;37m\]:\[\033[1;40;36m\]\w \[\033[0m\]\\$ "

export PS1="\[\033[0;44;37m\]\d \t\[\033[0;40;32m\]\s\[\033[1;40;37m\]:\[\033[1;40;36m\]\w \[\033[0m\]\\$ "

Obs:
Se você quiser desativar as cores, use o código \[\033[0m\].
Use também o código \[\033[0m\] antes de adicionar uma nova linha ao prompt.

Os códigos das cores não tem ordem certa, mas é recomendável usar na ordem Z;YY;XX para que não precise usar o código \[\033[0m\] entre cada definição de cor.

Agora veja um exemplo do arquivo /etc/bashrc:

# /etc/bashrc

Vermelho="\[\\033[31m\]"
Verde="\[\\033[32m\]"
Amarelo="\[\\033[33m\]"
Ciano="\[\\033[36m\]"
Branco="\[\\033[37m\]"
Normal="\[\\033[0m\]"

PS1="$Normal$Verde[$Amarelo\u$Vermelho@$Amarelo\h$Verde:

$Ciano\w$Verde]$Branco\\$ $Normal"

Texto retirado de : http://www.linuxnarede.com.br/artigos/fullnews.php?id=195

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.