Una terminal de Linux que ejecuta Bash tiene un historial incorporado que puede usar para realizar un seguimiento de lo que ha estado haciendo últimamente. Para ver un historial de su sesión de Bash, use el comando integrado history
:
$ echo "foo"
foo
$ echo "bar"
bar
$ history
1 echo "foo"
2 echo "bar"
3 history
La history
El comando no es un archivo ejecutable en su sistema de archivos, como la mayoría de los comandos, sino una función de Bash. Puede verificar esto usando el type
comando:
$ type history
history is a shell builtin
Control de historial
El límite superior de líneas en su historial de shell está definido por HISTSIZE
variable. Puede configurar esta variable en su .bashrc
expediente. Lo siguiente establece su historial en 3000 líneas, después de lo cual se elimina la línea más antigua para dejar espacio para el comando más nuevo, ubicado al final de la lista:
export HISTSIZE=3000
También hay otras variables relacionadas con la historia. El HISTCONTROL
La variable controla qué historial se almacena. Puede obligar a Bash a excluir comandos que comiencen con un espacio vacío colocando esto en su .bashrc
archivo:
export HISTCONTROL=$HISTCONTROL:ignorespace
Ahora, si escribe un comando que comienza con un espacio, ese comando no se registrará en el historial:
$ echo "hello"
$ mysql -u bogus -h badpassword123 mydatabase
$ echo "world"
$ history
1 echo "hello"
2 echo "world"
3 history
También puede evitar las entradas duplicadas:
export HISTCONTROL=$HISTCONTROL:ignoredups
Ahora, si escribe dos comandos, uno tras otro, solo aparece uno en el historial:
$ ls
$ ls
$ ls
$ history
1 ls
2 history
Si te gustan estos dos ignorados, puedes usar ignoreboth
:
export HISTCONTROL=$HISTCONTROL:ignoreboth
Eliminar un comando del historial
A veces comete un error y escribe algo confidencial en su caparazón, o tal vez solo desea limpiar su historial para que represente con mayor precisión los pasos que tomó para que algo funcione correctamente. Si desea eliminar un comando de su historial en Bash, use -d
opción con el número de línea del elemento que desea eliminar:
$ echo "foo"
foo
$ echo "bar"
bar
$ history | tail
535 echo "foo"
536 echo "bar"
537 history | tail
$ history -d 536
$ history | tail
535 echo "foo"
536 history | tail
537 history -d 536
538 history | tail
Para dejar de agregar history
entradas, puede colocar un space
antes del comando, siempre que tenga ignorespace
en tu HISTCONTROL
variable de entorno:
$ history | tail
535 echo "foo"
536 echo "bar"
$ history -d 536
$ history | tail
535 echo "foo"
Puede borrar todo el historial de su sesión con -c
opción:
$ history -c
$ history
$
Lecciones de historia
Más sobre Bash
- Hoja de trucos de Bash
- Una introducción a la programación con Bash
- Guía para administradores de sistemas sobre secuencias de comandos de Bash
- Últimos artículos de Bash
Manipular la historia suele ser menos peligroso de lo que parece, en especial cuando se trata de curarla con un propósito en mente. Por ejemplo, si está documentando un problema complejo, a menudo es mejor usar su historial de sesión para registrar sus comandos porque, al colocarlos en su historial, los está ejecutando y, por lo tanto, probando el proceso. Muy a menudo, documentar sin hacer conduce a pasar por alto pequeños pasos o escribir mal detalles menores.
Use sus sesiones de historia según sea necesario y ejerza su poder sobre la historia sabiamente. ¡Feliz hackeo de la historia!