O local certo para se aprender Linux no Brasil, a sua fonte de artigos, dicas, tutoriais, noticias, howto, reviews e muito mais.

Alterando o Prompt do Bash

Arquivado em Artigos <> Sistema
Alterando o Prompt do Bash
Alterar prompt do bash no sistema operacional Linux é bem simples e de fácil configuração, aprenda a personalizá-lo.

Introdução

Muitas pessoas me perguntam como eu fiz pra configurar os prompt(PS1) que utilizo, basicamente, instalo fontes vga e uso um script chamado bashprompt, para facilmente alternar entre diversos formatos de prompt.A utilização de fontes vga possibilita a utilização de caracteres semi-gráficos utilizados nos prompt (porém sem acentuação), dividi o tutorial em 3 partes explicando primeiramente algumas variáveis, detalhes utilizados/fornecidos pelo prompt do bash.

1 - Prompt

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üência de controle do terminal
] Fim da seqüência 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, como o /etc/profile). 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

Com isso o prompt seria algo como (o diretório é apenas um exemplo):

[usuario@maquina /local]#

Você poderá também colorir o prompt, adicionando na seqüência 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 ?33[ e terminar com um m minúsculo. A sintaxe completa deve ficar assim:

[?33[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 CaracteresFundo
Preto3040
Vermelho3141
Verde3242
Amarelo3343
Azul3444
Roxo3545
Ciano3646
Cinza3747

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:

[?33[0;40;32m] > deixa o caracter verde em fundo preto.
[?33[1;47;33m] > deixa o caracter amarelo brilhante em fundo cinza.
[?33[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="253u@h273 $ "

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

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

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

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

Obs:
Se você quiser desativar as cores, use o código [?33[0m].
Use também o código [?33[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 [?33[0m] entre cada definição de cor.

Consulte a página manual do bash para mais informações.

Agora veja um exemplo do arquivo /etc/bashrc:

# /etc/bashrc
Vermelho="[?33[31m]"
Verde="[?33[32m]"
Amarelo="[?33[33m]"
Ciano="[?33[36m]"
Branco="[?33[37m]"
Normal="[?33[0m]"
PS1="$Normal$Verde[$Amarelou$Vermelho@$Amareloh$Verde:Cianow$Verde]$Branco$ $Normal"

bem estes sao os conceitos basicos, veja que e mencionado o arquivo /etc/bashrc, mas pode ser utilizado /etc/profile , o ~/.bash_profile e/ou o ~/.bashrc, pra configurar o prompt (PS1), vamos agora a instalacao das fontes vga.

2 - Fontes vga

A instalação sera feita como root.

Primeiramente copie as fontes para o dir /usr/X11R6/lib/X11/fonts/misc.
# cp /path/das/fontes_descompactadas/* /usr/X11R6/lib/X11/fonts/misc

Obs: Pode variar este diretório de fontes conforme a distribuição.

"entre" no dir para o qual foi copiada as fontes:
# cd /usr/X11R6/lib/X11/fonts/misc

depois execute o comando:
# mkfontdir

e depois se estiver no X:
# xset fp rehash.

senão inicie um X :
# startx

Se sua distribuicao usa xfs, voce precisara restartar o server xfs, por examplo:
/etc/rc.d/init/d/xfs restart após fazer o rehash das fontes.

U S A G E
----------------------------------------------------------------------------
Para usar estas fontes em um terminal (rxvt, Eterm, aterm) no X-Window
utilize estes comandos:
Eterm -F fontname
xterm -fn fontname
aterm -fn fontname
nxterm -fn fontname

3 - bashprompt

Com o bashprompt poderemos facilmente alternar entre vários modelos de prompt para os terminais.

Escolha e baixe o bashprompt de sua preferência em http://gilesorr.com/bashprompt/prompts/

Depois copie /bin/bashprompt

links:
http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/
http://gilesorr.com/bashprompt/

Esse texto não possuia autoria.

Comentários

Romulo Pinheiro

Muito bom esse material, é algo simples e bem direto, o bom também é que isso é algo que quase ninguém conhece e divulgação de novidade é sempre bem vindo. Valeu!

Envie seu comentário
 
 
Copyright © Sputnix.com.br, Seja Livre, Use Linux