Uso del comando history en linux

Uso del comando history en linux.

En Linux, hay una herramienta que tiene la capacidad de mostrar todos los últimos comandos utilizados. Su propio nombre ya lo dice, «history». De forma predeterminada, el comando history nos imprime en pantalla los últimos quinientos comandos ingresados en nuestra consola / terminal.

En este artículo aprendemos a usarlo, incluyendo algunas opciones y una variable de entorno que mejora considerablemente la información aportada por el comando history.

Antes de comenzar y, para los más escépticos con la labor realizada desde sololinux.es, debo aclarar… que history no es un comando linux propiamente dicho; Realmente es una utilidad incluida en la mayoría de las shell, que puede variar de una a otra. Nosotros nos centramos en bash.

Uso del comando history

Uso del comando history

 

Uso del comando history en linux

La utilidad se usa tal como suena, history.

history

Vemos una salida de ejemplo…

root@sololinux-demo:~# history
    1  sudo -V
    2  root@sololinux-demo:~$ sudo -V
    3  Sudo versión 1.8.21p2
    4  versión del complemento de políticas de sudoers 1.8.21p2
    5  versión de gramática del archivo Sudoers 46
    6  Sudoers I/O plugin version 1.8.21p2root@sololinux-demo:~$ sudo -V
    7  Sudo versión 1.8.21p2
    8  versión del complemento de políticas de sudoers 1.8.21p2
    9  versión de gramática del archivo Sudoers 46
   10  Sudoers I/O plugin version 1.8.21p2root@sololinux-demo:~$ sudo -V
   11  Sudo versión 1.8.21p2
   12  versión del complemento de políticas de sudoers 1.8.21p2
   13  versión de gramática del archivo Sudoers 46
   14  Sudoers I/O plugin version 1.8.21p2root@sololinux-demo:~$ sudo -V
   15  Sudo versión 1.8.21p2
   16  versión del complemento de políticas de sudoers 1.8.21p2
   17  versión de gramática del archivo Sudoers 46
   18  Sudoers I/O plugin version 1.8.21p2root@sololinux-demo:~$ sudo -V
   19  Sudo versión 1.8.21p2
   20  versión del complemento de políticas de sudoers 1.8.21p2
   21  versión de gramática del archivo Sudoers 46
   22  Sudoers I/O plugin version 1.8.21p2root@sololinux-demo:~$ sudo -V
   23  Sudo versión 1.8.21p2
   24  versión del complemento de políticas de sudoers 1.8.21p2
   25  versión de gramática del archivo Sudoers 46
   26  Sudoers I/O plugin version 1.8.21p2
   27  wget https://www.sudo.ws/sudo/dist/packages/1.9.4p2/sudo_1.9.4-3_ubu2004_amd64.deb
   28  ls
   29  sudo gdebi sudo_1.9.4-3_ubu2004_amd64.deb
   30  sudo apt install gdebi-core
   31  apt update
   32  sudo apt install gdebi-core
   33  sudo gdebi sudo_1.9.4-3_ubu2004_amd64.deb
   34  sudo -V
   35  apt update
   36  apt list --upgradable
   37  apt full-upgrade
   38  history
root@sololinux-demo:~#

Como puedes ver en el anterior ejemplo, vemos el historial de comandos numerado, incluso el ejemplo de un artículo anterior donde vimos como actualizar la herramienta sudo.

 

Los comandos enumerados son muy útiles, si lo que deseas es ejecutar la misma herramienta. Por ejemplo… hemos listado como 37, apt full-upgrade. Para ejecutar de nuevo la orden de actualizar el sistema en su totalidad, es tan simple como insertar el símbolo de terminar exclamación, seguido del número de orden del listado.

!37

Observa la siguiente imagen.

Ejecutar utilidad listada con el comando history

Ejecutar utilidad listada con el comando history

 

History, permite definir el número de últimos comandos ejecutados en nuestro linux. Por ejemplo «ocho».

history 8

Salida…

root@sololinux-demo:~# history 8
   34  sudo -V
   35  apt update
   36  apt list --upgradable
   37  apt full-upgrade
   38  history
   39  Sudo versión 1.8.21p2
   40  apt full-upgrade
   41  history 8

Otra forma posible es aprovecharnos de tail, que por defecto nos lista los 10 últimos comandos ejecutados.

history | tail

Imagen de ejemplo insertando tail.

Usar el comando history con tail

Usar el comando history con tail

Si en vez de tails, utilizamos less, se listaran los últimos comandos línea por línea.

history | less

 

Salida de history detallada

Aquí el plato fuerte del artículo. La verdad es que la salida del comando history es un tanto insulsa, no aporta ningún detalle importante añadido que nos ayude a detectar interacciones no deseadas, o simplemente a recordar nuestro trabajo anterior.

La solución es… fácil, fácil, las variables de entorno ponen fin al problema. Copia y pega lo siguiente.

export HISTTIMEFORMAT='%F %T '

Ahora nos dice la hora y fecha, que el comando se ejecutó por última vez (con terminal abierto).

root@sololinux-demo:~# history
    1  2021-01-06 10:08:58 sudo -V
    2  2021-01-06 10:08:58 root@sololinux-demo:~$ sudo -V
    3  2021-01-06 10:08:58 Sudo versión 1.8.21p2
    4  2021-01-06 10:08:58 versión del complemento de políticas de sudoers 1.8.21p2
    5  2021-01-06 10:08:58 versión de gramática del archivo Sudoers 46
    6  2021-01-06 10:08:58 Sudoers I/O plugin version 1.8.21p2root@sololinux-demo:~$ sudo -V
    7  2021-01-06 10:08:58 Sudo versión 1.8.21p2
    8  2021-01-06 10:08:58 versión del complemento de políticas de sudoers 1.8.21p2
    9  2021-01-06 10:08:58 versión de gramática del archivo Sudoers 46
   10  2021-01-06 10:08:58 Sudoers I/O plugin version 1.8.21p2root@sololinux-demo:~$ sudo -V
   11  2021-01-06 10:08:58 Sudo versión 1.8.21p2
   12  2021-01-06 10:08:58 versión del complemento de políticas de sudoers 1.8.21p2
   13  2021-01-06 10:08:58 versión de gramática del archivo Sudoers 46
   14  2021-01-06 10:08:58 Sudoers I/O plugin version 1.8.21p2root@sololinux-demo:~$ sudo -V
   15  2021-01-06 10:08:58 Sudo versión 1.8.21p2
   16  2021-01-06 10:08:58 versión del complemento de políticas de sudoers 1.8.21p2
   17  2021-01-06 10:08:58 versión de gramática del archivo Sudoers 46
   18  2021-01-06 10:08:58 Sudoers I/O plugin version 1.8.21p2root@sololinux-demo:~$ sudo -V
   19  2021-01-06 10:08:58 Sudo versión 1.8.21p2
   20  2021-01-06 10:08:58 versión del complemento de políticas de sudoers 1.8.21p2
   21  2021-01-06 10:08:58 versión de gramática del archivo Sudoers 46
   22  2021-01-06 10:08:58 Sudoers I/O plugin version 1.8.21p2root@sololinux-demo:~$ sudo -V
   23  2021-01-06 10:08:58 Sudo versión 1.8.21p2
   24  2021-01-06 10:08:58 versión del complemento de políticas de sudoers 1.8.21p2
   25  2021-01-06 10:08:58 versión de gramática del archivo Sudoers 46
   26  2021-01-06 10:08:58 Sudoers I/O plugin version 1.8.21p2
   27  2021-01-06 10:08:58 wget https://www.sudo.ws/sudo/dist/packages/1.9.4p2/sudo_1.9.4-3_ubu2004_amd64.deb
   28  2021-01-06 10:08:58 ls
   29  2021-01-06 10:08:58 sudo gdebi sudo_1.9.4-3_ubu2004_amd64.deb
   30  2021-01-06 10:08:58 sudo apt install gdebi-core
   31  2021-01-06 10:08:58 apt update
   32  2021-01-06 10:08:58 sudo apt install gdebi-core
   33  2021-01-06 10:08:58 sudo gdebi sudo_1.9.4-3_ubu2004_amd64.deb
   34  2021-01-06 10:08:58 sudo -V
   35  2021-01-06 10:09:09 apt update
   36  2021-01-06 10:09:22 apt list --upgradable
   37  2021-01-06 10:09:31 apt full-upgrade
   38  2021-01-06 10:10:41 history
   39  2021-01-06 13:53:42 Sudo versión 1.8.21p2
   40  2021-01-06 13:54:07 apt full-upgrade
   41  2021-01-06 14:11:04 history 8
   42  2021-01-06 14:16:49 history | less
   43  2021-01-06 14:17:14 history | tail
   44  2021-01-06 14:24:55 history | less
   45  2021-01-06 14:29:38 export HISTTIMEFORMAT='%F %T '
   46  2021-01-06 14:29:46 history

Debes tener en cuenta, que la variable añadida es temporal. Para que sea permanente…

sudo echo "export HISTTIMEFORMAT='%F %T '" >> ~/.bash_profile

 

Como último apunte, es posible que tengas miradas indiscretas. En este caso borramos todo el historial.

history -c
Borrar historial con el comando history

Borrar historial con el comando history

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este artículo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales. Uso del comando history en linux.

Chat de SoloLinux en Telegram

 

2 Comentarios

  1. soymicmic
    07/01/2021
    • Sergio G.B.
      07/01/2021

Agregar comentario