Customizando o BASH
Dica publicada em Linux / Configuração
Customizando o BASH
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:
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:
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):
COR (a cor da letra):
FUNDO (cor de fundo da letra):
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!!!
[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
# 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
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!!!