Histórico de comandos do Unix - encontrar um comando rápido

0

Existe um caminho (ou um shell específico) para navegar no histórico da seguinte maneira: digamos que eu tenha escrito o seguinte comando há duas semanas:

scp ../../../file.txt ../../../...

Eu não quero usar as setas para encontrar o comando porque vai demorar muito tempo. Em vez disso, gostaria de digitar scp para diminuir as possibilidades e, em seguida, navegar pelo histórico.

    
por user247866 22.07.2011 / 16:15

6 respostas

4

Para Ctrl-r (pesquisa inversa) cada vez que você atingir Ctrl-r , voltará para a próxima correspondência mais antiga do histórico, então essa é provavelmente a melhor opção.

No entanto, existem outras opções, bem como o operador ! . Se o último comando foi exclusivo ( scp não foi executado novamente desde então), você pode usar !scp , que executará o último comando que começou com scp em seu histórico. Além disso, se você usar a abordagem history | grep scp , poderá usar ! para executar o número do comando. Por exemplo:

$ history | egrep scp
 268  scp foo@bar:/home/foo/file .
$ !268

Esse !268 executará o comando 268 exatamente como aparece na saída history sem o número anterior.

    
por 22.07.2011 / 16:31
3

eu uso

history | grep scp 

e copie, cole e edite (se necessário) ou apenas ! <command number>

    
por 22.07.2011 / 16:18
3

Teste Ctrl+r para pesquisar o histórico. Você deve receber um prompt como o seguinte:

(reverse-i-search)'':
    
por 22.07.2011 / 16:22
3

Experimente Ctrl+r , ele deve fazer o que você precisa.

    
por 22.07.2011 / 16:17
2

Eu tenho

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

em $ HOME / .inputrc, e acredito que isso vincula o comportamento desejado às teclas para cima e seta. Para elaborar, 'man readline' nos diz que history-search- {forward, backward} levará em conta a string atual digitada na linha de comando:

   history-search-forward
          Search  forward  through  the history for the string of characters between the start of the current line
          and the current cursor position (the point).  This is a non-incremental search.
   history-search-backward
          Search backward through the history for the string of characters between the start of the  current  line
          and the point.  This is a non-incremental search.
    
por 22.07.2011 / 17:21
0

Use vi navegação:

set -o vi
[Esc]/scp[Enter]

Acertar n para ir para a próxima correspondência ou N para a correspondência anterior. i para inserir texto, A para acrescentar

    
por 28.05.2013 / 13:05

Tags