El comando history nos permite reutilizar comandos anteriores que hemos utilizado o ver el registro de acciones que se han realizado en la shell.
Usos básicos
# history
nos muetra los comandos que hemos usado hasta el momento (ejemplo de mi máquina virtual Centos)
204 awk '/.actLabel/ {print $6}' file1.txt | sed -e 's/"//g' & awk '/.actName/ {print $6}' file1.txt | sed -e 's/"//g'
205 cd /var/log/
206 ls
207 pwd
208 cat wtmp
209 ls
210 ls -ltras
211 cat messages
212 sudo cat messages
213 cat /dev/null messages
214 sudo cat /dev/null > messages
215 sudo su -
216 history
Si queremos usar otra vez el comando 208:
# !208
También se puede usar un patrón. Por ejemplo de este history:
218 cd pruebas/
219 ls
220* ls -
221 cat /dev/null messages
222 sudo su -
223 ssh localhost "ls"
224 history
tecleamos lo siguiente :
$ !ssh
y se vuelve a ejecutar la línea anterior de ssh
Tecleando !! ejecutamos de nuevo el último comando utilizado en la shell.
Usando el comando de búsqueda grep es interesante para buscar un comando o varios que hayamos utilizado en nuestra shell, si no recordamos algo que usamos hace días. Esto es interesante también si varios administradores de sistemas acceden al server y queremos ver que se ha realizado en otros accesos:
$ history | grep -i ssh
28 ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub
30 ssh -V
32 ssh localhost
34 ssh -V
35 ssh dedalus@localhost
36 ssh dedalus@localhost uname -r
37 ssh dedalus@localhost "uname -r;hostname"
223 ssh localhost "ls"
225 ssh localhost "ls"
Así podemos reutilizar por ejemplo el history 37 como indicamos anteriormente : # !37 , repetimos esa línea sin tener que escribir todo de nuevo.
Eliminando history al completo o partes
Si en algún momento queremos eliminar el histórico completo de history o determinados comandos que hemos utilizado, haremos lo siguiente:
Si queremos eliminar un comando en concreto tecleamdos history -d (número línea a borrar)
# history -d 210
Si queremos borrar todo el contenido de history:
# history -c
Se mantiene un registro de los comandos y de history en un fichero localizado en el home del usuario que está accediendo a la shell o sistema, este fichero se llama .bash_history, que también si es necesario podemos modificar.