Otimizando o desempenho do history

Iniciado por arlei, 11 de Agosto de 2007, 15:27

tópico anterior - próximo tópico

arlei

Como sabemos o ambiente shell do GNU/Linux, no caso o bash, mantém no arquivo .bash_history uma lista com o histórico dos últimos comandos digitados. Com isso e o uso das teclas direcionais UP e DOWN nos permitem "navegar" por esta lista, de modo a retornar com um comando já utilizado e que esteja em nosso histórico armazenado.

Porém por padrão esta navegação será por toda gama de comando já utilizados, o que por vezes faz com que percamos até mais tempo necessário do que digitarmos novamente o comando.

Com uma dica simples veremos então como fazer com que esta navegação seja otimizada de forma a permitir uma filtragem no histórico de comandos bastando inserir alguns caracteres do mesmo antes de usarmos as setas de navegação.

Agora as setas farão uma procura por contexto. Se você não digitar nada, o efeito será o mesmo que antes, mas se você digitar um caractere e pressionar a seta, ele só irá mostrar os comandos que comecem com aquele caractere. Portanto com este ajuste, se você digitar "ls" e pressionar a seta ele vai navegar apenas nos comandos que começam com ls.

Para que isso funcione desta forma primeiramente iremos criar no diretório $HOME do usuário desejado o arquivo oculto de nome .inputrc com o seguinte conteúdo abaixo:

"\e[A": history-search-backward
"\e[B": history-search-forward


Agora basta fechar a seção atual e abrir uma nova para que a navegação no histórico dos comandos passe a funcionar desta forma mais otimizada.

Notas:

1. Por padrão o Linux armazena no .bash_history os últimos 500 comandos utilizados, mais este número pode ser modificado editando o seu arquivo .bashrc e adicionado as seguintes linhas:

export HISTFILESIZE=XXXX
export HISTSIZE=XXXX


Onde, XXXX deve ser substituído pela quantidade desejada.

2. Como configuração padrão do sistema como um todo existe o arquivo /etc/inputrc, ou seja, caso se deseje que estas novas configurações passem a valer para todos usuários do sistema basta adicionar aquelas 2 linhas do .inputrc neste arquivo.

T+
Arlei

rjbgbo

Mais uma ótima dica Arlei, também tinha acabado de ver no Planeta Ubuntu-br
É mais um que vai p/ minha pasta de Favoritos Ubuntu
Linux User #440843 | Ubuntu User #11469

arlei

Citação de: rjbgbo online 11 de Agosto de 2007, 17:00
Mais uma ótima dica Arlei, também tinha acabado de ver no Planeta Ubuntu-br
É mais um que vai p/ minha pasta de Favoritos Ubuntu

Valeu rjbgbo,

acabei publicando esta dica no Planeta e também aqui no fórum.

[]'s
Arlei

zoroastro

EXcelente Arlei, muito bom, valeu!

facilitou minha vida :D

chumbinho8

vlw kra
com isso e com o tab o terminal é imbativel :D