Comment changer la taille de l'histoire pour toujours?

69

La taille par défaut de l'historique dans Ubuntu est 1000 mais elle est trop petite. Je veux le changer à 10000, donc j'ajoute

export HISTSIZE=10000
export HISEFILESIZE=10000

à .profile et 'source' il

source .profile

alors je cours

echo $HISTSIZE
echo $HISTFILESIZE

1000 était affiché pour les deux mais je redémarre mon ordinateur, il est passé par défaut. Pourquoi ça ne marche pas?

Mitoxys
la source
Vous avez une faute de frappe ici dans la question: export HISEFILESIZE=10000(même s'il semble que vous ne l'ayez pas fait .profilesi les échos ont fonctionné). Juste au cas où quelqu'un le regarderait ici, ça devrait êtreHISTFILESIZE
Leo

Réponses:

71

J'ai essayé la même chose, seulement pour découvrir que sournois Ubuntu définit ces variables ~/.bashrcpar défaut, ce qui est exécuté au lieu de ~/.profilepour les shells non-login tels que simplement ouvrir une fenêtre de terminal. Changer ces lignes en ~/.bashrccorrige ça pour moi:

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
Paul
la source
6
hisfilesize est en ko?
Patoshi a annoncé le
12
@duckx Non, HISTFILESIZE correspond au nombre de lignes stockées dans le fichier d' historique , tandis que HISTSIZE correspond au nombre de lignes stockées et disponibles pour chaque processus du shell (puis enregistrées dans HISTFILESIZE). Notez qu'en l'absence de valeur (ni de nombre, ni de négatif), aucune limitation ne se produit.
vaab
2
Cela ne fonctionne pas pour une raison quelconque sur le terminal XFCE
Michal Przybylowicz
1
@ MichalPrzybylowicz: pourrait être corrigé en écrivant /etc/bash.bashrcsi cela vous convient. Voir ci-dessous. (peut-être était-ce aussi la disparue export)
serv-inc
43

Du manuel de référence 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). 

Donc pour une liste d’historique infinie , make:
HISTSIZE = (un nombre inférieur à 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. 

Donc, pour un .bash_history fichier historique infini , make:
HISTFILESIZE = (un nombre inférieur à 0 )

Pair Sir Parser
la source
2

Comme mentionné par @Michal Przybylowicz , ces fichiers semblent parfois être ignorés dans Xubuntu (et Lubuntu). Si oui, vous pouvez plutôt écrire les lignes

export HISTSIZE=10000
export HISTFILESIZE=10000

à/etc/bash.bashrc . Cela modifiera globalement les valeurs de ces variables d'environnement.

serv-inc
la source