Mi Blog

Patrocinador:

No te olvides seguirme en Facebook.

Tan solo tienes que hacer click en Me Gusta

 

 

x

Cómo ver el historial de comandos en GNU/Linux

Cómo ver el historial de comandos en GNU/Linux

(Tiempo estimado: 6 - 11 minutos)

GNU/Linux almacena todos los comandos que ejecutan todos los usuarios del sistema en consola. Su uso es muy sencillo y cómodo, ya que nos ahorra muchísimo tiempo a la hora de volver a escribir ciertos comandos o buscar qué ha hecho qué usuario.

Seguid leyendo y os enseñaré a usar el comando "history" para ver el histórico de comandos...

 

 

¿QUÉ ES EL HISTORIAL DE COMANDOS?

GNU/Linux registra prácticamente la totalidad de los eventos, comandos y acciones que ocurren en el sistema. En esos registros, se incluyen también los comandos que ejecutan los usuarios en el sistema a través del historial de comandos.

 

 

Con "history" podemos ver los comandos que hemos ejecutado anteriormente

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • Un PC con GNU/Linux (cualquier distribución) 

 

 

2.- VER EL HISTORIAL DE COMANDOS

Para ver el historial completo, ejecutaremos solamente el comando "history". Si el historial es muy largo, posiblemente se salga de pantalla y no veamos los comandos mas viejos del histórico. Esta parte la veremos en uno de los apartados siguientes.  Si lo que queremos es ver todo el histórico de la forma mas rápida y sencilla ejecutaremos:

raul@DEBIAN:~$ history
1 suto apt-get install xrdp
2 sudo apt-get install xrdp
3 sudo apt-get install xfce4
4 sudo apt-get install chromium
5 top
6 sudo apt-get install firefox
7 apt-cache search firefox
8 apt-cache search ^firefox
9 sudo apt-get install firefox-esr
10 top
11 uname -a
12 az
13 apt-cache search azure
14 uptime
15 free -M

 

 

También podemos ver el historial de comandos mostrando el fichero donde se guardan todos los comandos:

raul@DEBIAN:~$ cat $HOME/.bash_history
1 suto apt-get install xrdp
2 sudo apt-get install xrdp
3 sudo apt-get install xfce4
4 sudo apt-get install chromium
5 top
6 sudo apt-get install firefox
7 apt-cache search firefox
8 apt-cache search ^firefox
9 sudo apt-get install firefox-esr
10 top
11 uname -a
12 az
13 apt-cache search azure
14 uptime
15 free -M

 

 

3.- CONFIGURAR EL HISTORIAL

La configuración por defecto de history hace que solamente se guarden 2.000 comandos en el fichero ~/.bash_history de cada usuario. Si queremos cambiar este valor, hay que hacerlo a través de la variable HISTFILESIZE.

El número de comandos que history puede almacenar en memoria es 1.000. Por tanto, si ejecutamos "history" en una terminal, aunque el fichero ~/.bash_history contenga 3.000 comandos almacenados, la terminal únicamente mostrará los últimos 1.000 comandos ejecutados. Este parámetro se puede configurar a través de la variable HISTSIZE.

A través de la variable HISTCONTROL se puede controlar el registro de comandos repetidos o comandos que empiezan por un espacio.

Por normal general, no se suele cambiar el histórico de comandos, pero si necesitamos guardar mas información y durante mas tiempo, deberemos realizar unos pequeños cambios. Podemos configurar el history a través de 2 ficheros:

  • $HOME/.bashrc: Está ubicado en la partición home de cada uno de los usuarios del sistema
  • /etc/bash.bashrc: Es equivalente al anterior, pero su configuración definida en él afectará a todos los usuarios del sistema.

 

Si solo queremos aplicar los cambios en nuestro usuario, editaremos (si ya existen) ó añadiremos las siguientes líneas al fichero $HOME/bashrc:

HISTSIZE=50000
HISTFILESIZE=60000
HISTCONTROL=ignoreboth

 

 

Si queremos que todos los comandos de todas las consolas se "fusionen" en el mismo fichero de history, ejecutaremos:

raul@DEBIAN:~$ shopt -s histappend

 

 

Para recargar la configuración de history, ejecutaremos lo siguiente:

raul@DEBIAN:~$ source $HOME/.bashrc

4.- BUSCAR EN EL HISTORIAL

Existen varias maneras de buscar dentro del histórico. Por ejemplo, con el siguiente comando obtenemos gracias a "head" los 8 comandos más viejos:

raul@DEBIAN:~$ history | head -n 8
1 suto apt-get install xrdp
2 sudo apt-get install xrdp
3 sudo apt-get install xfce4
4 sudo apt-get install chromium
5 top
6 sudo apt-get install firefox
7 apt-cache search firefox
8 apt-cache search ^firefox

 

 

Si por el contrario, queremos ver los últimos 12 comandos, haremos uso del comando "tail":

raul@DEBIAN:~$ history | tail -n 12
150 ls
151 cat .bash_history
152 history
153 cat .bash_history
154 exit
155 history
156 cat .bash_history
157 shopt --help
158 man history
159 history | more
160 history | head -n 8
161 history | tail -n 12

 

 

Si queremos buscar por algún comando en concreto, podemos apoyarnos en el comando "grep" para buscar un patrón concreto. Por ejemplo, si queremos buscar todos los comandos que coincidan con el patrón "xfce4" ejecutaremos lo siguiente:

raul@DEBIAN:~$ history | grep "xfce4"
3 sudo apt-get install xfce4
162 history | grep "xfce4"

 

 

5.- BUSCAR EN EL HISTORIAL Y EJECUTAR (ATAJOS)

Cada comando se almacena en el fichero con un número que corresponde con la línea en la que está el comando. Si queremos ejecutar por ejemplo el comando que está en la línea 140, ejecutaremos lo siguiente:

raul@DEBIAN:~$ !140
sudo cat /etc/passwd | grep manuel
manuel:x:1001:1001:,,,:/home/manuel:/bin/bash

 

 

Si queremos ejecutar el último comando ejecutado, ejecutaremos:

raul@DEBIAN:~$ !!
sudo cat /etc/passwd | grep manuel
manuel:x:1001:1001:,,,:/home/manuel:/bin/bash

 

 

Si queremos ejecutar el último comando que coincida con un patrón, por ejemplo "wc", ejecutaremos el siguiente comando. Hay que tener en cuenta que se ejecutará el último comando que coincida con al patrón dado:

raul@DEBIAN:~$ wc -l /boot/grub/grub.cfg 
197 /boot/grub/grub.cfg
raul@DEBIAN:~$ !wc
wc -l /boot/grub/grub.cfg
197 /boot/grub/grub.cfg

 

 

Una de las mejores formas de buscar dentro del history, es pulsar CTROL+R e inmediatamente escribir lo que queremos buscar:

(reverse-i-search)`xrdp': sudo apt-get install xrdp

 

 

6.- LIMPIAR EL HISTORIAL

Si queremos limpiar el historial de comandos, debemos ejecutar el siguiente comando:

raul@DEBIAN:~$ history -c

 

 

También podemos borrar el histórico borrando directamente el fichero donde se guarda el histórico de comandos. Para ello ejecutaremos el siguiente comando:

raul@DEBIAN:~$ rm -f $HOME/.bash_history

 

 

Si queremos borrar únicamente una de las líneas del historial, ejecutaremos el siguiente comando, donde el número es la línea de comando que queremos borrar del historial:

raul@DEBIAN:~$ history -d 125

 

 

ENJOY!


Raúl Prieto Fernández

Sitio Web: raulprietofernandez.net

Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado.

Escribir un comentario

Código de seguridad
Refescar