Otimizando a busca no history

June 4th, 2008

Creio que todos linuxmaníacos sabem que os seus últimos comandos executados no bash são salvos em um arquivo na sua pasta home.
Normalmente o default são os últimos 500 comandos, e são salvos no arquivo “~/.bash_history”.

Então, com isso, como a gente pode buscar um comando que já foi executado?
Existem diversas formas, os mais comuns são, clicando nas teclas de orientação (DOWN e UP), clicando CRTL+R no terminal ou então dando um grep no comando history.
Uma coisa que nem todo mundo sabe, é que dentro bash existem 2 variáveis chamadas history-search-backward e history-search-forward, que com elas pode usar da seguinte forma.
Supondo que você sabe que dentro do seu history existe o comando “find . -name blog.txt”, mas o comando está lá no meio do seu history. Basta você digitar o inicio do comando, por exemplo “find” e clicar “Page UP”, e com isso ele vai exibir um a um todos os comandos que começam com “find”, simplificando a sua busca.
E clicando “Page Down”, vai exibir os comandos anteriores, caso você tenha tenha clicado “Page UP” várias vezes.

Como eu configuro?
Fácil,
É só abrir em qualquer editor como root o arquivo “/etc/inputrc”, e descomentar as linhas:
“\e[5~”: history-search-backward
“\e[6~”: history-search-forward
O código “\e[5~” é a tecla “Page UP” e o código “\e[6~” é a tecla “Page Down”
Salva o arquivo, fecha a seção bash e crie uma outra.
Pronto, agora é só testar.

OBS: No texto eu citei que o linux por default só grava 500 últimos comandos, você pode alterar essa configuração para qualquer outro valor.
Basta editar o arquivo “~/.bashrc” ou “~/.bash_history”, dependendo da distribuição, e adicionar as linhas:
export HISTFILESIZE=XXXX
export HISTSIZE=XXXX

XXXX = O valor da quantidade que será salvo os comandos

Qualquer dúvida é só falar.

Leave a Reply

You must be logged in to post a comment.