Histórico (configuración)

El histórico (history) tiene varias opciones que podemos cambiar para tener un mejor control del mismo. Aquí vamos a ver algunas opciones para el control y gestión del fichero de histórico (history).

  • Control del tamaño del fichero de histórico: Tenemos dos variables de entorno para ello, HISTSIZE y HISTFILESIZE, que indican el tamaño del fichero, por ejemplo:
    HISTSIZE=1000
    HISTFILESIZE=1000
    Con esto hacemos que el tamaño máximo del fichero de histórico sea de 1000 comandos o líneas. Si ponemos el tamaño de la variable HISTSIZE a cerohacemos que no se guarde nada en el histórico:
    export HISTSIZE=0
  • Control de duplicados en el histórico: En el histórico se van guardando TODOS los comandos que se van introduciendo aunque repitamos 20 veces el mismo, se guardará 20 veces, lo cual es en ocasiones una perdida de espacio, por lo que podemos usar la variable HISTCONTROL para hacer 2 cosas, una eliminar los duplicados consecutivos con ignoredups y dos eliminar los duplicados sean o no consecutivos con erasedups.
    export HISTCONTROL=ignoredups
    o
    export HISTCONTROL=erasedups
  • Donde guardar el histórico: por defecto el histórico se guarda en ~/.bash_history pero podemos indicar donde guardarlo con la variable HISTFILE.
    HISTFILE=~/.bitacora

    Cuando en un mismo servidor entran varios administradores que se pasan a root (desde su usuario) y poder controlar y guardar que hace cada uno, podemos tener un histórico por cada uno de ellos de la siguiente forma:

    export HISTFILE=/root/.bash_hist-$(who am i | awk '{print $1}';exit)
    Con esto se guardará en la home de root un fichero de histórico por cada uno de los usuarios que se hayan pasado a root.
  • Añadir fecha y hora al listado del histórico: por defecto el History SOLO muestra lo que se ha ejecutado pero no cuando, por eso hay una variable de entorno que nos puede ayudar y sirve para formatear la salida de History, esta variable se llama: HISTTIMEFORMAT.HISTTIMEFORMAT soporta las cadenas de formato de strftime, con lo cual da mucho juego, pero tampoco es para recargar la salida del history.Un ejemplo practico del uso de esta variable podría ser:Antes del usar la variable HISTTIMEFORMAT:
    $ history
        1  ls /
        2  cd ~
        3  history
    Después de usar la variable:
    $ export HISTTIMEFORMAT='- %F %T - '
    $ history
        1  - 2009-02-14 00:56:49 - ls /
        2  - 2009-02-14 00:56:59 - cd ~
        3  - 2009-02-14 00:57:01 - history
        4  - 2009-02-14 00:58:37 - export HISTTIMEFORMAT='- %F %T - '
        5  - 2009-02-14 00:58:40 - history
    Como se puede ver el histórico no se borra y solo se añade la fecha y la hora (- %F %T -), pero podemos usar cualquier cadena de formato de strftime.

Todas estas variables debemos ponerlas en un fichero donde se activen al arranque que puede ser ~/.bash_profile.

Retro

Lugares

Redes

Sistemas

Varios