Jak ustawić liczbę wywołań historii poleceń

15

Używam bash. Aby przejrzeć historię poleceń, wywołuję historypolecenie, które moim zdaniem wywołuje program Gnu o tej samej nazwie. (Nie wiem, czy jest lepszy sposób na bash).

W moim .bashrc mam obecnie linię export PROMPT_COMMAND='history -a'do przechowywania historii z moich wielu sesji bash, które prowadzę.

Jeśli robię historię, obecnie widzę tylko 524 wpisy. Czy to można skonfigurować? Chciałbym zwiększyć to do znacznie większej liczby, powiedzmy 2000.

Gilles
źródło

Odpowiedzi:

19

Przede wszystkim history jest to specyficzny sposób na bash, nic lepszego. historyPolecenie jest wbudowane bash jak widać uruchamiając

$ type history 
history is a shell builtin

Teraz liczba poleceń, które pamięta, jest kontrolowana przez HISTSIZEzmienną. Aby ustawić go do większej liczby dodać tę linię do listy .profile(dlaczego jest to lepsze miejsce dla niego, niż .bashrcmożna znaleźć tutaj ):

export HISTSIZE=2000

Od teraz historyzwróci ostatnie 2000 uruchomionych poleceń.

terdon
źródło
5

Tak, man bashmówi:

HISTSIZE - liczba poleceń do zapamiętania w historii poleceń

Ale jest Readlinezmienna:history-size

Ustaw maksymalną liczbę pozycji historii zapisanych na liście historii. Jeśli ustawione na zero, wszystkie istniejące wpisy historii zostaną usunięte i żadne nowe wpisy nie zostaną zapisane. Jeśli ustawiona na wartość mniejszą od zera, liczba wpisów historii nie jest ograniczona. Domyślnie liczba wpisów historii nie jest ograniczona.

Można ustawić history-sizez HISTSIZE=1000, bind 'set history-size 1000'lub z następnego wiersza w twojej ~/.inputrc:set history-size 1000

Przykłady :

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-sizedostępne od bash-4.0-alpha: ZMIANY

Evgeny Vereshchagin
źródło
2

Te HISTSIZEnakazy zmienne ile polecenia są przechowywane w historii uruchomiony i HISTFILESIZEokreśla, jak wiele poleceń z historii uruchomiony zapisywane są raz wyjść powłoki.

Bratchley
źródło