Ich wechsle oft zwischen Bash und Zsh und verwende die Verlaufssuchfunktion, um einen Befehl wiederherzustellen.
Da Bash und Zsh jedoch unterschiedliche Verlaufsdateien haben, stelle ich häufig fest, dass der gesuchte Befehl in der anderen Shell ausgeführt wurde.
Gibt es eine Möglichkeit, den Verlauf zwischen den beiden zu teilen oder zu synchronisieren?
bash
zsh
command-history
synchronization
Andrei
quelle
quelle
Antworten:
Wenn Sie die Standardeinstellungen für bash und zsh verwenden:
Jetzt haben Sie in beiden Shells dieselbe Datei für den Verlauf.
quelle
: 1399608924:0;hg diff
meine .bash_history einfachhg diff
. Vielleicht liegt es daran, dass ich oh-my-zsh benutze?unsetopt EXTENDED_HISTORY
, um einen Bash-kompatiblen Nur-Befehl-Verlauf zu erhalten.Nicht genau das, wonach Sie gesucht haben, aber um von bash nach zsh zu importieren, können Sie dieses node.js-Skript verwenden:
Quelle
quelle
Als Antwort auf Elad haben Benutzer möglicherweise .bash_history-Dateien, die vor jedem Befehl eine zusätzliche Zeile haben, die mit (#) beginnt und nachfolgende Ziffern (123456789) enthält, zum Beispiel: # 123456789. Wenn Ihre bash_history-Datei diese zusätzlichen Zeilen enthält, verwenden Sie diese geänderte Version von Elads Code, um einen sauberen zsh-formatierten Verlauf zu verarbeiten. Danke Elad für den schnellen Konvertierungscode.
quelle