Scrollen Sie im Bildschirm oder pausieren Sie die Ausgabe

Scrollen Sie im Bildschirm oder pausieren Sie die Ausgabe

ich benutzeBildschirmfür meine Befehlszeilenaufgaben bei der Verwaltung der Server, auf denen ich arbeite. Normalerweise führe ich kleine Befehle aus (meistens Dateisystemaufgaben), manchmal aber auch umfangreichere Aufgaben (wie DBA).

DerAusgabediese Aufgaben sind mir wichtig. Da ich für meine Aufgaben Ubuntu und OS X (beide Terminal Windows) verwende, aber den Bildschirm verwenden muss, ist das Scrollen nicht verfügbar, sodass jede lange Ausgabe (denken Sie an eine 500-Zeilen-Tabelle aus einer Auswahl) für mich unsichtbar ist. Das Mausrad kommt nicht in Frage.

Wenn ich sage „Scrollen ist für mich unsichtbar“, meine ich Folgendes:

oben bei der Verwendung des Bildschirms, in Mac OS X, beim Scrollen

Ich habe über zwei Möglichkeiten nachgedacht:

  1. Pause (denkenpaginieren) die Ausgabe eines bestimmten Befehls. Wenn die Ausgabe beginnt, kann ich lesen, was passiert, dann drücke ich "Enter", dann wird die Ausgabe fortgesetzt, bis nichts mehr anzuzeigen ist.

  2. Im Bildschirm scrollen. Aber ich weiß nicht, ob das möglich ist.

Natürlich weiß ich nicht, ob diese Optionen tatsächlichmöglich. Wenn ja, wie können sie erreicht werden? Andere Alternativen werden gut angenommen.

Antwort1

Screen hat einen eigenen Scroll-Puffer, da es sich um einen Terminal-Multiplexer handelt undmehrerePuffer.

Vielleicht gibt es einen besseren Weg, aber ich bin es gewohnt, im „Kopiermodus“ zu scrollen (mit dem Sie Text über den Bildschirm selbst kopieren können, obwohl dafür auch der Einfügebefehl erforderlich ist):

  • Geben Sie Ihre Bildschirmpräfixkombination ein ( standardmäßig C-a/ control+ ) und dann oder .AEscape[

  • Bewegen Sie sich mit den Pfeiltasten ( und ) nach oben und unten.

  • Wenn Sie fertig sind, drücken Sie eine beliebige Taste außer den Pfeiltasten, Zahlen und bestimmten Buchstaben, um zum Ende des Scroll-Puffers zurückzukehren. Die meisten Leute verwenden qoderEscape

(Wenn Sie statt zu beenden Enteroder drücken Spaceund dann den Cursor bewegen, beginnen Sie mit der Auswahl des zu kopierenden Textes und durch ein zweites Drücken von Enteroder wird dieser kopiert. Anschließend können Sie mit und anschließend einfügen .)SpaceC-a]

Natürlich können Sie immer moreund verwenden less, zwei häufig verwendete Pager, die für einige Befehle ausreichen können.

Antwort2

Verwendung des screenPuffers wie angegebenvon njsgist eine gute Lösung. Sie können auch den alternativen Textpuffer in den Xterm-Termcap-Informationen im Bildschirm deaktivieren. Wenn dieser deaktiviert ist, können Sie mit den Bildlaufleisten (und dem Mausrad) nach oben und unten scrollen.

Fügen Sie dies zu Ihrem hinzu ~/.screenrc.

# Enable mouse scrolling and scroll bar history scrolling
termcapinfo xterm* ti@:te@

Weitere Diskussionen können Sie lesenHier.

Antwort3

Alle Antworten betrafen die Navigation innerhalb einer Bildschirmsitzung, aberEs gibt eine integrierte Funktion im Bildschirmbefehl, um alles in einer Datei zu speicherndurch die -LArgumentation laut Handbuch, die lautet:

-L weist den Bildschirm an, die automatische Ausgabeprotokollierung für Windows einzuschalten.

So können Sie Folgendes tun:

screen -L -S testscreen

screenlog.#und es wird eine Datei im aktuellen Verzeichnis erstellt, deren Name #eine Nummer für diesen Bildschirm ist, beginnend bei 0.

Dies hat viele Vorteile und die wichtigsten sind für mich:

  1. Ich führe Protokoll über meine Aktivitäten, da ich die Protokolldatei zur späteren Bezugnahme im Projektordner speichern kann.
  2. Sie können den Prozess inaktiv und passiv überwachen:
    • Verwenden Sie es tail -F, um den Fortschritt in Echtzeit zu überwachen, ohne an den Bildschirm gebunden zu sein.
    • Verwenden Sie grepes, um nach bestimmten Begriffen im Protokoll zu suchen und Benachrichtigungen zu erstellen (E-Mail, Popup, VoIP usw.). Dies kann auf mehreren Bildschirmen angewendet werden, ohne dass Sie sie aktiv ansehen müssen.

Antwort4

Ich habe eine einfache Seitennummerierung erfolgreich erreicht more, indem ich den Inhalt beispielsweise an Folgendes weitergeleitet habe:

ls -l | more

Oder wenn Sie eine Farbausgabe für Anwendungsfälle wie Syntaxhervorhebung wünschen, können Sie verwenden

ls -l --color=always | more

Dies führt zu einer Ausgabe, bei der ich problemlos einen Bildschirm nach dem anderen durchblättern kann. Ich habe @uthers Änderung noch nicht ausprobiert, ~/.screenrcaber das scheint mir als dauerhafte Lösung vorzuziehen, wenn eine Maus verfügbar ist.

Um dies auszuprobieren, gehen Sie zudieser BusyBox-Emulatorund dann...

cd ~/bin
ls -l --color=always | more

Blättern Sie mit der Leertaste durch die Ergebnisse des ls -lBefehls oder bewegen Sie sich mit der Eingabetaste zeilenweise durch die Ergebnisse.

verwandte Informationen