Come modificare le dimensioni della cronologia per sempre?


69

La dimensione predefinita della cronologia in Ubuntu è 1000 ma è troppo piccola. Voglio cambiarlo in 10000, quindi aggiungo

export HISTSIZE=10000
export HISEFILESIZE=10000

a .profile e 'fonte' it

source .profile

poi corro

echo $HISTSIZE
echo $HISTFILESIZE

1000 è stato visualizzato per entrambi, ma ho riavviato il mio computer è diventato "predefinito". Perché non funziona?


Hai un refuso qui nella domanda: export HISEFILESIZE=10000(anche se sembra che tu non abbia fatto il tuo .profilese l'eco ha funzionato). Nel caso in cui qualcuno lo guardi qui, dovrebbe essereHISTFILESIZE
Leo

Risposte:


71

Ho provato la stessa cosa, solo per scoprire che Ubuntu subdola imposta queste variabili ~/.bashrcdi default, che viene eseguito invece che ~/.profileper shell non di login come l'apertura di una finestra di terminale. La modifica di queste righe è stata ~/.bashrcrisolta per me:

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

6
hisfilesize è in KB?
Patoshi パ ト シ

12
@duckx No, HISTFILESIZE è il numero di righe memorizzate nel file cronologico , mentre HISTSIZE è il numero di righe memorizzate e disponibili per ogni processo di shell (e quindi salvato in HISTFILESIZE). Si noti che senza valore (o senza numero o negativo), non si verifica alcuna limitazione.
vaab,

2
Questo non funziona per qualche motivo sul Terminale XFCE
Michal Przybylowicz il

1
@MichalPrzybylowicz: potrebbe essere risolto scrivendo /etc/bash.bashrcse questo è accettabile per te. Vedi sotto. (forse era anche il mancante export)
serv-inc,

43

Dal manuale di riferimento di 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). 

Quindi per un elenco infinito di cronologia , crea:
HISTSIZE = (un numero inferiore a 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. 

Quindi, per un .bash_history file di cronologia infinito , crea:
HISTFILESIZE = (un numero inferiore a 0 )


2

Come menzionato da @Michal Przybylowicz , questi file sembrano essere ignorati in Xubuntu (e Lubuntu) a volte. In tal caso, potresti invece scrivere le righe

export HISTSIZE=10000
export HISTFILESIZE=10000

a/etc/bash.bashrc . Ciò cambierà i valori di queste variabili di ambiente a livello globale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.