Como posso redefinir uma linha de histórico editada no Bash?

Como posso redefinir uma linha de histórico editada no Bash?

No Bash, você pode pressionar a seta para cima (e para baixo) para percorrer o histórico. Você pode então modificar o comando antes de executá-lo. Às vezes, modifiquei incorretamente o comando e desejo redefini-lo para o que estava originalmente no histórico. Existe uma maneira de fazer isso?

Tentei executar uma linha em branco e percorrer o histórico novamente, mas a linha pertinente permanece editada.

Responder1

Desfazer é Cx Cu (ou C-_, para o qual você pode ter que digitar C-/)

Responder2

O arquivo que contém o histórico do bash é "~/.bash_history", apropriadamente (pelo menos no Ubuntu, pode ser diferente em outros sabores). basta abri-lo com seu editor de texto favorito, observe que cada usuário deve ter seu próprio arquivo .bash_history. Observe também que o "." significa que é um arquivo oculto, portanto não aparecerá em um navegador de arquivos ou com o comando ls, a menos que você o use com -a.

Responder3

Esta ligação impedirá que alterações não executadas no histórico substituam os originais:

bind 'set revert-all-at-newline on'

Exemplo:

  1. Executarls
  2. Pressione a seta para cima
  3. Adicione -Alà linha
  4. Pressione a seta para baixo
  5. Pressione Return (para tentar cancelar a alteração)

Sem esta ligação:
lsserá substituído no histórico por ls -Al, mesmo que nunca tenha sido executado.

Com esta ligação:
O não executado ls -Aldesaparecerá, enquanto lspermanece.

Obviamente, isso significa que alterações não executadas no históriconuncaser salvo (como o comportamento padrão do zsh). Se você deseja apenas os originais restauradosàs vezes, você terá que escolher uma das outras respostas.

informação relacionada