¿Cómo puedo restablecer una línea del historial editada en Bash?

¿Cómo puedo restablecer una línea del historial editada en Bash?

En Bash, puedes presionar la flecha hacia arriba (y hacia abajo) para recorrer el historial. Luego puede modificar el comando antes de ejecutarlo. A veces he modificado incorrectamente el comando y deseo restablecerlo a lo que estaba originalmente en el historial. ¿Hay alguna forma de hacer esto?

Intenté ejecutar una línea en blanco y luego recorrer el historial nuevamente, pero la línea pertinente permanece editada.

Respuesta1

Deshacer es Cx Cu (o C-_, para lo cual es posible que tengas que escribir C-/)

Respuesta2

El archivo que contiene el historial de bash es "~/.bash_history", apropiadamente (al menos en ubuntu, puede ser diferente en otras versiones). simplemente ábrelo con tu editor de texto favorito, ten en cuenta que cada usuario debe tener su propio archivo .bash_history. También tenga en cuenta que el "." anterior significa que es un archivo oculto, por lo que no aparecerá en un explorador de archivos ni con el comando ls a menos que lo use con -a.

Respuesta3

Este enlace evitará que las modificaciones del historial no ejecutadas sobrescriban los originales:

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

Ejemplo:

  1. Ejecutarls
  2. Presione la flecha hacia arriba
  3. Añadir -Ala la línea
  4. Presione la flecha hacia abajo
  5. Pulsa Retorno (para intentar cancelar el cambio)

Sin este enlace:
lsserá reemplazado en el historial por ls -Al, aunque nunca se ejecutó.

Con esta vinculación:
Lo no ejecutado ls -Aldesaparecerá, mientras lspermanezca.

Obviamente, esto significa que las alteraciones del historial no ejecutadasnuncaguardarse (como el comportamiento predeterminado de zsh). Si solo quieres restaurar los originalesa veces, tendrás que optar por una de las otras respuestas.

información relacionada