Wie erhöhe ich den Scrollback-Puffer in einer laufenden Bildschirmsitzung?

237

Nehmen wir an, ich habe gerade eine Bildschirmsitzung , mit der ich über Putty interagiere. Ich habe festgestellt, dass der Scrollback-Puffer zu klein ist und möchte ihn erhöhen, ohne eine neue Bildschirmsitzung zu starten.

Gibt es eine Möglichkeit, dies zu tun?

Zach
quelle
Nur für den Fall, dass jemand den Scrollback-Puffer beim Starten einer neuen Sitzung erhöhen möchte :screen -h <numlines>
Scz

Antworten:

180

Die Manpage erklärt , dass Sie Kommandozeilen - Modus in einer laufenden Sitzung durch Eingabe eingeben Ctrl+ A, :und dann den Ausgabe - scrollback <num>Befehl.

Frédéric Hamidi
quelle
4
Sie müssen für jedes Fenster des aktuellen Bildschirms einzeln tun.
Matthew Wilcoxson
2
Wo <num>ist die Anzahl der Zeilen von Scrollback
Rakslice
Wenn Sie feststellen, dass Sie den Standard- scrollback <num>Maximalpuffer erreichen, kann nicht mehr Verlauf angezeigt werden. Wenn Sie diese Option festlegen, können Sie den Puffer nicht mehr erweitern. Sie müssen den letzten Befehl wiederholen, um den gesamten Verlaufspuffer abzurufen.
Kamil
362

Drücken Sie Ctrl-adann :und geben Sie dann ein

scrollback 10000

um beispielsweise einen 10000-Zeilenpuffer zu erhalten.

Sie können auch die Standardanzahl der Bildlaufzeilen durch Hinzufügen festlegen

defscrollback 10000

zu Ihrer ~/.screenrcDatei.

Um zu scrollen (wenn Ihr Terminal dies standardmäßig nicht zulässt), drücken Sie Ctrl-a ESCund scrollen Sie dann (mit der üblichen Ctrl-ffür die nächste Seite oder Ctrl-afür die vorherige Seite oder nur mit Ihrem Mausrad / zwei Fingern). Um den Bildlaufmodus zu verlassen, drücken Sie einfach ESC.

Ein weiterer Tipp: Ctrl-a iZeigt Ihre aktuelle Puffereinstellung an.

Lee Netherton
quelle
9
+1 für den Hinweis mit dem defscrollback, der in Ubuntu 12.10 auf 1024 gesetzt ist (was ich bei der Arbeit verwenden muss).
Erik
2
byobu-screenunter Ubuntu 12.04 scheint der Defscrollback auf 10000 zu setzen
Chronospoon
4
Ich wollte darauf hinweisen, dass, wenn Ihr screenrc zusätzliche Begriffe für Sie öffnet, Sie den Defscrollback setzen müssen, bevor die Fenster geöffnet werden, sonst erhalten sie nur den Standard 1024
Majikman
Auf einem Mac funktioniert es nicht. Ich setze startup_message off' and 'defscrollback 5000' into my newly created ~ / .screenrc` und es wird die erste Zeile angezeigt, aber die zweite scheint ignoriert zu werden.
Ben
9

Es gibt eine minimale Menge an "Standard" -Puffer, wenn Sie eine "Bildschirm" -Sitzung innerhalb Ihrer "Kitt-Sitzung" starten. Ich benutze in meiner Arbeit häufig Bildschirme, daher kann ich Ihnen sagen, dass Sie in Ihrer "Bildschirm" -Sitzung keine Kombination aus "Bildschirm" -Puffer und "Kitt" -Puffer haben werden.

Das Festlegen der Standardanzahl von Bildlaufzeilen durch Hinzufügen defscrollback 10000 zu Ihrer ~/.screenrcDatei ist die richtige Lösung.

Übrigens verwende ich "defscrollback 200000" in meiner ./screenrcDatei.

Oracle DBA 2000 v
quelle
4

Wie bereits erwähnt, haben wir zwei Möglichkeiten!

 Interaktive Einstellung pro Bildschirm (Sitzung)

Und es wird interaktiv gemacht! Und sofort wirksam werden!

CTRL + Agefolgt von :Und wir tippen scrollback 1000000und schlagenENTER

Sie lösen sich vom Bildschirm und kommen zurück! Es wird immer das gleiche sein.

Sie öffnen einen weiteren neuen Bildschirm! Und der Wert wird wieder auf Standard zurückgesetzt! Es ist also keine globale Umgebung!

 Und die permanente Standardeinstellung

Was durch Hinzufügen defscrollback 1000000zu .screenrc(zu Hause) gemacht wird

defscrollbackund nicht scrollback(def steht für default)

Was Sie wissen müssen, ist, wenn die Datei nicht erstellt wird! Du erschaffst es !

> cd ~ && vim .screenrc

Und du fügst hinzu defscrollback 1000000!

Oder in einem Befehl

> echo "defscrollback 1000000" >> .screenrc

(falls noch nicht erstellt)

Wirksam werden

Wenn Sie die Standardeinstellung zu .screenrc! Der bereits laufende Bildschirm beim erneuten Anhängen wird nicht wirksam! Der .screenrcLauf bei der Bildschirmerstellung! Und es macht Sinn! Genau wie bei einem normalen Konsolen- und Shell-Start!

Und alle neu erstellten Bildschirme haben den eingestellten Wert!

Überprüfen der effektiven Puffergröße des Bildschirms

Um den Typ zu überprüfen, CTRL + Agefolgt voni

Und das Ergebnis wird wie folgt sein

Geben Sie hier die Bildbeschreibung ein

Wichtig ist, dass die Puffergröße die Zahl nach dem + -Zeichen ist
(in der Abbildung habe ich sie auf 1 000 000 gesetzt).

Beachten Sie auch, dass, wenn Sie es interaktiv ändern! Der Effekt ist sofort und übernimmt den Standardwert!

Scrollen

CTRL+ Agefolgt von ESC(um in den Kopiermodus zu gelangen).

Navigieren Sie dann mit Up, DownoderPgUp PgDown

Und noch ESCeinmal, um diesen Modus zu verlassen.

(Zusätzliche Informationen: Zum Kopieren des Treffers ENTER, um mit der Auswahl zu beginnen! Dann noch ENTEReinmal zum Kopieren! Einfach und cool)

Jetzt ist der Puffer größer!

Und das fasst es für die wichtigen Details zusammen!

Mohamed Allal
quelle
Gut zu wissen, wie man scrollt!
Skytree
Vielen Dank. lernte einen neuen Trick zum Überprüfen der Bildschirmpuffergröße mit: STRG + A, gefolgt von i
alphaGeek
3

WARNUNG: Wenn Sie diesen Wert zu hoch einstellen, kann Ihr System einen erheblichen Schluckauf bekommen. Je höher der von Ihnen festgelegte Wert ist, desto mehr virtueller Speicher wird dem Bildschirmprozess zugewiesen, wenn die Bildschirmsitzung gestartet wird. Ich habe mein ~ / .screenrc auf "defscrollback 123456789" gesetzt und als ich einen Bildschirm initiierte, fror mein gesamtes System für gut 10 Minuten ein, bevor ich zu dem Punkt zurückkehrte, an dem ich den Bildschirmprozess beenden konnte (der 16,6 GB verbrauchte) von VIRT mem bis dahin).

1GLENCo
quelle
-3

Für die Nachwelt ist diese Antwort falsch, wie von Steven Lu bemerkt. Den Originaltext jedoch verlassen.

Ursprüngliche Antwort:

Für diejenigen, die über die Websuche anreisen (einige Jahre später) ...

Bei Verwendung des Bildschirms ist Ihr Scrollback-Puffer eine Kombination aus dem screenScrollback-Puffer, wie in den beiden vorherigen Antworten angegeben, und Ihrem Kitt-Scrollback-Puffer.

Stellen Sie sicher, dass Sie sowohl den Putty-Scrollback-Puffer als auch den Bildschirm-Scrollback-Puffer erhöhen. Andernfalls können Sie in Ihrem Putty-Fenster selbst nicht zurückblättern, um den screenScrollback-Verlauf Ihres Bildschirms anzuzeigen (überwunden durch Scrollen innerhalb des Bildschirms mit ctrl+a->ctrl+u).

Sie können Ihr Putty-Scrollback-Limit in den Einstellungen unter der Kategorie "Fenster" ändern. Durch das Beenden und erneutes Öffnen einer Kitt-Sitzung auf Ihrem Bildschirm wird Ihr Bildschirm nicht geschlossen (vorausgesetzt, Sie schließen nur das Kitt-Fenster und geben nicht ein exit), wie vom OP gefordert.

Ich hoffe, das hilft zu erkennen, warum das Erhöhen des Scrollback-Puffers des Bildschirms das Problem einer Person nicht löst.

Brad P.
quelle
17
Das ist ungenau. Der Bildschirm behält seinen eigenen Puffer. Wenn Sie im Kopiermodus mit dem Bildschirm nach oben scrollen, gibt Ihnen der Bildschirm den eigenen Verlauf des Bildschirms über Flüche. Wenn ein Terminal-Multiplexer wie ein Bildschirm verwendet wird, wird der Puffer des nativen Terminalemulators nicht verwendet (tatsächlich kann sich als Nebeneffekt Müll ansammeln oder nicht)
Steven Lu
gute Punkte, und ich glaube, Sie sind richtig ... Ich frage mich, ob ich meine Antwort löschen sollte?
Brad P.
Ich bin mir nicht sicher. Da würde das auch meinen Kommentar entfernen, den die Leute zu mögen scheinen.
Steven Lu
3
haha, ganz richtig. Ich denke, ich werde es bearbeiten, um festzustellen, dass es falsch ist, aber den Originaltext belassen
Brad P.
2
Sicher Danke. Ich ziehe es vor, nur additive Änderungen auf einer Site wie dieser zu belassen, damit die Leute davon wegkommen können, ohne verwirrt zu sein.
Steven Lu