Como recordo um comando específico do histórico de comandos, sem executá-lo

13

Por exemplo, no bash eu posso digitar o !xyzque executará o último comando digitado, começando com xyz.

Como posso exibir o último comando digitado, começando com xyzmas sem executá-lo?
por exemplo, para que eu possa alterar os parâmetros antes da execução ....

Mtl Dev
fonte

Respostas:

20

Você pode fazer o seguinte: No prompt de comando, pressione Ctrl+ re digite o comando que deseja recuperar, no seu caso xyz. Isso mostrará o comando completo sem executá-lo.

user2249251
fonte
1
Mais útil que a !notação, porque você pode pressionar Ctrl-r várias vezes para avançar ainda mais no histórico de correspondências. Quando você chega ao local apropriado, pode tentar executar não com Enter, mas com Ctrl-o para obter muito lucro.
Kubanczyk 8/03/16
12

Tente !xyz:p; ele chamará o comando para o topo da história sem executá-lo; portanto, a seta para cima pode acessá-lo imediatamente para edição interativa.

Como um aparte, pratico isso ao recuperar comandos com um regexp que pode desenterrar algo prejudicial, desde que apressado !r, com a intenção de recuperar o rsync ...comando mais recente , recuar e executar um rm *que foi empurrado para a pilha mais recentemente que o rsync.

Chapeleiro Louco
fonte
Obrigado, é uma boa prática. Fiz o mesmo com uma pessoa que rm -rf ./*nunca ficou tão agradecida por um período. Para sua informação !xyz:p, funcionou, obrigado, mas exigiu algumas teclas extras ao invés da solução ctrl-r.
Mtl Dev
@MtlDev yes; Acho que a solução ^ R funciona melhor para os EMACSolhos, enquanto o! -Path funciona melhor para violadores como eu.
MadHatter
1
  1. Execute o seguinte comando. Ele repetirá o último comando executado. você pode copiar e editar o comando. Este comando foi testado no debian.

    história | cauda -2 | história grep -v | cut -d '' -f4-

  2. Ou pressione e segure ctrl + R e digite a letra inicial do seu último comando. Ele listará os comandos que você executou anteriormente com base em sua entrada. Depois de mostrar o comando desejado, basta pressionar a seta para a direita para selecionar esse comando.

vembutech
fonte
1
O primeiro comando é tão suave !! Eu acho que é mais rápido apenas cuidar do comando da história do que escrever tudo isso ^ __ ^
Grajdeanu Alex.
1

Se a pesquisa do histórico reverso falhar, faça o seguinte:

$ history | grep WHAT_YOU_LOOK_FOR

Ou:

$ grep WHAT_YOU_LOOK_FOR ~/.bash_history
178024
fonte