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
2
3
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
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.

You may also like...

4 Responses

  1. tannhausser dice:

    Gracias por la mención colega! muy interesante el post, en especial lo de histappend, es muy útil.

    Saludos!

  2. Matias dice:

    Muy bueno el articulo!
    Ahora tengo una duda, ejecutando
    shopt -s histappend
    ya queda siempre configurado, o hay que hacerlo cada vez que iniciamos sesión? como se deshace?
    Gracias.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR