Escolar Documentos
Profissional Documentos
Cultura Documentos
INTRODUÇÃO
O que é o Bash?
O nome Bash significa Bourne Again Shell, um produto GNU. Ele é a interface padrão de linha de
comando utilizada praticamente em todas as distribuições GNU/Linux
(http://www.vivaolinux.com.br/linux/). Ela oferece interatividade com o usuário, oferecendo edição
de linha de comando, complementação de comandos histórico, bem como vários outros recursos
que apresentaremo mais abaixo.
Muitos usuários Linux (http://www.vivaolinux.com.br/linux/) tem seu console em apenas uma cor
(normalmente cinza), onde estão contidas informações como seu nome de usuário, o nome da
máquina onde ele está trabalhando e alguma informação sobre o diretório atual. Estas são
informações úteis, mas você pode fazer muito mais com o prompt: vários tipos de informações
podem ser mostradas, assim como o número do terminal onde se está trabalhando, hora, data,
número de usuários conectados, uptime, etc e ainda se ter um prompt colorido, deixando o visual
mais agradável para se trabalhar.
Também é possível que se coloque informações na barra de títulos do Xterm para que forneça
alguma informação.
APARÊNCIA DO PROMPT
A aparência do prompt é controlada pela variável PS1. Continuações de comando são indicadas
pela variável PS2. Existem ainda as variáveis PS3 e PS4, mas vamos restringir as modificações à
variável PS1, que é a que realmente nos interessa para as modificações propostas no artigo.
Se quiser saber mais sobre as variáveis PS2, PS3 e PS4, veja a man page do bash com o
comando:
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=6111 1/9
02/02/2015 Prompt Bash avançado [Artigo]
$ man bash
Antes de iniciarmos é bom que se faça um backup da sua variável PS1, pois as modificações a
seguir serão efetuadas imediatamente. Então caso você não goste da modificação que foi feita,
poderá retornar o formato anterior sem que se tenha que fechar e abrir novamente o terminal
(Xterm) ou reiniciar o computador (console).
Para isso apenas vamos criar uma variável de ambiente com o valor da variável PS1 com o
comando:
$ PS1BKP=$PS1
Assim, sempre que precisar voltar à variável PS1 anterior basta usar o comando:
$ PS1=$PS1BKP
PS1=parâmetros
[vodooo@linux]$ PS1=$
$ls
bin mail
$
Para demonstrar o melhor jeito e experimentando com os parâmetros básicos, veja que logo após
você digitar o comando para mudar a variável e teclar enter, o prompt é automaticamente
atualizado.
$PS1="$ "
$ ls
bin mail
$
Veja que apenas adicionamos um espaço em branco ao final da variável para que fique mais
legível o comando que estamos digitando.
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=6111 2/9
02/02/2015 Prompt Bash avançado [Artigo]
Existem vários caracteres especiais que podemos adicionar ao prompt. Segue a lista de caracteres
retirados da man page do Bash 2.04.
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=6111 3/9
02/02/2015 Prompt Bash avançado [Artigo]
Você notará que ao fechar o terminal ou após uma reinicialização do sistema o seu prompt voltará
ao padrão da distribuição.
Isso acontece por que os arquivos de inicialização do Linux setam essa variável na inicialização,
então o que temos que fazer e alterar esse arquivo para deixarmos essa variável como queremos.
Mas este arquivo nem sempre é o mesmo de uma distribuição para outra. Os arquivos mais
comuns para que seja feita esta alteração são: /etc/profile, /etc/bashrc. ~/.bash_profile e /.bashrc.
Muitas das mudanças feitas no prompt do Bash são feitas usando este tipo de caractere, assim
como mudar a cor do prompt, mudar a barra de títulos do Xterm e mover o cursor para um ponto
desejado.
Agora com o uso de caracteres não imprimíveis irei mudar a cor do prompt deixando o sinal de
maior (>) com uma cor amarela.
ALIASES E FUNÇÕES
Aliases e funções são utilizados para incrementar alguns recursos ou simplesmente simplificar
comandos mais complexos.
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=6111 4/9
02/02/2015 Prompt Bash avançado [Artigo]
Exemplo de alias:
O alias acima diz que quando digitarmos o comando "cdon" será executado o comando "mount
/dev/hdc /mnt/cdrom".
Funções são utilizadas para se executar comandos mais complexos, que necessitem de mais de
uma linha para serem executados.
Exemplo de função:
function lf
{
ls color=tty classify $*
echo "$(ls l $* | wc l) files"
}
Assim, quando eu digitar "lf", tudo o que está entre as chaves será executado.
COMANDOS EXTERNOS
PROMPT_COMMAND
O que acontece no exemplo acima é que logo após cada comando, o conteúdo da variável
PROMPT_COMMAND é executado, neste caso o comando "date +%H:%M", que mostra a hora e
os minutos atuais separado pelo caractere :.
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=6111 5/9
02/02/2015 Prompt Bash avançado [Artigo]
Repare que este comando não faz mais parte do prompt, pois o comando é executado após o
prompt ser mostrado, mas isso pode ser resolvido adicionandose o comando "echo n", que faz
com o a hora seja exibida na mesma linha do prompt.
Obviamente, você não deve usar comandos que gerem resultados longos ou que demorem muito
tempo para serem executados, pois este será executado cada vez que o prompt aparecer, ou seja,
quando se abre um terminal ou ao final de cada comando digitado.
Repare que é necessário a barra invertida antes do $ para que seja reconhecido como comando o
que estiver entre parênteses.
#!/bin/bash
# lsbytes mostra a quantidade de bytes da listagem de um diretório listing
tbytes=0
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=6111 6/9
02/02/2015 Prompt Bash avançado [Artigo]
done
COLORINDO O TERMINAL
Exemplo:
Veja que após o código da cor (neste caso o 31 para a cor vermelha é necessário que se coloque a
letra "m" logo após o código da cor.
O que acontece neste exemplo acima é que quando se coloca a cor vermelha no prompt, qualquer
texto que você digitar continuará em vermelho.
Veja que agora adicionamos mais um pedaço de código, desta vez no final da PS1.
Este código "\[\033[0m\]" faz com o a cor do texto no final do prompt volte ao normal.
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=6111 7/9
02/02/2015 Prompt Bash avançado [Artigo]
Preto 30
Vermelho 31
Verde 32
Marrom 33
Azul 34
Existem ainda várias outras de cores que não serão listadas aqui.
Você pode também usar fontes em negrito. Para isso adicione o caractere 1 antes ou após o
código da cor separado por ; (ponto e vírgula).
Exemplo:
Você pode também definir uma cor de fundo. Para isto adicione um número de cor de fundo antes
do código de cor separado por ; (ponto e vírgula).
Exemplo:
CONCLUSÃO
Existem ainda muitas outras funcionalidades do bash que não foram descritas aqui, assim como
checar o terminal em uso atualmente, contagem de processos sendo rodados a partir do terminal
em uso, o tempo que o computador está ligado, o número total de processos sendo rodados na
máquina, informações sobre baterias de laptop's, informações sobre chegada de email, entre
outras funções.
Mas deixo estas opções a cargo de vocês para poderem exercitar seus conhecimentos.
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=6111 8/9
02/02/2015 Prompt Bash avançado [Artigo]
Voltar (verArtigo.php?codigo=6111)
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=6111 9/9