Habilitando busca incremental de comandos no terminal GNU/Linux

Publicado por Leandro Nkz em 17/07/2013

[ Hits: 9.063 ]

Blog: http://brweatherproject.blogspot.com/

 


Habilitando busca incremental de comandos no terminal GNU/Linux



Olá a todos!

Nesta pequena e simples dica, mostrarei como habilitar a busca incremental de comandos no terminal GNU/Linux.

O que é busca incremental?

O próprio terminal já fornece uma busca parecida. É só teclar a combinação Ctrl+r e digitar o comando que se deseja buscar. Assim, ele exibirá as últimas ocorrências do termo digitado.

Mas a busca incremental de que falo, é muito mais simples e útil.

Eu descobri este recurso utilizando o Vim. Se corretamente habilitada (é só utilizar o parâmetro "set nocompatible" no vimrc), para utilizar um comando do histórico, é só digitar o começo do comando e teclar seta pra cima/seta pra baixo para navegar nas ocorrências encontradas.

De tanto usar o Vim, eu acabei pegando a estranha mania* de, ao digitar algum comando no terminal, tentar completar utilizando a seta pra cima. É claro que não funciona, uma vez que a seta pra cima serve apenas para ir ao último comando digitado.

* Aliás, esta não é a única mania que se pega ao utilizar constantemente o Vim/Gvim/vi. As mais frequentes são teclar Esc toda vez que se acaba de digitar algo em qualquer lugar, ou tentar fechar a janela do terminal com um :wq. (rsrs)

De tanto tentar completar um comando no terminal com a seta pra cima, pensei: "Deve existir alguma configuração que possa habilitar isso!".

Foi só pesquisar um pouco que encontrei:
Para habilitar, é só acrescentar:

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

... no final do arquivo /etc/inputrc (assim, as mudanças surtirão efeito em todos os usuários) e fechar/abrir o terminal novamente.

Agora, para testar, basta começar a digitar um comando qualquer e teclar seta pra cima/seta pra baixo para navegar nas últimas ocorrências dele.

Por fim, para termos um histórico bem completo, basta aumentarmos a capacidade dele, acrescentando (ou editando) no arquivo ~/.bashrc:

export HISTSIZE=10000

Assim, o terminal irá armazenar os últimos 10.000 comandos digitados (o padrão é 500).

* Lembrando que este recurso só funciona se o seu readline estiver no modo de compatibilidade com Emacs (o que é o padrão).

Testado no bash e sh.


Referências


Dica também publicada no Mundo GNU:
Até a próxima!

Outras dicas deste autor

Habilitando sons do sistema no GNOME 2 do Debian 6

Openbox encerrando ao executar programas GTK+ 3 [Resolvido]

OraPlus - Simples gerenciador para o banco de dados Oracle

Firefox/GIMP - Corrigindo imagens "desbotadas"

Firefox - Script para empacotamento e instalação ao modo Debian

Leitura recomendada

Medindo o tempo de resposta de cada step de API/SITE no terminal

Comandos para a distribuição Solus OS - Gerenciamento de Pacotes

Preparando a VM para virtualização do Mac OSX no VirtualBox

Editando vários arquivos com o Vim

Serviços e arquivos para configuração da rede

  

Comentários
[1] Comentário enviado por removido em 17/07/2013 - 03:58h

Cara, muito boa e muito útil essa dica.
Agora não vou precisar mais usar o caractere "!" toda vez que quiser executar um comando já digitado, o que fica bem mais prático!!!!

[2] Comentário enviado por MarceloTheodoro em 17/07/2013 - 08:27h

"(...) tentar fechar a janela do terminal com um :wq"

Fato.. haha







___________________________
Att, Marcelo Theodoro.

[3] Comentário enviado por removido em 17/07/2013 - 09:50h

Ótima dica!

Rapaz, como o Linux tem opções.
Não conhecia essa.

[4] Comentário enviado por leandro em 17/07/2013 - 10:52h

Obrigado! =)



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts