¿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 n
imprime sólo n
lí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:erasedups
ybúsqueda incremental inversa, es una ocasión especial cuando realmente ejecutas el history
comando.
Respuesta2
Configuración HISTFILESIZE
y HISTSIZE
puede restringir el tamaño del comando del historial.
Por ejemplo HISTFILESIZE=100
y HISTSIZE=100
. Restringirá el archivo de historial para almacenar 100 líneas y HISTFILE
que 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 HISTFILE
variable (predeterminado ~/.bash_history). El archivo nombrado por el valor de HISTFILE
se trunca, si es necesario, para que no contenga más que el número de líneas especificadas por el valor de la HISTFILESIZE
variable.
Puedes agregar HISTFILESIZE=100
y HISTSIZE=100
en tu ~/.bashrc
archivo. Cambia el 100 por el número que quieras.
Explicación
HISTFILESIZE=10
yHISTSIZE=10
- Comienzas tu sesión.
- Su HISTFILE (archivo que almacena su historial de comandos bash) está truncado para contener HISTFILESIZE=10 líneas.
- Escribes 50 líneas.
- 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.
- Terminas tu sesión.
- Suponiendo
histappend
que 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. - Su HISTFILE está truncado para contener HISTFILESIZE=10 líneas.
- Suponiendo
- Ahora tienes 10 comandos en tu historial: los últimos 10 que acabas de escribir en la sesión que acabas de terminar.
- Cuando inicia una nueva sesión, comienza de nuevo en 1 con un HISTFILE de HISTFILESIZE=10.
HISTFILESIZE=10
yHISTSIZE=5
- Comienzas tu sesión.
- Su HISTFILE (archivo que almacena su historial de comandos bash) está truncado para contener como máximo HISTFILESIZE=10 líneas.
- Escribes 50 líneas.
- 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.
- Terminas tu sesión.
- Suponiendo
histappend
que 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. - Su HISTFILE está truncado para contener HISTFILESIZE=10 líneas.
- Suponiendo
- 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.
- Cuando inicia una nueva sesión, comienza de nuevo en 1 con un HISTFILE de HISTFILESIZE=10.
HISTFILESIZE=5
yHISTSIZE=10
- Comienzas tu sesión.
- Su HISTFILE (archivo que almacena su historial de comandos bash) está truncado para contener como máximo HISTFILESIZE=5 líneas.
- Escribes 50 líneas.
- 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.
- Terminas tu sesión.
- Suponiendo
histappend
que 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. - Su HISTFILE está truncado para contener HISTFILESIZE=5 líneas.
- Suponiendo
- Ahora tienes 5 comandos en tu historial: los últimos 5 que acabas de escribir en la sesión que acabas de terminar.
- Cuando inicia una nueva sesión, comienza de nuevo en el paso 1 con un HISTFILE de HISTFILESIZE=5.