¿Cómo busco el historial de comandos de shell con un editor de texto?

8

Sé que Ctrl+ te Rpermite buscar el historial de comandos, pero es un poco primitivo. ¿Hay alguna forma de exportar todo mi historial de comandos (no solo la sesión de terminal actual, sino el historial completo) a un archivo de texto? Entonces podría usar un editor de texto para buscarlo cómodamente. O si el archivo de historial ya existe, ¿dónde está?

llamar
fuente
Asumiré que te refieres al historial de comandos de tu shell y que has editado para usar el shell predeterminado, bash.
muru

Respuestas:

13

De man bash:

HISTFILE
    The name of the file in which command history is saved.
    The default value  is  ~/.bash_history.
    If unset, the command history is not saved when a shell exits.

Por lo tanto, la variable HISTFILEcontendrá el nombre de archivo donde se guardará el historial.

$ echo "$HISTFILE"
/home/user/.bash_history

Ahora puede buscar el patrón:

$ grep "vim" "$HISTFILE"
vim foo.text
vim bar.text
vim file.txt

Como señaló @Dennis, si lo desea, puede ejecutar history -apara agregar el historial de comandos de la sesión en ejecución al $HISTFILEarchivo. Básicamente, los comandos se agregarán automáticamente una vez que cierre una sesión, history -aharán lo mismo en ese instante.

Corre help historypara tener más idea sobre el historypropio edificio.

heemayl
fuente
1
Tenga en cuenta que el archivo de historial generalmente no contendrá líneas ingresadas desde el comienzo de la sesión de bash actual, que se puede solucionar ejecutando history -a.
Dennis
@Dennis: Buen punto ... agregado ...
heemayl
4

Prueba esto:

history > output.txt
less output.txt

Luego busca escribiendo /+searchterm

El hombre de la noche
fuente
3

El historial de bash se guarda en su directorio de inicio ~/.bash_history.

Básicamente Ctrl+ Rbúsquedas de este archivo.

Sh1d0w
fuente