PuTTY: Scrollback von der Kommandozeile aus löschen

27

Wenn ich über PuTTY eine Verbindung zu meinem Server herstelle, kann ich den sichtbaren Bildschirm mit dem clearBefehl löschen .

Allerdings kann ich in PuTTYs GUI immer noch rückwärts scrollen, um das alte Zeug zu sehen. Mir ist die Clear Scrollback- Funktion von PuTTY bekannt , für die jedoch ein Mausklick erforderlich ist.

Ich möchte genau den gleichen Vorgang wie "Zurückblättern" ausführen, jedoch über die Befehlszeile.

Ist es möglich?

Ich habe diese Seite gelesen , was darauf hinzuweisen scheint.

Meine Experimente sind jedoch gescheitert. Zum Beispiel:

printf '\033[3J'

Tut nichts für mich.

Vielleicht verstehe ich die Bedeutung CSI 3 Jdieses zweiten Links nicht ...

jwd
quelle
Welche Version von PuTTY benutzt du? Die Seite zeigt an, dass die Funktion in PuTTY 0.59 und höher funktioniert. Ich habe PuTTY 0.60 und es funktioniert bei mir. Beachten Sie, dass nur der Scrollback-Puffer und nicht der Bildschirm gelöscht werden. (Wenn ich eine Bildlaufleiste habe, die ich tatsächlich scrollen kann, dann verwende ich diese Sequenz. Ich bemerke, dass die Bildlaufleiste deaktiviert wird, weil plötzlich nichts mehr zum
Scrollen
@Bavi_H: ah, danke - mir war nicht klar, dass es den aktuell angezeigten Text nicht beeinflusst. Ich sehe, dass es auch funktioniert. Die vollständige Lösung, die ich möchte, ist clear && printf '\033[3J'. Wenn Sie eine Antwort geben, nehme ich sie an.
JWD

Antworten:

32

Die CSI 3 JSequenz zum Löschen des Scrollback-Puffers wurde zu PuTTY 0.59 hinzugefügt. (Auf der Wunschanforderungsseite für diese Funktion finden Sie Informationen in der Zeile "Festnetz" oder suchen Sie auf der Seite "PuTTY- Änderungen" nach CSI 3 J.)

Wie bereits erwähnt, können Sie printf '\033[3J'über eine Befehlszeile diese Sequenz an PuTTY senden. Beachten Sie, dass dies nur den Scrollback-Puffer löscht, nicht aber den Bildschirm. Wenn Sie eine Bildlaufleiste haben, zu der Sie tatsächlich einen Bildlauf durchführen können, verwenden Sie diese Sequenz. Die Bildlaufleiste wird dann deaktiviert, da plötzlich nichts mehr verfügbar ist, zu dem Sie einen Bildlauf durchführen können. Der aktuell angezeigte Bildschirm bleibt jedoch erhalten.

Wie bereits erwähnt, können Sie sowohl den Bildschirm als auch den Scrollback-Puffer mit löschen clear && printf '\033[3J'

Bavi_H
quelle
Und für diejenigen, die ein wenig über Kontrollcodes lesen möchten : xfree86.org/4.8.0/ctlseqs.html (: Dieser ist CSI P s J
jwd
11

Wenn Sie es gewohnt sind, wie ich es bin, Ctrl+Ldie Reset terminalim PuTTY-Systemmenü verfügbare Option zu verwenden, ist die Aktivierung möglicherweise hilfreich Configuration -> Window -> Behavior -> "System menu appears on ALT-Space".

Wenn Sie dann drücken Alt+Space, wird die Option für "Clear scrollback"durch L(Kleinbuchstaben; keine Umschalttaste) ausgelöst . So reset + clearwird die charmant-mnemonische Kombination von Ctrl+Lund Alt+Space Lohne lästige Mausbewegungen oder Unordnung in Ihrer Shell-Geschichte.

ConfexianMJS
quelle
Funktioniert und ist leicht zu merken :)
Wyrmwood
Nicht schlecht, aber zu Ihrer Information: Sie können auch verhindern, dass Ihr Shell-Verlauf überladen wird, indem Sie einem Befehl ein Leerzeichen voranstellen.
jwd
6

Erstellen Sie eine Skriptdatei und platzieren Sie sie in einem Ordner mit Pfadangabe:

$cat > /usr/local/bin/cls
#!/bin/bash
clear
printf '\033[3J'

Drücken Sie STRG + d, um zu speichern und zu beenden

Änderungsberechtigung für Datei:

chmod a+x /usr/local/bin/cls

Jetzt kannst du die cmd cls benutzen :-)

MrCalvin
quelle
1

Die Lösung für mich war die Übertragung von '\ 033 \ 143'-Zeichen:

printf ("\ 033 \ 143");

Dies löscht den Terminalbildschirm und setzt den Cursor zurück in die obere linke Ecke.

eschick
quelle
1
(1) In der Frage wird nach einem Befehlszeilenbefehl (dh Shell-Befehl) gefragt. Dies ist kein Shell-Befehl, sondern eine Zeile mit C-Code. Als solche ist es keine Antwort auf diese Frage. (2) Dieser Beitrag wäre etwas nützlicher, wenn Sie sagten, was der \143Charakter ist und wie er sich auf diese Frage bezieht, idealerweise mit Zitaten.
Scott
1
Für diejenigen, die sich fragen, entspricht dies dem Escape-Code "full reset" ( ESC c). ASCII chat einen 99oktalen Wert 143. Dies wird eine Reihe anderer Dinge tun, zusätzlich zum Löschen des Scrollbacks, nur zu Ihrer Information.
JWD
1

In putty gibt es eine Option, mit der Sie das Standardverhalten für das Zurückscrollen deaktivieren können. Deaktivieren Sie einfach die Option "Gelöschten Text in den Bildlauf zurückschieben".

Putty Settings Bild

Wenn Sie danach den Befehl zum Löschen eingeben, wird der Bildschirm gelöscht und der vorherige Bildschirminhalt wird nicht in den Bildlauf zurückgesetzt.

user3133668
quelle