Historial de comandos en GNU Linux con history

Lo admito, soy incapaz de recordar los pasos y los comandos que he utilizado para configurar o instalar un servicio al cabo de las semanas. Por suerte GNU Linux nos brinda una serie de herramientas con éste fin. Una de ellas es el comando history, que recoge todo lo escrito en la shell o línea de comandos a lo largo de un tiempo o número de entradas determinada.

ficheros-antiguos-01

Historial de comandos con history

La orden history nos muestra en pantalla, por defecto, el historial de comandos escritos en la terminal, guardados en el fichero .bash_history dentro de nuestra carpeta de usuario.

Si en la consola de mi equipo escribo:

  1. history

Me mostrará lo siguiente:

history-linux-002

Por orden de uso, vemos los comandos utilizados recientemente en el sistema operativo. Si listamos el fichero .bash_history con el comando cat, veremos idéntico resultado, ya que es en éste fichero donde se guarda dicho historial.

  1. cat .bash_history

Y nos listará la información:

history-linux-001

Aún así history, por defecto, tiene algunas limitaciones, a 500 o 1000 entradas por usuario, y otra problema es que si tenemos múltiples ventanas de consola abiertas sólo guardará información de la primera. Los parámetros del comando están ubicados en el fichero .bashrc, que se pueden modificar de manera fácil, veamos un ejemplo.

Los parámetros:

  1. # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
  2. HISTSIZE=1000
  3. HISTFILESIZE=2000

Indican el tamaño del historial y el máximo de ordenes que se almacenarán. Aquí podemos modificar los parámetros, sustituyendo ambas cantidades por la cifra ‘100000’, para que así siempre guarde todo el historial.

A continuación:

  1. shopt -s histappend

De ésta manera se guardará el historial de todas nuestras terminales, es decir, se irán anexando en vez de sobrescribirse.

El comando también tiene una serie de parámetros adicionales:

  • history -n, muestra el número de líneas.
  • history -a, añade los comandos de la sesión actual al archivo de historial.
  • history -c, borra todo el historial.
  • history – d 500, borra el comando número quinientos del historial.

Otra manera de trabajar con el historial de comandos es la combinación de teclas CTRL+R, que nos permite buscar dentro del historial, buscando por palabra.

También podemos utilizar con el comando history algunos tips interesantes, que he descubierto en la web del amigo replicante:

  • Combinar con el comando tail, para por ejemplo descubrir los últimos comandos utilizados:  $history | tail -10, o bien los 10 primeros: $history | head -10
  • Si queremos que se ejecute justo el último de la lista escribimos: !!
  • O bien ejecutar un comando específico si sabemos su número en la lista: !74
  • Y de forma consecutiva: !54 & !74

Espero que el artículo os haya sido de utilidad, para mi lo ha sido sin duda, ya que es una información que viene bien siempre tener cerca.