¿Cómo edito el historial de la terminal bash shell?

Ingresé una contraseña en una línea de comandos pro o en una ventana de terminal por error y no quiero eliminar todo mi historial. Mi caparazón es bash.

¿Cómo edito mi historial de bash en Mac OS X?

Respuestas (5)

Editar el .bash_historyes solo cuestión de abrir el archivo con un editor. Hay un par de formas en las que puedes lograr esto.

  1. En la Terminal simplemente escriba vi ~/.bash_history, luego edite el archivo como desee y guárdelo. Esta opción podría ser complicada, si no estás acostumbrado a vi , por supuesto.
  2. Haga visible el archivo siguiendo estas instrucciones, por ejemplo, ábralo como cualquier otro archivo, modifíquelo y guárdelo.
  3. En la Terminal solo escribe open -e ~/.bash_history. Este comando abrirá el archivo con TextEdit , puedes elegir cualquier otro editor de texto, por supuesto. Modifique el archivo y guárdelo.

Para que los cambios sean notables, simplemente reinicie bash.

Creo que encontré mi respuesta. echo $HISTFILEmuestra el que se va a editar.

En tipo de terminal historyy anote el número de línea. Próxima llamada history -d noted-line-number. Puede verificar que la línea se elimine usando historynuevamente.

Esto no funciona en Yosemite con ZSH.
La pregunta era sobre bash, no sobre zsh. ¡Lea cuidadosamente!
@DmitryDupelov tienes razón, disculpa la molestia. De todos modos, es un recordatorio para los futuros lectores (que también pueden perderse ese detalle). Gracias por corregir mi comentario.
nano ~/.bash_history

cuando termines, ctrl+xy regresa para aceptar una respuesta correcta amigo

Creo que la respuesta de Dmitry es ideal si se hace antes de guardar el historial; de forma predeterminada, el guardado se produce al salir del shell/terminal.

Si ya ha guardado el historial en ~/.bash_history, entonces prefiero la respuesta de Thecafremo, pero sugeriría agregar un paso para salir de la Terminal para asegurarse de que ninguna de las instancias de bash haya cargado el historial y lo vuelva a guardar. Esto es especialmente complicado si tiene múltiples terminales y ha habilitado algún tipo de actualización del historial comando por comando.

Fondo:

  • bash guarda el historial dentro de una instancia del shell
  • bash puede escribir este historial en un archivo, lo que generalmente ocurre cuando sale del shell/Terminal
  • bash puede leer desde un archivo en el historial, lo que generalmente ocurre cuando abre un shell/Terminal
  • es posible cambiar el comportamiento predeterminado para que el historial se propague antes, lo que puede migrar su BAD_TEXT al archivo y a otras ventanas

Independientemente del método que utilice, agregaría un paso: ¡verifique el éxito!

  1. Salir de Terminal.app
  2. Vuelva a abrir Terminal.app
  3. Confirme que el texto ofensivo no está en el historial, preferiblemente de una manera que no cree un historial adicional. Es decir, ¡no grep BAD_TEXT .bash_history! Este nuevo mando pasaría a la historia. Simplemente abriría .bash_history en su editor favorito y buscaría BAD_TEXT dentro de eso.

Esto debería darle la tranquilidad de que ha eliminado BAD_TEXT sin importar qué tipo de configuración loca de bash pueda encontrar.

Hay varias historias, por ejemplo, bash y zsh. Puedes hacer esto con nano. Para hacer esto, simplemente abra la terminal

Con esto editas el historial de bash

nano $HOME/.bash_history 

Con esto editas el historial estándar de zsh

nano $HOME/.zsh_history 

Si lo desea, puede hacerlo todo usando TextEdit.

Intento:open -t $HOME/.bash_history

Zsh:open -t $HOME/.zsh_history

Consideremos esto en una pregunta que solicite el historial de zsh para obtener el mejor efecto.