Marcas de tiempo en el historial de Bash

history-date-commandEn su tiempo os hablé de alguna de las virguerias que podemos hacer con el comando history, tanto a la hora de mostrarnos la información más completa de los comandos que hemos ejecutado, como de hacer todo lo contrario, es decir evitar que un comando determinado quede registrado en el sistema o mejor dicho en el historial de Bash (Bourne Again Shell), el interprete de comandos que viene por defecto en casi todas las distribuciones GNU/Linux.

Ahora, en el blog de Geek Pills he visto un tip que me ha llamado la atención, como es la posibilidad de que la salida de “history” también nos muestre la fecha y hora exacta en que fue ejecutado cada comando.

Por lo que veo, en la fuente original editan el archivo oculto /.bash_profile para utilizar esta función en Fedora y CentOS.

En mi caso para openSUSE, Ubuntu (Xubuntu) y Manjaro, que son los sistemas que ahora rondan por mis equipos, lo que he hecho es modificar otro archivo también oculto en mi directorio personal que es /.bashrc (lo podéis hacer con nano o cualquier otro editor de texto)

nano ~/.bashrc

añadiendo las siguientes lineas:

# mostrar fecha y hora de los comandos

PATH=$PATH:$HOME/bin
export HISTTIMEFORMAT="%T %d-%b-%Y "

export PATH

Para que el comando funcione correctamente es posible que tengáis que cerrar y volver a abrir sesión.

4 thoughts on “Marcas de tiempo en el historial de Bash”

  1. Eduardo says:

    Saludos Compañero

    Excelente tu articulo; solo quería aporta algo, y es que después de agregar esas variables no hace falta cerrar sesión, tan solo con ejecutar el siguiente comando:
    source .profile
    te guarda los cambios; OJO esto en Debian no se si en esas otras versiones que mencionas, aunque en Ubuntu debe funcionar.

    1. tannhausser says:

      Muchas gracias por el aporte Eduardo, es muy interesante ese comando!

      Al final puse lo de que “es posible que tengais que…” porque a veces las configuraciones de bash varían en según que distro (en openSUSE Tumbleweed por ej. no tengo lo de /.bash_profile) pero si, supongo que ese comando debería funcionar en la mayoría.

      Y por eso tampoco me metí en lo de configurar el historial de bash para todos los usuarios del sistema, porque dependiendo de la distro hay todavía hay más variaciones (archivos que se modifican en etc/bashrc pero que después a la primera actualización se sobreescriben, por poner un ejemplo)

  2. Diego (@dglangos) says:

    Hola, sólo quería comentar que creo que no hace falta añadir tantas líneas al .bashrc, en mi caso funciona con sólo poner:

    export HISTTIMEFORMAT=”%T %d-%b-%Y ”

    Un saludo y gracias por la info!

    1. tannhausser says:

      cierto @diego , pero en mi caso por comodidad (y mala memoria) prefiero dejarlo establecido en bashrc.

      un saludo y gracias a ti por el tip

Deja un comentario