Con el terminal: Repite el comando anterior con !!

7
4820

Seguimos con los comandos interesantes y útiles que a veces olvidamos utilizar teniéndolos implícitos en nuestro sistema. En este caso usaremos uno que nos permite jugar un poco con nuestro historial.

Pongamos un ejemplo sencillo, abran un terminal y pongan:


$ nano /etc/sudoers

Se podrán percatar de que no podemos editar el fichero si no somos administradores. Usemos entonces sudo, pero para no repetir el comando ponemos:

$ sudo !!

Y esto repetirá:

$ sudo nano /etc/sudoers

Es decir, que el comando !! repetirá el comando que ejecutamos anteriormente en el terminal. También podemos ejecutar otro comando que no sea anterior conociendo su número en el historial..

Abran un terminal y pongan:

$ history

En mi caso sale algo como esto:

[code] 495  cd Desktop/
496  ls
497  wget -c http://cinnamon.linuxmint.com/tmp/blog/119/classic.png
498  cd
499  cvlc Música/Jamendo/The\ Patinettes\ -\ Bliss\ -\ 2011.06.03/
500  cvlc Música/Rock/
[/code]

Si yo ejecuto el comando !! se ejecuta el comando  anterior, que en este caso sería:

$ cvlc Música/Rock/

Pero si quiere ejecutar por ejemplo el comando:

$ wget -c http://cinnamon.linuxmint.com/tmp/blog/119/classic.png

Solo tendría que poner:

$ !497

El 497 es el número que tiene delante el comando. ¿Sencillo verdad?

7 COMENTARIOS

  1. Yo suelo usar un alias para filtrar:

    alias h='history | egrep -i'

    De hecho, ahora que lo pienso, quizás sea mejor agregar una función como esta al .bashrc:

    h () {
    # Función para listar comandos del historial
    HISTERROR="Se puede utilizar como máximo un parámetro."
    if [ $# -eq 0 ] ; then
    history | less
    elsif [ $# -eq 1 ] ; then
    history | egrep -i $1 | less
    else
    echo $HISTERROR
    fi
    }

    De esta manera, basta con solo usar h para listar todos los comandos del historial, o h parámetro para listar los comandos que coincidan con el parámetro (que por cierto, permite expresiones regulares).

Dejar una respuesta