Digite Ctrl R na linha de comando e comece a digitar o comando anterior. Uma vez que um resultado apareça, continue pressionando Ctrl R para ver outras combinações. Quando o comando desejado aparecer, simplesmente pressione Enter
Note que enquanto Ctrl R é o padrão, se você quiser que o comando ( reverse-search-history ) seja ligado a Ctrl T você poderia configurar isso com o seguinte:
bind '"\C-t": reverse-search-history'
Há toda uma série de outros comandos bindable readline que estão disponíveis para você também. Dê uma olhada na página bash man .
O Bash tem muitos recursos para pesquisar e acessar o histórico de comandos interativos. O mais básico deles é o history builtin. Digitando apenas:
$ history
Imprimirá uma lista de comandos junto com um índice numérico, como:
$ history 1 clear 2 ls -al 3 vim ~/somefile.txt 4 history $
Você pode executar qualquer um desses comandos usando seu índice numérico, precedendo o índice com um único ! , como Mitch apontou:
$ !1
Será executado o comando clear . O histórico embutido tem muitos recursos em si, você pode ver mais nas páginas bash e history man.
Você também pode especificar compensações negativas relativas ao usar o ! designador, portanto, usando nossa lista de histórico acima, se quisermos executar vim novamente, poderíamos fazer:
$ !-2
Que basicamente diz bash para executar o comando que você executou "dois comandos atrás". Para executar o comando anterior na lista do histórico, podemos usar apenas !! (que é apenas uma abreviação de !-1 ).
O designador ! não limita você a especificar numericamente qual comando deve ser executado. hayalci mostrou que você pode instruir bash a executar um comando com base no texto com o qual começa (usando ! ) ou texto dentro do próprio comando (usando !? ). Novamente, usando nossa lista de histórico de exemplo acima, se quisermos executar clear novamente, tudo o que precisamos fazer é digitar:
$ !cl
e pressione Enter . E quanto a vim ? Isso é tão simples quanto:
$ !?some
O ponto mais importante da resposta de hayalci é a chamada para o shopt builtin:
$ shopt -s histverify
Isso habilitará a verificação de histórico para que os comandos correspondidos pelos designadores ! , !! e !? não sejam executados cegamente, mas preenchidos na linha de comando para que você possa garantir que eles não farão mal antes de executá-los. Isso é ainda mais importante quando você está executando comandos como o usuário root. Essa opção pode ser configurada no arquivo de inicialização .bashrc , para que seja definida sempre que você efetuar login.
Como já foi apontado, todas essas informações podem ser coletadas da página bash man . Para o!, !! e! designadores, dê uma olhada na Seção 9.3 Expansão do Histórico .