El comando history en Linux (Bash History) ⋆ ALexHost SRL

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills
10.12.2024
No categories

El comando history en Linux (Bash History)

El comando history en Linux es una poderosa herramienta para los usuarios que trabajan con el shell Bash. Realiza un seguimiento de los comandos ejecutados anteriormente, permitiendo a los usuarios ver, recordar e incluso volver a ejecutar comandos sin tener que escribirlos de nuevo. Esto puede aumentar significativamente la productividad al ahorrar tiempo y reducir la posibilidad de cometer errores al volver a escribir comandos largos.

¿Qué es el Historial Bash?

Bash, como muchos otros shells, mantiene un registro de los comandos que introduces en un archivo de historial. En la mayoría de las distribuciones de Linux, este historial se almacena en un archivo llamado .bash_history en el directorio personal de cada usuario (~/.bash_history). Por defecto, cada comando introducido en el intérprete de comandos se añade a este archivo cuando finaliza la sesión, lo que permite a los usuarios volver a ejecutar comandos de sesiones anteriores.

Uso básico del comando history

El comando history es fácil de usar y ofrece varias formas de ver e interactuar con el historial de comandos. Estos son algunos de los usos más comunes:

  • Mostrar el historial de comandos:
    Al ejecutar el comando history sin ningún argumento se mostrará una lista de los comandos más recientes que hayas introducido, junto con un número al lado de cada comando.

    historial

    Esto muestra los últimos n comandos, donde n es típicamente alrededor de 500 o 1000 dependiendo de la configuración de tu sistema.

  • Especifique el número de comandos:
    Puede limitar el número de comandos mostrados especificando un número. Por ejemplo, para ver los últimos 10 comandos:

    history 10

Cómo recuperar comandos del historial

El comando historial también le permite recuperar y reutilizar fácilmente comandos ejecutados anteriormente:

  • Utilizando la Notación ! (Signo de exclamación):
    Esto le permite volver a ejecutar comandos directamente desde el historial:

    • ¡¡!! – Vuelve a ejecutar el último comando que hayas ejecutado.
      ¡¡!!
    • !n – Ejecuta el comando en la posición n de la lista del historial.
      !42

      Ejecuta de nuevo la orden que aparece en el número 42 del historial.

    • !string – Busca el comando más reciente que empiece por string y lo ejecuta.
      !git

      Esto ejecutaría el comando más reciente que comienza con git.

  • Uso de las teclas de flecha:
    Puedes utilizar las teclas de flecha arriba y abajo para desplazarte por los comandos anteriores directamente en la terminal. Esto es especialmente útil para encontrar rápidamente comandos recientes.

Edición y modificación del historial

  • Eliminar entradas específicas:
    Puede eliminar un comando específico del historial utilizando history -d seguido del número de línea:

    history -d 42

    Esto eliminaría el comando de la línea 42 de la lista del historial.

  • Borrar todo el historial:
    Para eliminar todos los comandos del archivo de historial, utilice:

    history -c

    Esto borra el historial de la sesión actual. Para borrar también el historial guardado en ~/.bash_history, sobrescriba el archivo:

    history -c && > ~/.bash_history

Configuración del historial de Bash

El comportamiento del historial puede personalizarse mediante variables de entorno y parámetros de configuración en los archivos ~/.bashrc o ~/.bash_profile:

  • HISTSIZE:
    Esta variable controla cuántos comandos se guardan en memoria durante una sesión. Por ejemplo, para guardar 1000 comandos:

    export HISTSIZE=1000
  • HISTFILESIZE:
    Esta variable establece el número de líneas (comandos) que se guardan en el archivo ~/.bash_history. Por ejemplo:

    export HISTFILESIZE=2000

    Esto significa que se guardarán 2000 comandos en el archivo de historial incluso después de cerrar la sesión.

  • HISTCONTROL:
    Esta variable determina cómo se almacenan los comandos. Las opciones más comunes son:

    • ignoredups – Evita que se añadan comandos duplicados al historial.
    • ignorespace – Los comandos que comienzan con un espacio no se añaden al historial.
    • ignoreboth – Combina ignoredups e ignorespace.

    Ejemplo de configuración de HISTCONTROL para ignorar duplicados:

    export HISTCONTROL=ignoredups
  • HISTTIMEFORMAT:
    Para incluir una marca de tiempo en cada entrada del historial, establezca HISTTIMEFORMAT:

    export HISTTIMEFORMAT="%F %T "

    Esto añadirá a cada entrada del historial la fecha (%F) y la hora (%T).

Búsqueda en el historial

  • Búsqueda inversa con Ctrl r:
    Una de las formas más eficientes de buscar un comando en tu historial es usando Ctrl r. Comienza a escribir parte del comando, y Bash encontrará comandos coincidentes a medida que escribes. Si vuelves a pulsar Ctrl r, recorrerás las coincidencias anteriores.
  • Grep con el historial:
    También puedes usar grep para buscar a través de la salida del historial:

    history | grep git

    Esto mostrará todos los comandos que contengan la palabra git.

Conclusión

El comando historial es una parte fundamental del trabajo con el intérprete de comandos Bash, ya que ofrece una forma de realizar un seguimiento de los comandos anteriores y agilizar los flujos de trabajo. Con su capacidad para recuperar, buscar y personalizar el historial de comandos, ayuda a que las operaciones de línea de comandos sean más eficientes y fáciles de usar. Al dominar el historial y sus características relacionadas, los usuarios pueden acelerar significativamente su trabajo en entornos Linux.

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills