Mostrar solo un rango de entradas del historial de bash

Mostrar solo un rango de entradas del historial de bash

¿Es posible establecer un número fijo para que el comando "historial" muestre solo una cierta cantidad de elementos del historial, como 100, en lugar de todo desde el principio de los tiempos?

Respuesta1

history nimprime sólo nlíneas de la historia. Por ejemplo:

$ history 4
 2000  type history
 2001  help
 2002  help history
 2003  history 4
$

Entonces podemos crear un alias en tu .bashrc:

alias h="history 100"

De help history:

history: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
    Display or manipulate the history list.

    Display the history list with line numbers, prefixing each modified
    entry with a `*'.  An argument of N lists only the last N entries.

Esto es útil si desea mantener un conjunto de historial grande, tal vez incluso unilimitado. ConHISTCONTROL=ignoreboth:erasedupsybúsqueda incremental inversa, es una ocasión especial cuando realmente ejecutas el historycomando.

Respuesta2

Configuración HISTFILESIZEy HISTSIZE puede restringir el tamaño del comando del historial.

Por ejemplo HISTFILESIZE=100y HISTSIZE=100. Restringirá el archivo de historial para almacenar 100 líneas y HISTFILEque almacena el comando de sesión actual en la memoria a 100 líneas.

Cuando se inicia el shell, el historial se inicializa desde el archivo nombrado por la HISTFILEvariable (predeterminado ~/.bash_history). El archivo nombrado por el valor de HISTFILEse trunca, si es necesario, para que no contenga más que el número de líneas especificadas por el valor de la HISTFILESIZEvariable.

Puedes agregar HISTFILESIZE=100 y HISTSIZE=100en tu ~/.bashrcarchivo. Cambia el 100 por el número que quieras.

Explicación

HISTFILESIZE=10yHISTSIZE=10

  1. Comienzas tu sesión.
    1. Su HISTFILE (archivo que almacena su historial de comandos bash) está truncado para contener HISTFILESIZE=10 líneas.
  2. Escribes 50 líneas.
  3. Al final de sus 50 comandos, solo los comandos 41 a 50 estarán en su lista de historial, cuyo tamaño está determinado por HISTSIZE=10.
  4. Terminas tu sesión.
    1. Suponiendo histappendque no esté habilitado, los comandos 41 a 50 se guardan en su HISTFILE que ahora tiene los 10 comandos que tenía al principio más los 10 comandos recién escritos.
    2. Su HISTFILE está truncado para contener HISTFILESIZE=10 líneas.
  5. Ahora tienes 10 comandos en tu historial: los últimos 10 que acabas de escribir en la sesión que acabas de terminar.
  6. Cuando inicia una nueva sesión, comienza de nuevo en 1 con un HISTFILE de HISTFILESIZE=10.

HISTFILESIZE=10yHISTSIZE=5

  1. Comienzas tu sesión.
    1. Su HISTFILE (archivo que almacena su historial de comandos bash) está truncado para contener como máximo HISTFILESIZE=10 líneas.
  2. Escribes 50 líneas.
  3. Al final de sus 50 comandos, solo los comandos 46 a 50 estarán en su lista de historial, cuyo tamaño está determinado por HISTSIZE=5.
  4. Terminas tu sesión.
    1. Suponiendo histappendque no esté habilitado, los comandos 46 a 50 se guardan en su HISTFILE que ahora tiene los 10 comandos que tenía al principio más los 5 comandos recién escritos.
    2. Su HISTFILE está truncado para contener HISTFILESIZE=10 líneas.
  5. Ahora tienes 10 comandos en tu historial: 5 de una sesión anterior y los últimos 5 que acabas de escribir en la sesión que acabas de terminar.
  6. Cuando inicia una nueva sesión, comienza de nuevo en 1 con un HISTFILE de HISTFILESIZE=10.

HISTFILESIZE=5yHISTSIZE=10

  1. Comienzas tu sesión.
    1. Su HISTFILE (archivo que almacena su historial de comandos bash) está truncado para contener como máximo HISTFILESIZE=5 líneas.
  2. Escribes 50 líneas.
  3. Al final de sus 50 comandos, solo los comandos 41 a 50 estarán en su lista de historial, cuyo tamaño está determinado por HISTSIZE=10.
  4. Terminas tu sesión.
    1. Suponiendo histappendque no esté habilitado, los comandos 41 a 50 se guardan en su HISTFILE que ahora tiene los 5 comandos que tenía al principio más los 10 comandos recién escritos.
    2. Su HISTFILE está truncado para contener HISTFILESIZE=5 líneas.
  5. Ahora tienes 5 comandos en tu historial: los últimos 5 que acabas de escribir en la sesión que acabas de terminar.
  6. Cuando inicia una nueva sesión, comienza de nuevo en el paso 1 con un HISTFILE de HISTFILESIZE=5.

Esta gran explicación de: stackoverflow.com

información relacionada