17 votos

¿Cómo puedo editar el historial del terminal de Mac OS X?

¿Cómo puedo editar mi historial de bash en Mac OS X? He introducido una contraseña en esa ventana por error y no quiero eliminar todo mi historial.

18voto

Kai Li Puntos 1546

Edición de la .bash_history es sólo cuestión de abrir el archivo con un editor. Hay un par de maneras de conseguirlo.

  1. En el Terminal simplemente escriba vi ~/.bash_history , luego edita el archivo como quieras, y guarda. Esta opción puede ser complicada, si no estás acostumbrado a vi Por supuesto.
  2. Hacer el archivo visible al seguir estos por ejemplo, abrirlo como cualquier otro archivo, modificarlo y guardarlo.
  3. En el Terminal simplemente escriba open ~/.bash_history -a /Applications/TextEdit.app . Este comando abrirá el archivo con TextEdit Puede elegir cualquier otro editor de texto, por supuesto. Modifique el archivo y guárdelo.

Para que los cambios se noten sólo hay que reiniciar el bash.

2 votos

Creo que he encontrado mi respuesta. echo $HISTFILE muestra el que se debe editar.

13voto

Jatin Puntos 16

En el tipo de terminal history y anota el número de línea. Siguiente llamada history -d noted-line-number . Puede comprobar que la línea se ha eliminado utilizando history de nuevo.

3 votos

Esto no funciona en Yosemite con ZSH.

0 votos

La pregunta era sobre bash, no sobre zsh. Lee con atención.

1 votos

@DmitryDupelov tienes razón, perdona las molestias. De todos modos, es un recordatorio para los futuros lectores (que pueden pasar por alto ese detalle también). Gracias por corregir mi comentario.

3voto

sathya Puntos 16
nano ~/.bash_history

cuando hayas terminado, ctrl+x y volver a aceptar una respuesta correcta amigo

1voto

5th Wheel Puntos 13

Creo que la respuesta de Dmitry es ideal si se hace antes ahorrando el historial - por defecto, el guardado se produce al salir del shell/terminal.

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

Antecedentes:

  • bash guarda el historial dentro de una instancia del shell
  • bash puede escribir este historial en un archivo, lo que suele ocurrir cuando se sale del shell/Terminal
  • bash puede leer desde un archivo en el historial, lo que suele ocurrir cuando se abre una shell/Terminal
  • es posible cambiar el comportamiento por defecto para que el historial se propague antes, lo que puede migrar su BAD_TEXT al archivo y a otros Windows

Independientemente del método que utilice, yo añadiría un paso: ¡verificar 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 forma que no se cree un historial adicional. Es decir, no grep BAD_TEXT .bash_history ¡! Este nuevo comando entraría en el historial. Simplemente abriría .bash_history en su editor favorito y buscaría dentro de él BAD_TEXT.

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

1voto

UnixCoon Puntos 23

Hay varios historiales, por ejemplo bash y zsh. Puedes hacerlo con nano. Para ello, simplemente abre el terminal

Con esto se edita el historial de bash

nano $HOME/.bash_history 

Con esto se edita el historial estándar de zsh

nano $HOME/.zsh_history 

Si quieres, puedes hacerlo todo con TextEdit.

Bash: open -t $HOME/.bash_history

Zsh: open -t $HOME/.zsh_history

2 votos

Pongamos esto en una pregunta que pida el historial de zsh para obtener el mejor efecto.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X