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

6

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?

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

    
por Sparhawk 08.05.2013 / 07:25

3 respostas

6

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

    
por 08.05.2013 / 09:41
1

O arquivo que contém o histórico bash é "~ / .bash_history", apropriadamente o suficiente (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 precedente "." significa que é um arquivo oculto, portanto, ele não será exibido em um navegador de arquivos ou com o comando ls, a menos que você o use com -a.

    
por 08.05.2013 / 08:22
1

Esta ligação impedirá que alterações de histórico não executadas sobre-escrevam os originais:

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

Exemplo:

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

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

Com essa ligação:
O ls -Al não executado desaparecerá, enquanto ls permanecerá.

Obviamente, isso significa que alterações de histórico não executadas nunca serão salvas (como o comportamento padrão do zsh). Se você quiser que os originais sejam restaurados algumas vezes , você terá que escolher uma das outras respostas.

    
por 10.05.2013 / 02:39