PostHeaderIcon Aproveitando melhor o seu histório de comandos de uma shell bash.

Nos últimos dias, navegando pela Internet, deparei-me com uma pequena mas interessante dica publicada no site da Linux Journal, sobre um pequeno e útil recurso para otimizar a utilização do histórico de comandos da shell bash, mais popular em distribuições GNU/Linux. Aproveitando a oportunidade, apenas comento, com minhas próprias palavras e em bom português o conteúdo dessa dica, acrescentando algumas outras informações.

Uma shell bash possui muitos recursos interessantes apesar de que muitos administradores não costumam utilizar nada além  do básico. Dentre esses recursos, um dos que podem ajudar bastante na produtividade e no dia-a-dia é o histórico que permite com que se consulte, recupere, corrija e execute novamente comandos utilizados em momentos anteriores. Esse recurso, entretanto, vai muito além de simplesmente utilizar as setas pra cima e pra baixo do teclado para rastreá-lo.

É possível, por exemplo, que cada usuário controle o tamanho do histórico. Por padrão, na maioria das distribuições GNU/Linux, por exemplo, o histórico costuma preservar os últimos 500 comandos. Para consultar o valor corrente para o seu usuário, basta consultar o valor da variável HISTSIZE:

$ echo $HISTSIZE

Muitas vezes, pode ser útil ter um histórico de comandos maior do que esse padrão. Particularmente, costumo manter os últimos 10000 comandos. Para isso, basta alterar o valor dessa variável:

$ HISTSIZE=10000

Os comandos executados costumam ser salvos no arquivo /home/usuario/.bash_history. Para se certificar disso, basta consultar o valor da variável HISTFILE:

$ echo $HISTFILE

Novamente, alterando o valor da variável, é possível definir um outro arquivo que deve, a partir de então, ser utilizado como repositório dos seus comandos:

$ HISTFILE=/home/jansen/.my_command_history

SImples, não? Esses talvez sejam os mais conhecidos dentre os usuários adeptos à linha de comando.

Outros dois recursos interessantes podem ser configurados a partir da variável HISTCONTROL. O primeiro permite que o histórico ignore comandos duplicados que costumam consumir tamanho razoável denro do seu histórico. Para configurá-lo, basta inserir na variável HISTCONTROL a seguinte opção:

$ HISCONTROL="ignoredups"

A outra opção permite que o histórico ignore os comandos que iniciam com espaços. Antes que você pergunte para que essa funcionalidade seria útil: basta inserir um ou mais espaços em branco antes de executar aqueles comandos que você não deseja que consumam espaço no seu histórico. Essa opção pode ser utilizada por meio do seguinte valor inserido em HISTCONTROL:

$ HISTCONTROL="ignorespace"

Para utilizar ambas as alternativas, você tem duas opções:

$ HISTCONTROL="ignorespace:ignoredups"

ou ainda

$ HISTCONTROL="ignoreboth"

Para fazer com que qualquer uma das configurações anteriores fique permente em toda bash que você abrir por meio de um terminal, basta inserir as configurações e os "exports" das variáveis no arquivo .bashrc que costuma ficar dentro do diretório home de cada usuário:

/home/jansen/.bashrc: 

HISTSIZE=10000

HISTFILE=/home/jansen/.my_command_history

HISTCONTROL=ignoreboth

export HISTSIZE HISTFILE HISTCONTROL

A dica original na qual estou me baseando pode ser acessada AQUI.

 

 

Leave a Reply