¿Cómo puedo eliminar comandos guardados de la Terminal?

16

Como todos ustedes saben, Mac OS X almacena todos los comandos que se ejecutan desde la Terminal en la misma Terminal, sin embargo, quiero eliminar (por ejemplo) los últimos 3 comandos de la terminal. ¿Cómo puedo hacer esto?

JAHelia
fuente

Respuestas:

12

Mac OS no almacena nada en ningún lado.

bash, que es el shell que se ejecuta en el terminal, almacena el historial de comandos.

El historial de comandos del terminal se almacena en un archivo oculto en su directorio de usuario llamado .bash_history

Esto significa que el archivo es: /Users/{username}/.bash_history

Debe habilitar "Mostrar archivos del sistema" para verlo (desde el menú "Ver" en el buscador).

El archivo es solo una lista textual de todo lo que escribe en el shell. Puede abrirlo en TextEdit, o en el editor de su elección.


Probablemente debería cerrar Terminal.apppara eliminar cualquier cambio reciente en el archivo antes de realizar cambios, o puede sobrescribirse de una versión que Terminal.apptiene en la memoria.

Nombre falso
fuente
2
Los comandos no se almacenan sobre la marcha, sino solo cuando el shell sale o cuando se le solicita que lo haga (por ejemplo, history -ao history -w). Por lo general, los últimos comandos aún no están en el archivo.
Matteo
Vaya, quise agregar que probablemente deberías cerrar todas las instancias de terminal.app antes de editar este archivo. Fijo.
Nombre falso
19

No es una función de Mac OS sino una función de shell. Suponiendo que está utilizando bash (el valor predeterminado):

  • el historial de comandos se almacena en la memoria y persiste en un archivo (generalmente ~/.bash_history)
  • puedes listar y editar el historial con el historycomando

Con man bash(en la SHELL BUILTIN COMMANDSsección) encontrará la descripción de las diferentes opciones.

Usted puede:

  • enumerar las entradas del historial

    $ history
  • borrar todo el historial

    $ history -c
  • eliminar una entrada dada

    $ history -d offset
Matteo
fuente
ambas respuestas son correctas, elegí la primera ... gracias hermano ..
JAHelia
en hacer historia -c, dice fc: event not found: -c. Luego abrí el archivo manualmente, eliminé el contenido. Closed and reopened the terminaly la historia no existe ahora.
curioso
2

Para usuarios de Mac Terminal

Eliminar el historial de comandos bash con el siguiente comando $ echo '' > ~/.bash_history

Para usuarios de Mac zsh

Eliminar el historial de comandos zsh con el siguiente comando $ echo ''> ~/.zsh_hostory

vikbert
fuente
Tenga en cuenta que esto eliminará todo el historial, y no solo las últimas tres líneas.
John N
0

Además de Editar texto, también, si eres de la vieja escuela, usa 'vi' para editar el archivo y eliminar los comandos ofensivos. Editores de línea de comandos similares son emacs (que comparte accesos directos de edición con OS X) o nano (que ha simplificado la navegación y la ayuda visual sobre cómo guardar y salir del editor sin necesidad de una hoja de referencia) .

gpdeveloper
fuente
1
Eso estaría cubierto por "Puede abrirlo en TextEdit, o su editor de elección ", que se encuentra en la respuesta aceptada.
John N
Preferimos que las respuestas sean independientes. En este momento es más un comentario que una respuesta, ¿puede agregar al menos el nombre del archivo para editar?
nohillside