Unos tips para usar el comando history en Linux

history

Si os gusta utilizar la terminal seguramente ya conoces algunos atajos para ser más productivo y ahorrar tiempo, aquí os voy a comentar algunos de los que yo utilizó en este caso valiéndome del comando history en bash.

Vamos por lo más sencillo que es listar todos los comandos ejecutados por el usuario:

history

si queremos conocer solo un número determinado, por ejemplo los diez últimos:

history 10

o bien

history | tail -10

history-bash6

Si queremos ejecutar justo el último comando:

!!

por ejemplo:

sudo !!

history-bash3

como ves muy útil si quieres ejecutar como root ese comando que te olvidaste que tenía sus privilegios 🙂

Incluso para que no tener que volvernos a preocupar podemos crear un script del último comando para tenerlo a mano cuando queramos:

echo "!!" > script.sh

También podemos ejecutar un comando específico de nuestra historial:

!287

O varios de forma consecutiva:

!185 & !313 & !298

history-bash2

Si queremos repetir un comando que empieza por uno o varios caracteres por ejemplo:

!wget

en este caso repetirá el último que hayáis usado comenzando por wget

Puede ocurrir que no sepáis como empieza pero si os acordéis de algunos caracteres que contenía la cadena de parámetros, en ese caso la solución es utilizar:

!?

Voy a probar con la combinación wc -l a ver que encontramos:

!?wc -l

history-bash7

O puede que tengáis memoria de pez como un servidor, y apenas recordéis un par de letras o caracteres sueltos de algún complicado comando..

Esto también tiene fácil solución ejecutamos el atajo de teclado Ctrl+r e introducimos alguna parte de ese comando o caracteres que nos suenen , pulsando de forma consecutiva Ctrl+r hasta que aparezca lo que buscamos

history-bash8

En ese momento también podemos editarlo antes de su ejecución utilizando las flechas de dirección ←→ .

Para limpiar el historial de los comandos ejecutados en bash:

history -c

También es posible personalizar el número de resultados que aparecen en nuestro en nuestro historial o impedir que por defecto se incluyan determinados comandos, pero eso lo veremos otro día que para ser solo unos tips ya se está alargando esto 😉

Y si queréis escribir un comando y que no aparezca en el historial en este viejo post os explico como hacer la magia.

Imagen de portada | Reddit (una versión del original de xkcd)

22 thoughts on “Unos tips para usar el comando history en Linux”

  1. Anger says:

    Excelente aporte colega… Muy bien detallado y explicado… Muy recomendado. Comunmente lo utilizo, pero no sabia de ciertos comodines que mensionas.

    1. tannhausser says:

      Gracias Anger!
      Tendré que hacer una segunda parte un día de estos entonces 🙂

  2. davidochobits says:

    Buen artículo!
    Sabías que con CTRL + R puedes buscar dentro del historial ?
    Saludos!

    1. tannhausser says:

      En algún lado del post viene…creo XD
      Gracias por pasarte colega!

  3. diego says:

    La de tiempo que me vas a ahorrar con el “sudo !!” que no me lo sabía!

    1. tannhausser says:

      ese es mi comando preferido XD

      1. Novaktiño says:

        Bueno, ya había leído algo del comando “sudo” antes, pero me vuelve la duda.
        Por ejemplo: ¿qué diferencia hay entre “zypper refresh” y “sudo zypper refresh”?. Veo que en ambos te avisa el requerir privilegios de usuario administrador, aunque te lo dice de manera algo diferente.

        1. tannhausser says:

          La diferencia básica es que sin “sudo” no serías capaz de ejecutar el programa ya que en ese caso zypper refresh (comando que refresca/actualiza los repositorios de software) requiere ser administrador no un usuario normal.

          Con “sudo” y poniendo la contraseña de root adquieres los privilegios necesarios para poderlo ejecutar.

          Dependiendo de la distro se usan más otras variantes como “su” (es lo habitual en openSUSE y zypper, pero para el ejemplo me venía bien “sudo”)

          1. Novaktiño says:

            Ya veo, pero ¿entonces “zypper refresh” sólo, qué requiere para que funcionase?, ¿iniciar una sesión completa como administrador?

  4. chienlit says:

    He de confesar que el comando “sudo !!” es para mí el mejor descubrimiento del año xD

    1. tannhausser says:

      Habría que darle un premio al que lo inventó 🙂

  5. X-MAN says:

    Este va para los Favoritos y dejo reservacion para la segunda parte.XD Muy buen aporte, sobre todo …”sudo !!” . …quien lo diría muchos años atrás mi temor por GNU/Linux fue precisamente la terminal/consola/…etc, hoy en día mientras mas la uso/aprendo, mas me gusta, …ahora entiendo cuando un viejo amigo me decía, La “GUI” esta formando tontos frente a los ordenadores.

    Saludos Tannhausser.

    1. tannhausser says:

      Creo que lo de la terminal nos pasó un poco a todos, yo al principio también pensaba “que ganas de joder con tanto comando…donde esté una interfaz gráfica” y ahora que prácticamente se puede hacer casi todo con una GUI no la cambio por nada.
      Un saludo X-MAN

  6. soymicmic says:

    Muy buen post!

    Me ha encantado el sudo !!

    1. tannhausser says:

      Gracias colega!

  7. victorhck says:

    a qué me recuerda este post???
    http://victorhckinthefreeworld.wordpress.com/2012/07/11/cli-comando-history-en-la-consola/

    Pero el tuyo es más elaborado y completo!!

    Saludos.

    1. D'Artagnan says:

      Es que tener buenos contactos en el mundo asiático debe tener su compensación. . .

    2. tannhausser says:

      @victorhck Nah! ni mejor ni peor…complementarios en todo caso amigo!

      Un saludo!

      1. victorhck says:

        Replicante modesto a la vista!! 😉

        Salud !!

  8. tannhausser says:

    @D’Artagnan Es cierto…la ayuda del querido lider Kim Jong-un fue decisiva a la hora de redactar este post…

    De hecho se rumorea en Pyongyang que el comando sudo !! lo inventó el mismo XD

  9. عبد الباسط says:

    Extraordinario, Gracias!!

  10. Pingback: Historial de comandos en GNU Linux con history - ochobitshacenunbyte
  11. Trackback: Historial de comandos en GNU Linux con history - ochobitshacenunbyte

Deja un comentario