In meiner aktuellen screen
Sitzung sind 12 Fenster geöffnet. Es läuft seit Wochen ... Ich weiß, dass ich letzte Woche irgendwann einen ImageMagick- convert
Befehl in einem dieser 12 Bildschirmfenster ausgeführt habe ... gibt es eine Möglichkeit, den Bash-Verlauf aller 12 Instanzen einfach zu durchsuchen, ohne sie zu schließen oder auszuführen history | grep convert
in allen 12 Bildschirmen?
11
setopt share_history
in,/etc/zsh/zshrc
so dass mir dieses Problem nie passieren sollte: PAntworten:
Sie können
history -a; history -c
in allen Fenstern ausgeführt werden, um den Verlauf zu speichern. Und dannhistory -r
, um es zu aktualisieren.Um es dauerhafter zu lösen, fügen Sie Folgendes hinzu
.bashrc
:quelle
Klingt schwierig. Hier sind einige Methoden, die für Sie funktionieren können.
Wenn Sie Prozessabrechnungstools installiert haben (unter Linux suchen Sie nach einem Paket mit dem Namen
acct
) und die Berechtigung zu deren Verwendung haben, können Sie herausfinden, wann und möglicherweise auf welchem Terminal Sie ausgeführt habenconvert
:Wenn dies nicht verfügbar oder nicht eindeutig ist, können Sie
history
in jeder Bash-Instanz einen Befehl ausführen , um nachconvert
Befehlen zu suchen . Dadurch werden auch Befehle gefunden, die sich in der Verlaufsdatei befanden, als bash gestartet wurde.$(seq 0 11)
iteriert über die Nummern Ihrer Bildschirmfenster. Stellen Sie sicher, dass Sie Fenster überspringen, in denen derzeit kein Bash ausgeführt wird, sondern ein anderer Prozess, der die Eingabe anders interpretiert.screen -p $w stuff …
sendet die folgende Zeichenfolge als Eingabe an das angegebene Fenster. Sie benötigen den Zeilenumbruch am Ende der Zeichenfolge./tmp/convert.history
enthält eine Liste von Zeilen wie3 convert foo.jpg
, wenn Sieconvert foo.jpg
in Fenster 3 ausgeführt haben.quelle
history | grep convert
in allen Fenstern gelaufen . Ich bin enttäuscht, ich wollte eine weitere großartige Antwort von Gilles akzeptieren!Mit tcsh können Sie den Verlauf zwischen Sitzungen mithilfe des periodischen Alias freigeben.
In Ihrer .cshrc- (oder .tcshrc-) Datei:
Dadurch wird der Verlaufsbefehl automatisch alle 60 Minuten ausgeführt. Dadurch wird der Verlauf in einer allgemeinen Verlaufsdatei in Ihrem Home-Verzeichnis gespeichert. Um den Verlauf häufiger zu aktualisieren, verringern Sie entweder die Tperiodennummer oder führen Sie einfach den Befehl "periodisch" aus, um die Aktualisierung manuell durchzuführen
quelle
Bash schreibt die Geschichte nur beim Beenden, was dies bestenfalls problematisch macht. Ich habe gehört, dass zsh den Verlauf zwischen aktiven Sitzungen teilen kann.
quelle