Ver el historial de comandos ejecutados en la terminal

75

¿Hay alguna manera de guardar todos mis comandos de terminal escritos y verlos como historial en un libro de registro?

rgr
fuente

Respuestas:

92

Esto se hace automáticamente. Bash almacena tus comandos ~/.bash_history. Si desea ver el historial, imprima el resultado de este archivo utilizando uno de

cat ~/.bash_history
less ~/.bash_history
...any other pager or output command...

O puede usar el comando incorporado de bash:

history

Para borrar el historial, elimine el archivo y borre el historial temporal:

rm ~/.bash_history && history -c

El tamaño del historial predeterminado es 500 comandos. Sin embargo, puede aumentar esto agregando una línea a su ~/.bashrcarchivo para establecer la HISTSIZEvariable:

HISTSIZE=<number of entries, -1 for unlimited>

Esto no tendrá efecto de inmediato, sino solo para las sesiones recién iniciadas. Para aplicar esto, vuelva a buscar el .bashrcarchivo:

. ~/.bashrc

o correr HISTSIZE=...en tu sesión actual.

s3lph
fuente
1
Sin embargo, de forma predeterminada solo mantiene los últimos 500 comandos. Puede cambiar el número que se guardará, pero solo tiene que iniciarlo accidentalmente con la configuración predeterminada una vez, y todo su historial anterior desaparecerá.
kasperd
Esto no funciona para mí en Ubuntu 16
Nam G VU
31

Puede escribir historyen un terminal para ver todos los comandos ejecutados anteriormente.


Puede truncar la salida a algunas líneas (donde 5 es el número de líneas):

history 5

Si desea ver solo los comandos que contienen una cadena (es decir mv), puede hacer esto:

history | grep mv

Puede recuperar un comando escribiendo !seguido del número de entrada.

Digamos que tengo una historia como esta:

1 ls -la
2 mkdir foo
3 mv bar.txt foo
  • Para ejecutar mkdir foo, puede escribir !2.
  • Para ejecutar el último comando, puede usar !-1o!!
  • Para ejecutar el penúltimo, puede usar !-2

Si ejecuta un comando que falla porque necesita privilegios de root (es decir touch /etc/foo), puede usarlo sudo !!para ejecutar el último comando como root.


  • Si escribe !man, ejecutará el último comando que comienza conman
  • Si escribe !?man?, ejecutará el último comando que contiene man(no necesariamente al comienzo de la línea)

Si tiene un error tipográfico en un comando, puede solucionarlo de esta manera. Digamos que escribo cat .bash_hi, para reemplazar .bash_hial .bash_historyque sólo tendrá que escribir ^hi^history^.


Fuente: https://www.digitalocean.com/community/tutorials/how-to-use-bash-history-commands-and-expansions-on-a-linux-vps

Helio
fuente
2
También puede presionar Ctrl-R para realizar una búsqueda en el host mientras escribe.
Mhmd
historytrabajando para mí en Ubuntu 16. ¡Gracias y debería ser el aceptado!
Nam G VU
9

Sólo tipo :

history > print.txt

Se creará un nuevo archivo llamado print.txt en su directorio de trabajo actual.

Bilal
fuente
3
Corta los comandos después de 1000
Antoine
3

A menudo solo quiero esos comandos recientes también. Para publicar en mis notas de desarrollo o, bueno, apilar sitios de intercambio como estos ... Esto ha demostrado ser muy útil, eliminando números de línea irrelevantes:

history | cut -c 8- | tail

o, si lo desea como un alias, se eliminan los números de línea y se sangran de inmediato (tal como se necesita para la rebaja del presupuesto)

alias lastones="history | tail | sed -e 's/^ [0-9]\{1,5\}  /    /gi'"
Frank Nocke
fuente
1
Más fácil de usar fc: askubuntu.com/a/839642/158442
muru
0

Es posible que desee probar https://github.com/dvorka/hstr que permite la navegación simple , la navegación y el filtrado de "sugerir estilo de cuadro" de su historial de Bash:

ingrese la descripción de la imagen aquí

Puede ser fácilmente vinculado a Ctrl-ry / oCtrl-s

Martin Dvorak
fuente