Terminal * Ausgabe * Geschichte?

19

Ich benutze die Funktionen ausgiebig, um in meinem Terminal durch den Befehlsverlauf zu navigieren. Ich frage mich, ob es eine Möglichkeit gibt, auch im Befehlsausgabeverlauf zu navigieren. (neben einem großen Histize und stützte sich auf die Pgup-Taste)

Ich kann den Befehl nicht einfach erneut ausführen, da sich in meiner speziellen Situation die Quelle der Befehle ändert. Ich muss häufig auf die Ergebnisse einer früheren Änderung zurückblicken.

Hacks willkommen.

Vielen Dank!

Edit 2010:

Ich habe "tee" die Gutschrift gegeben; Unter all den Methoden, um Ihre Sitzung an einem anderen Ort zu protokollieren, ist sie die am weitesten verbreitete (dh sie ist Teil von gnu coreutils und erfordert keine bestimmte Shell oder ein bestimmtes Dienstprogramm, um zu funktionieren). Es war nicht wirklich das, wonach ich gesucht habe, aber mir ist klar, dass so etwas nicht wirklich existiert.

Die screenbeste Annäherung, die ich mir vorstellen kann, ist die Verwendung von (byobu / tmux), das in eine Datei protokolliert und einen benutzerdefinierten Befehl zum Blättern / Durchsuchen dieser Protokolldatei schreibt (und mit der Tastenkombination verknüpft less). Vielen Dank an alle.

Edit 2012:

@Dustin Kirklands Antwort ist eindeutig die beste, zumindest im Allgemeinen. Der Scrollback-Puffer des Terminals ist die am wenigsten aufdringliche Methode zum Navigieren im Befehlsausgabeverlauf. In Byobu wird anscheinend eine große Standardanzahl von Verlaufszeilen gespeichert (10 KB; tmux hat 2 KB, GNU-Bildschirm 100), und es werden Regex-Suchvorgänge ermöglicht (ein kurzer Blick zeigt an, dass der GNU-Bildschirm keine Scrollback-Suche und tmux nur eine Klartext-Suche enthält).

Mikewaters
quelle

Antworten:

4

Sie erwähnen die Verwendung von Byobu ...

Das ist sicherlich eine Möglichkeit, es zu tun. Byobu speichert 10.000 Zeilen Scrollback-Verlauf pro Fenster oder Teilung (Bereich).

Sie können das Zurückblättern einfach durch Drücken von Alt- PageUp, Alt- PageDownoder aufrufen F7. Sobald Sie sich im Scrollback-Modus befinden, können Sie mit vi-ähnlichen Befehlen vorwärts und rückwärts suchen. Verwenden Sie /regex, um vorwärts und ?regexrückwärts zu suchen.

Dustin Kirkland
quelle
Wo wird der Scrollback-Verlauf gespeichert und kann er zwischen Sitzungen beibehalten werden? Dh: Öffnen Sie das Terminal mit Byobu, führen Sie einige Befehle aus, rufen Sie an exit, schließen Sie das Terminal, öffnen Sie ein neues Terminal mit Byobu und behalten Sie die vorherige Sitzung bei.
Darrel Holt
11

Mit können Sie teeIhre Befehlsausgabe gleichzeitig an eine Datei und an das Terminal senden.

Carl Norum
quelle
8

Mit können Sie scriptIhre Terminalsitzung in einer Datei protokollieren. Wenn dies immer passieren soll, fügen Sie scriptIhrem Befehl einen passenden hinzu .login.

$ man script

Paul R
quelle
5

verwenden screen -L

Nach dem Beenden der Shell-Sitzung ( exitBefehl) erhalten Sie eine Protokolldatei in demselben Verzeichnis, das Sie gestartet habenscreen

dann können Sie die Ausgabe mit moreoder anzeigenless -R

wieczorek1990
quelle
5

screen kann so eingestellt werden, dass die Ausgabe protokolliert wird.

Ein Weg , um es zu starten, innerhalb einer laufenden screenSitzung ist zu drücken Ctrl- aund dann :, dann eingeben log.

Von man screen:

log [on|off]

Start/stop writing output of the current window to a file "screenlog.n" in the 
window's default directory, where n is the number  of  the  current  window.
This filename can be changed with the `logfile' command. If no parameter is
given, the state of logging is toggled. The session log is appended to the
previous contents of the file if it already  exists.  The current contents and
the contents of the scrollback history are not included in the session log.
Default is `off'.

logfile filename
logfile flush secs

Defines  the  name  the  log files will get. The default is "screenlog.%n". The 
second form changes the number of seconds screen will wait before flushing the
logfile buffer to the file-system. The default value is 10 seconds.
Bis auf weiteres angehalten.
quelle
@SQB: Ich habe meine Antwort erweitert.
Bis auf weiteres angehalten.
3

bash speichert zwar den Verlauf Ihrer Aktionen, nicht jedoch die Ausgabe der Befehle. Es könnte möglicherweise sehr groß sein und ist häufig nicht nützlich.

Jay
quelle