gnu bash shell logo

Como pesquisar eficientemente no histórico de comandos da Bash shell

Na linha de comandos, frequentemente queremos repetir algum procedimento, na íntegra ou com algumas modificações.
Para isso, há o histórico do Bash.
Você pode acessar o histórico da shell no arquivo .bash_history, que fica no seu diretório “home”. Veja como:

less ~/.bash_history

Você pode obter a mesma listagem, acrescida do número da linha de comando, com o próprio comando history:

history | less

Os números das linhas são úteis, por que podem ser evocados a qualquer momento no terminal. Ou seja, você não precisa redigitar o comando inteiro — basta fornecer o número dele no histórico.
Você pode combinar o history com o comando grep, para obter um histórico sobre um determinado item, que você tenha usado recentemente.
O exemplo abaixo lista o histórico de uso do comando apt:

history | grep apt

Veja como ficou a minha saída:

 1637  sudo apt install toilet
 1666  sudo apt update
 1667  apt list --upgradable 
 1668  apt show firmware-amd-graphics 
 1670  sudo apt autoremove 
 1671  sudo apt update
 1672  sudo apt full-upgrade 
 1673  sudo apt purge firmware-amd-graphics 
 1998  apt show zenity

Note que cada linha tem um número.
Se você quiser executar uma determinada linha de comando, use o símbolo ‘ ! ‘ (ponto de exclamação) seguido do número da linha correspondente:

!1668

history bash shell

Faça buscas por palavras dentro do histórico de comandos do Bash

Novamente, o comando grep pode ser usado para encontrar um nome de comando ou qualquer outra string dentro do .bash_history:

history | grep snap

Com o atalho de teclado ‘Ctrl+R’, é possível também fazer uma busca por uma string qualquer:

  • pressione simultaneamente as teclas ‘Ctrl’ e ‘R’
  • comece a digitar parte da palavra que deseja buscar
  • continue a pressionar ‘Ctrl+R’ até encontrar a linha de comando desejada

Quando encontrar, use a tecla de direcionamento para a direita ‘ → ‘, se quiser alterar o comando ou apenas tecle Enter, para executá-lo do jeito que ele já está.

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia. Fã de séries, como "Rick and Morty" e "BoJack Horseman". Me siga no Twitter e vamos trocar ideias!

2 comentários sobre “Como pesquisar eficientemente no histórico de comandos da Bash shell”

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *