Frequentemente procuro alterações com history | grep 'string'
Eu recebo uma lista de comandos no meu histórico, juntamente com o número da linha do histórico), por exemplo
history | grep 'git'
755 git status
1535 git push origin master
1570 git merge origin/one-146
1667 git reset --hard origin/master
Agora posso recuperar e executar um comando de uma só vez !nnn
, por exemplo:
!755
git status
# On branch master
nothing to commit, working directory clean
Minha pergunta é: como posso recuperar um comando de histórico numerado e permanecer na linha de comandos para edição e não executá-lo imediatamente 'como está', da maneira que !
faz, para que eu possa alterar algumas coisas ao executar o retorno presing?
fonte
Ctrl-a
por exemplo) interromperá a pesquisa, deixando a entrada do histórico atual no prompt de comando, sem executá-la. Isso pode ou não ser suficiente, dependendo do que @Michael quiser.Se você configurar o arquivo .bashrc para usar o editor vi na linha de comando, as edições da linha de comando serão muito menos complexas.
Primeiro, quando o "set -o vi" estiver ativado, você pode simplesmente pressionar "<esc> k" e continuar pressionando "k" para subir o arquivo de histórico como se fosse, se você passar por uma entrada, use "j" descer .
NOTA: ao usar o vi, existem dois modos: comando e edição para entrar no modo de comando, pressione a tecla ESCAPE UMA VEZ e, em seguida, a, A, i, I etc. para inserir.
Simples cursor pad no vi: esquerda = h, baixo = j, cima = k, direita = l http://linuxmeister.net/vi/vi-Summary.jpg
Adicionei todas as entradas necessárias para fazer isso funcionar em: http://linuxmeister.net/Notes/bashrc-simple.html
Portanto, com base nas informações muito úteis acima, pude usar o "history" e RECALL uma linha do "history", sem executá-lo. (OBRIGADO POR ESSE POST!)
se shopt estiver listado e histverify estiver "desativado" a! EXECUTAR imediatamente,
se você adicionou ao seu .bashrc ou digitou: shopt -s histverify , então a! permite uma edição, por exemplo:
->! 5
quando eu bati! 5 o seguinte comando aparece, mas NÃO executa
### se histverify estiver "ativado".
Lembre-se de que Linus e Richard criaram ferramentas Linux e GNU para aproveitar o UNIX. O editor vi (criado por Bill Joy) é uma das melhores ferramentas para dominar, assim como em TODAS as distribuições do UNIX e Linux.
Todos os outros editores de linha de comando precisam ser carregados e requerem software adicional. Usar uma GUI no Linux (que não seja Firefox, Thunderbird e OpenOffice) é como rebocar seu Diesel 4x4 com um VW Beetle 1968 ... funcionará, mas com certeza não faz sentido.
Lembre-se do que Kernigan disse sobre uma GUI, "o que você vê é tudo o que obtém".
fonte
pressione a seta para cima, remova a palavra
echo
e edite o restante; pressione enter para executar.fonte