Come impostare il numero di comandi che la cronologia richiama


15

Sto usando bash. Per sfogliare la cronologia dei miei comandi, sto chiamando il historycomando che credo stia chiamando il programma Gnu con lo stesso nome. (Non so se esiste un modo specifico bash migliore).

Nel mio .bashrc al momento ho una linea export PROMPT_COMMAND='history -a'per preservare la cronologia dalle mie sessioni multiple di bash che sto correndo.

Se faccio la cronologia attualmente vedo solo 524 voci. È configurabile? Vorrei aumentare questo a un numero molto più grande, ad esempio 2000.

Risposte:


19

Prima di tutto, history è il modo specifico bash, nessuno di meglio. Il historycomando è un built-in bash come puoi vedere eseguendo

$ type history 
history is a shell builtin

Ora, il numero di comandi che ricorda è controllato dalla HISTSIZEvariabile. Per impostarlo su un numero maggiore, aggiungi questa riga al tuo .profile(perché questo è un posto migliore rispetto a quello .bashrc, vedi qui ):

export HISTSIZE=2000

D'ora in poi, historyverranno restituiti gli ultimi 2000 comandi eseguiti.


5

Sì, man bash dice:

HISTSIZE - Il numero di comandi da ricordare nella cronologia dei comandi

Ma c'è un Readline variabile:history-size

Imposta il numero massimo di voci della cronologia salvate nell'elenco della cronologia. Se impostato su zero, tutte le voci della cronologia esistenti vengono eliminate e non vengono salvate nuove voci. Se impostato su un valore inferiore a zero, il numero di voci della cronologia non è limitato. Per impostazione predefinita, il numero di voci della cronologia non è limitato.

È possibile impostare history-sizecon HISTSIZE=1000, bind 'set history-size 1000'o con la seguente riga nel ~/.inputrc:set history-size 1000

Esempi :

HISTSIZE=1000
bind 'set history-size 0'
echo $HISTSIZE # prints 1000
bind -v | grep history-size # prints set history-size 0
history # prints nothing

bind 'set history-size 0'
HISTSIZE=1000
echo $HISTSIZE # prints 1000
bind -v | grep history-size # prints set history-size 1000
history # prints    13  echo $HISTSIZE\n14  bind -v | grep history-size\n15  history

history-sizedisponibile da bash-4.0-alpha: CAMBIAMENTI


2

La HISTSIZEvariabile determina quanti comandi sono conservati nella cronologia in esecuzione e HISTFILESIZEdetermina quanti comandi della cronologia in esecuzione vengono salvati una volta terminata la shell.

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.