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
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á.
4 replies on “Como pesquisar eficientemente no histórico de comandos da Bash shell”
Excelente post Elias, afinal eu estava precisando de um “help” deste tipo. Força e honra!
Tem algo semelhante no android? Recuperar uma palavra, frase, e-mail digitados,uma especiede “keylogger” no Android? Pelo amor de Deus
Eu estou a apaixonado por você
O amor é recíproco! <3
Falar e escrever sobre o Linux é a minha paixão e eu fico super feliz de ver que o meu trabalho está ajudando outras pessoas.