¿Cómo cambiar el tamaño del historial para siempre?

69

El tamaño predeterminado del historial en Ubuntu es 1000 pero es demasiado pequeño. Quiero cambiarlo a 10000, así que agrego

export HISTSIZE=10000
export HISEFILESIZE=10000

a .profile y 'fuente' se

source .profile

entonces corro

echo $HISTSIZE
echo $HISTFILESIZE

Se mostró 1000 para ambos, pero reinicié mi computadora, se volvió 'predeterminada'. ¿Por qué no funciona?

Mitoxis
fuente
Tienes un error tipográfico aquí en la pregunta: export HISEFILESIZE=10000(aunque parece que no lo hiciste en tu .profilesi los ecos funcionaban). En caso de que alguien lo vea aquí, debería serHISTFILESIZE
Leo

Respuestas:

71

Intenté lo mismo, solo para descubrir que el astuto Ubuntu establece estas variables ~/.bashrcde forma predeterminada, que se ejecuta en lugar de ~/.profileshells que no son de inicio de sesión, como simplemente abrir una ventana de terminal. Cambiar estas líneas lo ~/.bashrcarregló para mí:

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
Pablo
fuente
66
hisfilesize está en KB?
Patoshi パ ト シ
12
@duckx No, HISTFILESIZE es el número de líneas almacenadas en el archivo de historial , mientras que HISTSIZE es el número de líneas almacenadas y disponibles por cada proceso de shell (y luego guardadas en HISTFILESIZE). Tenga en cuenta que sin valor (o sin número, o negativo), no se produce ninguna limitación.
vaab
2
Esto no funciona por alguna razón en la Terminal XFCE
Michal Przybylowicz
1
@MichalPrzybylowicz: podría solucionarse escribiendo /etc/bash.bashrcsi eso es aceptable para usted. Vea abajo. (tal vez también fue la falta export)
serv-inc
43

Del Manual de referencia de Bash :

HISTSIZE 
    The maximum number of commands to remember on the history list.

    If the value is 0, 
       **commands are not saved** in the history list. 

    Numeric values less than zero result in 
       every command being saved on the history list (there is no limit). 

Entonces, para una lista de historia infinita , haga:
HISTSIZE = (algún número menor que 0 )

HISTFILESIZE 
    The maximum number of lines contained in the history file. 

    When this variable is assigned a value, 
        the history file is truncated, if necessary, 
        to contain no more than that number of lines 
        by removing the oldest entries. 

        The history file is also truncated to this size after 
        writing it when a shell exits. 

    If the value is 0, 
        **the history file is truncated to zero size.** 

    Non-numeric values and numeric values less than zero 
        inhibit truncation. 

Entonces, para un .bash_history archivo de historial infinito ,
cree : HISTFILESIZE = (algún número menor que 0 )

Par Sir Parser
fuente
2

Como mencionó @Michal Przybylowicz , estos archivos parecen ser ignorados en Xubuntu (y Lubuntu) a veces. Si es así, podrías escribir las líneas

export HISTSIZE=10000
export HISTFILESIZE=10000

a/etc/bash.bashrc . Esto cambiará los valores de estas variables de entorno globalmente.

serv-inc
fuente