Antworten:
Alles, was Sie tun müssen, ist HISTSIZE
in Ihrem Bash-Profil ( ~/.bash_profile
) festgelegt. Sie können HISTFILESIZE
unset lassen . Dadurch werden sowohl der speicherinterne als auch der dateibasierte Verlauf konfiguriert .
# Saves 10 million lines in memory and in the bash history file.
HISTSIZE=10000000
Erklärung, zusätzliche Informationen.
Das Problem ist, dass HISTFILESIZE nur den maximalen Verlauf festlegt, der beim Starten einer Sitzung in der Datei gespeichert wird. HISTSIZE bestimmt, wie viele Zeilen am Ende einer Sitzung gespeichert werden. Wenn HISTFILESIZE größer als HISTSIZE ist, wird nie mehr als HISTSIZE angezeigt, da die Datei mit HISTSIZE-Befehlen überschrieben wird (es sei denn, Sie legen den Verlauf für das Anhängen fest, dies ist jedoch ein separates Thema: Schauen Sie histappend
in den Shell-Befehlen nach). .
Dies ist der Grund, warum Sie keine Wirkung sehen. Bei der Standardeinstellung HISTSIZE (wahrscheinlich 500) wird Ihre Verlaufsdatei immer durch die neuesten $ HISTSIZE-Befehle überschrieben. Alles, was älter ist (was möglicherweise die Liste über $ HISTSIZE hinaus erweitert), wird gelöscht.
In den meisten Fällen muss HISTFILESIZE nicht unabhängig von HISTSIZE eingestellt werden.
HISTSIZE legt fest, wie viele Zeilen in die Verlaufsdatei geschrieben werden. Die Befehlsliste wird beim Beenden abgeschnitten, bevor in die Verlaufsdatei geschrieben wird, wobei N neueste Zeilen beibehalten werden. Standardmäßig überschreibt diese Liste die Verlaufsdatei.
HISTFILESIZE legt fest, wie groß die Verlaufsdatei (in Zeilen) sein kann. Die Datei wird beim Start abgeschnitten, wobei N neueste Zeilen erhalten bleiben. Darüber hinaus wird die Verlaufsdatei möglicherweise abgeschnitten, wenn HISTFILESIZE festgelegt wird.
Obwohl es undokumentiert zu sein scheint, legt BASH schließlich HISTFILESIZE basierend auf HISTSIZE fest, wenn HISTSIZE während des Starts festgelegt wird. Ich habe dies auf macOS und einigen Ubuntu-Varianten ausprobiert und das Verhalten ist konsistent. Wenn Sie HISTSIZE in einer Startdatei (Set nicht über die Kommandozeile mit allen Mitteln), wird HISTFILESIZE übereinstimmen eingestellt werden. (Probieren Sie es selbst aus: Setzen Sie HISTSIZE in .bash_profile auf einen beliebig großen Wert, beenden Sie und starten Sie ein neues Terminal, echo $HISTSIZE $HISTFILESIZE
und Sie werden feststellen, dass sie übereinstimmen.)
Infolgedessen gibt es keinen Grund, HISTFILESIZE zu berühren, es sei denn, Sie möchten andere Werte verwenden, und die Verwendungsfälle für andere Werte sind selten (und umfassen in der Regel weitere Einstellungen für die Verlaufsanpassung, um nützliche Informationen zu erhalten).