Ich kenne den clear
Befehl, der den aktuellen Bildschirm "löscht", aber dies geschieht nur durch Drucken vieler Zeilenumbrüche - der gelöschte Inhalt wird nur nach oben gescrollt.
Gibt es eine Möglichkeit, alle vorherigen Ausgaben des Terminals vollständig zu löschen, sodass ich sie nicht einmal durch Scrollen nach oben erreichen kann?
Command+K
.Antworten:
So löschen Sie das Terminal manuell:
⌘+K
Command+ Kfür neuere Tastaturen
So löschen Sie das Terminal aus einem Shell-Skript heraus;
quelle
clear
für alle Fälle, außer wenn der Scrollback-Verlauf tatsächlich verschwinden soll, z. B. wenn Sie drucken möchten.)clear
. Ich denke jedoch, dass sie umgekehrt werden sollten. Tippenclear
scheint eher beabsichtigt als zu schlagenCommand + K
.Ein besserer Weg, um den Bildschirm innerhalb eines Skripts zu löschen ...
Wenn Sie die OSX Terminal-App verwenden (wie vom OP angegeben), ist ein besserer Ansatz (dank https://apple.stackexchange.com/a/113168 ) genau dies:
oder genauer gesagt (Tipp an https://stackoverflow.com/users/4834046/qiuyi ):
Dadurch werden sowohl der Scrollback-Puffer als auch der Bildschirm gelöscht. Es gibt auch andere Optionen. Weitere Informationen finden Sie unter https://apple.stackexchange.com/a/113168 .
ursprüngliche Antwort
Die in diesem Thread angegebene AppleScript-Antwort funktioniert, ABER sie hat den bösen Nebeneffekt, dass JEDES Terminalfenster gelöscht wird, das gerade aktiv ist. Dies ist überraschend, wenn Sie das Skript in einem Fenster ausführen und versuchen, die Arbeit in einem anderen zu erledigen!
Sie vermeiden dies, indem Sie das AppleScript so verfeinern, dass der Bildschirm nur dann gelöscht wird, wenn es ganz vorne ist (siehe https://apple.stackexchange.com/a/31887 ):
... aber wenn es nicht das aktuelle Fenster ist, wird die Ausgabe gestapelt, bis sie wieder aktuell wird, was wahrscheinlich nicht das ist, was Sie wollen.
quelle
.bash_profile
und es ist großartig, weil ich manchmal beim Öffnen eines neuen Terminalfensters nicht mehr den fehlerhaften Puffer bekomme.Der schöne Weg ist
printf '\33c\e[3J'
quelle
alias cls='printf "\33c\e[3J"'
\33c
führt das Äquivalent desclear
Befehls aus, der im Grunde nur den Bildschirm scrollt, bis Sie den vorherigen Inhalt nicht mehr sehen können. Es löscht den Bildschirm, aber nicht den Rücklaufpuffer (dh Sie können weiterhin die Bildlaufleisten verwenden, um die alte Ausgabe anzuzeigen). Fügen Sie das hinzu\e[3J
, um den Bildlaufpuffer tatsächlich zu löschen.function cls { printf '\33c\e[3J\33c' }
Zeile hinzufügen~/.profile
(oder systemweit/etc/profile
). Dies sollte für Desktop-Umgebungen unter MacOS, FreeBSD, Linux usw. funktionieren. Beachten Sie, dass das Extra\33c
zum Löschen des zusätzlichen\e[3J
Literals in Nicht-MacOS dient (im Grunde genommen für Linux / FreeBSD, das wir nur benötigenprintf '\33c'
).Fügen Sie dies in Ihr .bash_profile oder .bashrc ein
quelle
Unter Mac OS X Terminal ist diese Funktionalität bereits in die Terminalanwendung integriert
View->Clear Scrollback
(Standard ist CMD+ K).Sie können dies also mit den Tastaturkürzeln von Apple nach Belieben neu zuweisen. Fügen Sie einfach eine neue Verknüpfung für Terminal mit dem Befehl "Scrollback löschen" hinzu. (Ich benutze CMD+ L, weil es CTRL+ ähnlich ist, Lum den aktuellen Bildschirminhalt zu löschen, ohne den Puffer zu löschen.)
Ich bin mir nicht sicher, wie Sie dies in einem Skript verwenden würden (möglicherweise AppleScript, wie andere darauf hingewiesen haben).
quelle
View->Clear Scrollback
ist es nicht mehr im Menü des Terminals vorhanden. Die TastenkombinationCMD
+K
funktioniert jedoch weiterhin.Clear Scrollback
als wäre er gerade vonView
inEdit
nach Yosemite gezogen.Verwenden Sie unter Mac OS X Yosemite (10.10)
Option + Command + K
, um den Bildlauf in Terminal.app zu löschen.quelle
Oder Sie können einen Seitenumbruch (ASCII-Formular-Feed) senden, indem Sie drücken:
Während dies technisch gesehen nur eine neue Seite startet, hat dies den gleichen Nettoeffekt wie alle anderen Methoden, ist jedoch viel schneller (mit Ausnahme der Apple + K-Lösung natürlich).
Und da dies ein ASCII-Steuerbefehl ist, funktioniert er in allen Shells.
quelle
So löschen Sie nur die letzte Ausgabe:
⌘+L
So löschen Sie das Terminal vollständig:
⌘+K
quelle
Befehl + K löscht die vorherige Ausgabe
Um den eingegebenen Text zu löschen, springen Sie zuerst mit " Befehl + A " nach links und dann mit " Strg + K " rechts neben dem Zeiger .
Visuelle Beispiele:
quelle
löscht alles, funktioniert auch gut auf osX. sehr gepflegt
quelle
Mach das Richtige, mach das Richtige!
Klar zur vorherigen Marke:
Command-L
Zum vorherigen Lesezeichen löschen:
Option-Command-L
Klar zum Starten:
Command-K
Hilf deinen Jungs!
quelle
Ich konnte keines der oben genannten Dinge zum Laufen bringen (unter macOS).
Eine Kombination hat bei mir funktioniert -
Dies löscht den Puffer und den Bildschirm
quelle
IO.write
. Es sollte genauso funktionieren, aber Sie entscheiden sich, diese Zeichen auf dem Terminal zu drucken.Wenn Sie im Terminal Folgendes eingeben, wird Ihr Verlauf gelöscht (dh wenn Sie den Aufwärtspfeil verwenden, erhalten Sie nichts), der Bildschirm wird jedoch nicht gelöscht:
quelle
Versuchen Sie dies, wenn Sie mit der Ausgabe überfordert sind, wenn Sie einen Filter wünschen
adb -d shell dumpsys Aktivität | grep ActivityRecord
quelle
CMD + K scheint die ganze Zeit für mich zu funktionieren.
quelle