Não me lembro do truque em que eu poderia obter o último comando sem executá-lo:
digamos que eu queira poder acessar o comando! 1255 ao pressionar a tecla de seta para cima e modificar o comando. Então, qual é o truque para chamar o comando, fazer com que ele seja mostrado na linha de comando, mas não executado e depois acessível através da tecla de seta para cima?
Eu tentei colocar um eco, mas depois eu tenho um eco antes do comando, não me lembro de como fazê-lo corretamente.
Respostas:
Vai fazer isso
!
O recall de histórico1255
é o número da linha:p
impresso, mas não é executadoEm seguida, você pode usar a seta para cima para recuperar o comando anterior (não executado) e alterá-lo conforme necessário.
Costumo combinar isso com
hg
("History Grep") - meu apelido favorito.Ele procura texto em uma linha de histórico recente, independentemente do caso e é usado desta maneira:
Quando eu quero procurar por comandos vi recentes para editar um determinado arquivo e depois quero reutilizar um deles para editar o mesmo arquivo, mas com uma extensão de arquivo diferente.
Também defino
hga
("History Grep All") para pesquisar em toda a minha história:mas não o uso muito porque meu histórico é (intencionalmente) muito grande e recebo muita saída que mais tarde afeta a rolagem de volta pelas páginas do meu terminal.
fonte
hg
também é a CLI do Mercurial .Pressionar Ctrl+ R(que é a ligação das teclas de pesquisa incremental reversa do emacs como @gnp apontada nos comentários) no terminal permite pesquisar no histórico por um comando específico. O comando será mostrado e pode ser editado antes da execução. Você verá algo assim:
Fonte
fonte
o
fc
comando faz o que você querfc -l <number>
listará o histórico de comandos em torno desse númerofc <number>
abrirá a entrada da linha de comandovim
(ou qualquer que seja o seu editor padrão, suponho), para que você possa editá-la e, depois,:wq
ela estará disponível com a seta para cima.fonte
No bash
Ctl+alt+e
, a expansão do shell é digitada!1255
e, em seguida, pressionada essa combinação substitui a linha atual pelo conteúdo da entrada do histórico 1255fonte
man bash
comoshell-expand-line
. Talvez haja um atalho definido para o gnome-terminal.Você deseja usar o comando fc enquanto especifica a lista em vez de executar (-l)
fonte