Existe uma combinação de teclas para o bash competir automaticamente com um comando do histórico? No ipython e no matlab, por exemplo, isso é conseguido pressionando a seta para cima após digitar alguns caracteres.
Responder1
Em primeiro lugar, acessar tabo bash é ainda melhor, pois preenche automaticamente todos os executáveis no seu PATH, independentemente de estarem no histórico. Dito isto, existem várias maneiras de obter um comando do seu histórico:
Use seu número. Se você sabe que o comando desejado foi há 3 comandos, basta executar
!-3
Isso executará novamente o comando que você executou três comandos atrás.
Procure por isso. Digite Ctrlre comece a digitar qualquer texto. O primeiro comando do histórico que corresponder ao seu texto será mostrado e clicar enterirá executá-lo.
Clique ▲(seta para cima). Isso abrirá o último comando, pressione-o novamente e você subirá no seu histórico de comandos. Quando você encontrar o que deseja, clique em enter.
Adicione estas linhas ao seu
~/.inputrc
(crie o arquivo se ele não existir):"\e[A": history-search-backward "\e[B": history-search-forward
Para carregar o arquivo imediatamente, execute bind -f ~/.inputrc
(fonte). Agora, digite os primeiros caracteres de um dos comandos que você executou anteriormente e pressione ▲. O primeiro comando do seu histórico que começa com esses caracteres será mostrado. Clique ▲novamente para ver o resto e clique enterquando encontrar o que deseja.
- Use o
history
comando. Como explicou @Isaac, isso listará todos os comandos armazenados em seu arquivo de histórico.
Responder2
Você pode verificar a posição do comando na sequência do histórico com o comando history
. Então você pode executar !<number_in_the_sequence>
. Espero que isso ajude.
Responder3
Você também pode usar history
e canalizar a saída para um comando específico.
Por exemplo, se você esteve cd
no sistema de arquivos o dia todo e só precisa de um lembrete de quais diretórios foram trabalhados
history | grep cd
Você pode então copiar/colar o comando ou !n
(onde n é o número da linha no arquivo de histórico) executá-lo novamente.