Jun
19
2011

Historial de comandos

La problemática es clara, en nuestro que hacer diario con sistemas, el número de comandos que tecleamos a lo largo de los días tiende a tener un factor común.

Una forma de facilitar el trabajo del día a día es mediante el comando Control+r (reverse-i-search) búsqueda inversa, gracias al cual después de su pulsación podremos buscar, escribiendo, las últimas ordenes ejecutadas en nuestro historial, si volvemos a pulsar aparecerá la siguiente orden por similitud. Para ejecutar la orden encontrada pulsaremos intro, y si queremos editarla para cambiar algún dato flecha derecha o izquierda.

Una forma de aumentar el número de líneas y el tamaño del fichero que se guardará en nuestro historial de comandos, es mediante las variables bash HISTFILESIZE y HISTSIZE, si les asignamos un valor lo suficientemente alto por encima de 1000 tendremos un número de ordenes a las que recurrir de nuevo en caso de necesidad.

Pero claro si escribimos 20 veces, por ejemplo ls al final provocaremos que se guarde otras tantas en nuestro historial, la solución viene dada por la tercera variable que es HISTCONTROL=ignoreboth. Esta variable con el valor que vemos evitará que se guarden en el historial comandos duplicados.

Para activar esto en nuestra consola, bien exportamos estas variables en nuestro .bash_profile o en /etc/profile para todo el sistema.

Pero vamos a ir más alla con el control del historial de órdenes en nuestro sistema, si tras haber activado lo anterior tenemos dos terminales abiertos de la misma máquina; en el terminal A ejecutamos pepito y en el terminal B buscamos con Control+r la orden anterior veremos que esta no aparece. Por defecto el fichero de historial se lee cuando entramos en nuestra sesión o consola, y se escribe cuando salimos.

Para provocar que en cada orden que ejecutamos en el sistema, esta se guarden inmediatamente en el historial y no cuando se cierre el terminal o la sesión, de manera que este disponible en todo momento para nosotros, agregaremos las siguientes instrucciones a nuestro bashrc.

shopt -s histappend activar el añadido del historial en vez de la sobreescritura, normalmente esta orden la llevan la mayoría de distribuciones.

Y la variable PROMPT_COMMAND=’history -n; history -a’ que provocará que cada vez que el fichero de historial se modifique en el sistema por la inclusión de nuevas órdenes este se lea de nuevo.

Entradas relacionadas

Sobre el autor: Juan Carlos Giménez Moncada

Luchando con el Open Source desde 1996...

Comentarios cerrados.