Você alguma vez já viu algum vídeo sobre o
Linux, ou mesmo um texto onde os terminais aparecem da seguinte maneira:
[root] #
[root samba] #
[root /etc/samba] #
(root)02:57[samba] #
etc...
Como é possível?
Existe uma variável no terminal que se chama PS1, ela é a configuração de como o seu bash deve "ser". Se você digitar o comando 'set' você vai achar essa variável.
$ set | grep PS1
PS1='\u@\h:\w \$ '
Então, se você modificar a variável PS1, a forma com que seu bash aparece vai mudar! Tente digitar o comando:
$ PS1='[\u] \$ '
[user] $
Eureka!
Mais nós não queremos ficar digitando isso toda vez que logarmos no Linux. Então, vamos colocar isso no arquivo de configuração dos terminais (login shells). Eu uso Slackware, então esse arquivo é o /etc/profile, em outras distros, ele pode variar para ~/.bash_profile ou ~/.bashrc.
Nesse arquivo, /etc/profile, existe uma parte dele assim:
# Set a default shell prompt:
# PS1='`hostname`:`pwd`# '
if [ "$SHELL" = "/bin/pdksh" ]; then
PS1='! $ '
elif [ "$SHELL" = "/bin/ksh" ]; then
PS1='! ${PWD/#$HOME/~}$ '
elif [ "$SHELL" = "/bin/zsh" ]; then
PS1='%n@%m:%~%# '
elif [ "$SHELL" = "/bin/ash" ]; then
PS1='$ '
else
PS1='\u@\h:\w \$ '
fi
A penúltima linha é a que nós queremos mudar. Então, se trocarmos o valor dessa variável, todos os logins shells que iniciarmos vão ter essa configuração.
A lista de alguns parâmetros que você pode colocar é a seguinte:
- \d - a data no formato "Dia Mês Data" (ex. Tue May 26)
- \h - o seu hostname sem o grupo de trabalho
- \H - o seu hostname com o grupo de trabalho
- \s - o nome do shell
- \t - as horas no formato (24-horas) HH:MM:SS
- \T - as horas no formato (12-horas) HH:MM:SS
- \A - as horas no formato (24-horas) HH:MM
- \u - o usuário que está usando o shell
- \v - a versão do bash (ex. 3.01)
- \V - a versão + patch do bash (ex. 3.01.1)
- \w - o caminho completo do diretório atual
- \W - apenas o nome do diretório atual
- \$ - o simbolo # (caso root) ou $ (outros usuários)
A lista completa pode ser obtida digitando:
$ man bash
Você também pode colocar cores no seu shell. Para adicionar uma cor, digite:
'\e[FUNDO;ATTR;CORm \e[m'
ATTR (atributos da letra):
- 00 - Nenhum
- 01 - Negrito
- 04 - Sublinhado
- 05 - Piscar
- 07 - Inversa (Troca cor da letra por cor de fundo da letra e vice-versa)
- 08 - Oculta
COR (a cor da letra):
- 30 - Preto
- 31 - Vermelho
- 32 - Verde
- 33 - Amarelo
- 34 - Azul
- 35 - Rosa
- 36 - Azul Claro
- 37 - Branco
FUNDO (cor de fundo da letra):
- 40 - Preto
- 41 - Vermelho
- 42 - Verde
- 43 - Amarelo
- 44 - Azul
- 45 - Rosa
- 47 - Azul Claro
- 48 - Branco
A minha configuração atual do shell é a seguinte:
PS1='\e[01;31m\u\e[m \e[01;34m\W \$ \e[m'
01;31 - Vermelho em negrito
01;34 - Azul em negrito
Observações finais:
Você pode colocar qualquer texto no sua variável PS1:
PS1=' GNU/Linux \$'
Eu disse no começo que íamos mudar a variável de login shell no arquivo de configuração do bash. Para iniciar um terminal gráfico no modo login shell:
konsole --ls
xterm -ls
rxvt -si -ls
Eterm -ls
etc...
Lembre-se sempre de consultar o manual do Linux para mais informações.
Abraço galera!!!
@ SMarcell
Cara, muito legal o tutorial, gostei!
@ rafael_novello
Cara, pode parecer estranho, mas seu hostname pode estar desconfigurado. Tente digitar o comando como root:
# hostname "novo_hostname" (sem aspas)
Reloge, e o problema deve estar resolvido.
Se nao funcionar tente refazer a PS1, dessa forma:
# PS1='\h:\w \$'
Note que nao pode haver espaçõ entre o PS1 e o =, e entre o = e a '
Espero ter ajudado, e qualquer coisa posta denovo,
Enzo
[]'s