Immer wenn ich eine neue Instanz eines Terminals öffne, ist der Verlauf leer. Warum das? Muss ich etwas einrichten? In Bash ist dies jedoch nicht erforderlich.
zsh
command-history
Gilles 'SO - hör auf böse zu sein'
quelle
quelle
zsh
,bash
schreiben aber beim Beenden standardmäßig in seine Verlaufsdateien. Wenn Sie diese zuvor noch nicht verwendet und einige Shells geöffnet haben, wird der Verlauf jetzt angezeigt, bis sich mindestens einer abmeldet und die Verlaufsdatei geschrieben wird.Antworten:
Bash und zsh haben unterschiedliche Standardeinstellungen. Zsh speichert den Verlauf standardmäßig nicht in einer Datei.
Wenn Sie zsh ohne Konfigurationsdatei ausführen, wird eine Konfigurationsoberfläche angezeigt. Wählen Sie in dieser Konfigurationsoberfläche
Überprüfen Sie dann die vorgeschlagenen Einstellungen und wählen Sie
Wiederholen Sie diesen Vorgang für die anderen Untermenüs für (2) Vervollständigung, (3) Tastenkombinationen und (4) Optionen und wählen Sie dann
aus dem Hauptmenü.
Die empfohlenen Einstellungen für den Verlauf sind
Ich würde einen anderen Namen für die Verlaufsdatei verwenden, um anzuzeigen, dass es sich um die Verlaufsdatei von zsh handelt. Auf einem modernen System können 1000 Zeilen erhöht werden.
Diese Zeilen gehen
~/.zshrc
übrigens hinein.quelle
Obwohl die vorhandene Antwort korrekt ist, dachte ich, es könnte sich lohnen, hinzuzufügen, dass es möglicherweise eine bessere Option gibt, als
appendhistory
Ihren Verlauf zu speichern, und dies istSHARE_HISTORY
.Aus den Dokumenten
SHARE_HISTORY
"beide importieren neue Befehle aus der Verlaufsdatei und bewirken auch, dass Ihre eingegebenen Befehle an die Verlaufsdatei angehängt werden". Dies bedeutet, dass Shells auch die Geschichte des anderen kennen, ohne die aktuelle schließen oder eine neue öffnen zu müssen.Alles in allem würden Sie es also so einstellen:
quelle
INC_APPEND_HISTORY_TIME
, das von allen Terminals wie oben in den Verlauf schreibt, aber dieser Verlauf "wird nicht sofort von anderen Instanzen der Shell verfügbar sein, die dieselbe Verlaufsdatei verwenden". Dies ist für mich sinnvoller, da ich dann den Verlauf jedes Terminals unabhängig durchlaufen kann, aber immer noch alles protokolliert ist.INC_APPEND_HISTORY_TIME
, warum dies logischer sein könnte. Ich hätte wahrscheinlich nicht "besser" sagen sollen, ich denke, es ist an dieser Stelle nur eine Frage der persönlichen Präferenz!Wenn Sie zum ersten Mal von Bash zu Zsh wechseln, wird Ihr Bash-Verlauf nicht übertragen. Der gesamte Verlauf, den Sie in bash hatten, befindet sich also immer noch in der Verlaufsdatei von bash. zsh beginnt mit der Erfassung des Verlaufs ab dem Zeitpunkt, an dem Sie ihn als Shell verwenden.
Wenn Sie es nicht für die Erfassung des Verlaufs eingerichtet haben, können Sie den Konfigurationsassistenten erneut ausführen und zsh mitteilen, wie viel Verlauf gespeichert werden soll. Ändern Sie entweder den Namen von ~ / .zshrc oder löschen Sie ihn, um eine neue Aufnahme des Assistenten zu erhalten.
quelle
Wenn es nicht funktioniert und all dies bereits vorhanden ist, versuchen Sie Folgendes:
Dadurch wird der aktuelle Verlauf in die Verlaufsdatei geschrieben. Und wenn Sie bekommen:
Dann ist es Zeit, die Berechtigungen für die Datei und das übergeordnete Verzeichnis zu überprüfen .
quelle