Unos tips para usar el comando history en Linux

por | 29 agosto, 2014

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)

24 pensamientos en “Unos tips para usar el comando history en Linux

  1. Anger

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

    Responder
    1. tannhausser Autor

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

      Responder
      1. Novaktiño

        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.

        Responder
        1. tannhausser Autor

          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»)

          Responder
          1. Novaktiño

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

  2. chienlit

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

    Responder
  3. X-MAN

    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.

    Responder
    1. tannhausser Autor

      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

      Responder
    1. D'Artagnan

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

      Responder
    2. tannhausser Autor

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

      Un saludo!

      Responder
  4. tannhausser Autor

    @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

    Responder
  5. Pingback: Historial de comandos en GNU Linux con history - ochobitshacenunbyte

  6. Excerbor

    Y si quisiera ejecutar el último comando que he introducido en una segunda terminal en una primera terminal, ¿se podría hacer o no?

    Responder

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.