Desenvolvimento

16 jan, 2017

Como personalizar o prompt de comandos do Bash

Publicidade

O bash (Bourne-again shell) é um interpretador de comandos que funciona como um tradutor entre o sistema operacional e o usuário. Foi liberado em 1989, é mantido pelo projeto GNU e hoje em dia está presente na maior parte das distribuições Linux. O bash, além de muito eficiente, é altamente configurável. Hoje vamos aprender como alterar a estrutura do prompt de comandos.

Para exemplificar, vou utilizar como exemplo o prompt de comandos do bash na distribuição Ubuntu. Por padrão, na minha máquina, o prompt de comando segue o seguinte formato:

$ <nome_do_usuário>@<máquina>:<diretório>lt;espaço>

Esta estrutura é definida pela variável de ambiente PS1. Se executarmos o comando echo nesta variável ou procurá-la através do comando env, veremos que o valor que define esta estrutura é algo semelhante a isto:

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$

Como se trata de uma variável de ambiente, podemos alterá-la para estruturá-lo ao nosso gosto. Por exemplo, se alterarmos a variável PS1 para ter o valor “seu comando >”, o nosso bash ficará assim:

Para não termos que ficar descobrindo e nem decorando como estruturar as informações no prompt de comando, podemos fazer uso do site http://bashrcgenerator.com/.

Ao abrir, vemos que o site é dividido em quatro partes. No primeiro quadrante, temos uma série de caixas com várias opções de informações que podem ser exibidas. Elas representam as informações que podemos estruturar no nosso prompt. Para selecionar uma delas, basta arrastar até o segundo quadrante.

Uma vez que você tenha arrastado um item, o terceiro e o quarto quadrante são preenchidos automaticamente. O terceiro mostra uma prévia de como seu prompt vai ficar. O quarto gera o código que é necessário executar no seu bash para que ele fique com a estrutura selecionada.

Repare que neste exemplo, para exibir somente o hostname no prompt, é necessário executar o comando export PS1=”\H\[$(tput sgr0)\]”. Neste caso, o resultado é:

Mas note que se abrirmos um novo bash, a configuração se perde. Isso acontece porque a configuração fica armazenada somente ao bash em que foi executado. Para que ele se torne padrão em todas as instâncias, é necessário copiar o comando e inserir no final do arquivo oculto .bashrc localizado na sua home (se ele não existir, basta criá-lo).

Feito isso, sua configuração sempre será lida e executada toda vez que o bash for inicializado.