Wie kann ich Zsh sage der aktuell Shell Geschichte meiner History-Datei zu schreiben?
Frage
ich an einem Ort arbeiten, die deutlich gazillions von Werkzeugen, die Tonnen von Optionen erfordern, so verlasse ich mich auf meine Shell Geschichte hat. Ich kann es auch ab und zu nur sicherstellen, dass ich nicht verlieren nützlich, lange Befehle sichern.
Ich tippte nur einen dieser Befehle und ich möchte sicherstellen, dass es in die Protokolldatei gerötet ist, aber ich habe eine lang andauernde Arbeit im Hintergrund und ich kann exec zsh
nicht geben. Gibt es etwas, das ich in dieser Situation tun?
(Sicher, ich könnte es in eine Datei kopieren und einfügen, aber es ist logischer für einen flush-history
Befehl existieren.)
Lösung
Um die Shell-Geschichte in die Protokolldatei zu schreiben, tun
fc -W
fc
hat einige nützliche Fahnen, sie alle sehen in man zshbuiltins
.
Sie können auch vollständig lesen automatisieren und die Protokolldatei nach jedem Befehl zu schreiben (also Ihre History-Datei automatisch mit jedem laufenden zsh-Sharing) von setopt -o sharehistory
sagen. Lesen Sie mehr Geschichte bezogene Optionen in man zshoptions
.
Andere Tipps
ich auch gerade gefunden:
setopt INC_APPEND_HISTORY
Von man zshoptions
:
INC_APPEND_HISTORY
This options works like APPEND_HISTORY except that new history
lines are added to the $HISTFILE incrementally (as soon as they
are entered), rather than waiting until the shell exits. The
file will still be periodically re-written to trim it when the
number of lines grows 20% beyond the value specified by $SAVE-
HIST (see also the HIST_SAVE_BY_COPY option).
Und verwenden
fc -R
in der Geschichte lesen (nachdem er das Schreiben) in einer bestehenden zsh Shell.
unterhalb der Linie Appen nach ~ / .zshrc, wird es 1000 Eintrag speichern wir durch Änderung Wert von HISTSIZE und SAVEHIST erhöhen
HISTSIZE=1000
if (( ! EUID )); then
HISTFILE=~/.zsh_history_root
else
HISTFILE=~/.zsh_history
fi
SAVEHIST=1000