Ich habe den Befehl verwendet:
reset
mein Terminal zu löschen. Obwohl ich mir ziemlich sicher bin, dass das nicht das ist, was ich tun sollte. Zurücksetzen setzt, wie der Name schon sagt, Ihr gesamtes Terminal zurück (ändert viele Dinge). Folgendes möchte ich:
Ich möchte im Grunde den Befehl verwenden clear
. Wenn Sie jedoch löschen und dann nach oben scrollen, erhalten Sie immer noch Tonnen von Dingen von früher. Im Allgemeinen ist dies kein Problem, aber ich schaue auf lange Bruttoprotokolle und möchte sicherstellen, dass ich nur die neueste ansehe. Ich weiß, dass ich das gebrauchen könnte more
oder so, aber ich bevorzuge diesen Ansatz.
clear && printf '\033[3J'
. Kein Zurücksetzen des Terminals, nur Löschen des Bildschirmtextes. Siehe diesen Beitrag: superuser.com/questions/555554/…Antworten:
Der Scrollback-Buffer ist kein Feature von bash, sondern des Terminal-Programms. Sie haben nicht gesagt, welches Terminal Sie verwenden.
Wenn Sie xterm verwenden, können Sie möglicherweise die gespeicherten Zeilen löschen, indem Sie ESC-c an das Terminal senden.
Dies funktioniert möglicherweise nicht mit jedem Terminalprogramm, das Sie verwenden.
Unter Linux wird dies wahrscheinlich funktionieren:
Unter FreeBSD akzeptiert echo -e nicht, also können Sie versuchen:
quelle
echo ESC-c
?ESC
. Lesen Sie die Artikel "Escape-Zeichen" und "Steuerzeichen" auf Wikipedia -ESC
bezeichnet häufig das ASCII-Zeichen 0x1B, das Sie durch Drücken von^V
gefolgt von einfügen könnenEsc
.\0143
stattc
?Verwenden Sie für jeden Auftrag das richtige Werkzeug:
Mit
clear
das Terminalfenster löschen.Verwenden
reset
Sie diese Option, um Ihr Terminal zurückzusetzen, wenn es durch Steuersequenzen gestört wird.Verwenden
cat
Sie diese Option nur, wenn Sie viele Daten ohne Unterbrechung von einem Ort zum anderen streamen möchten .Verwenden Sie ein Pager-Programm wie
less
odermost
, um Ausgabeseiten anzuzeigen.Verwenden Sie
tail -f /var/log/foo.log /var/log/bar.log
diese Option , um verschiedene Protokolldateien anzuzeigen.tail
ist die-F
Option besser, da sie der Datei auch dann folgen kann, wenn an ihrer Stelle eine neue Datei angezeigt wird, wie es bei Protokolldateien üblich ist.quelle
cat
irgendetwas zu lesen, aber für kleine Dateien ist es für sie viel sinnvoller,cat
als etwas zu verwendenless
. Sobald die Datei auf dem Terminal abgelegt wurde, können Sie so oft Sie möchten zu der Datei zurückblättern, anstatt sie entlassen zu müssen,less
bevor Sie etwas anderes tun.Nur um die technische Antwort zu geben:
reset
Initialisieren Sie das Terminal neu, als wäre es von Grund auf neu geöffnet worden.stty sane
wird eine Menge der gleichen Funktionalität tun (ohne den Reset). Dies ist dasselbe wie^L
(Strg + L) (irrc) undtput clear
. Trotz allem, was das vorherige Poster (@grawity) sagte,clear
gibt es keine Zeilenumbrüche. Es sendet dasTERM
Zurücksetzen des Befehls, wie in (xterm) definiert,terminfo
odertermcap
für mich istgnome-terminal
es dasselbe wie der Befehlperl -e'print "\33[H\33[2J"'
.Wenn Sie nur den Puffer löschen möchten - im Vergleich zum Zurücksetzen des gesamten Terminals - versuchen Sie dies
tput reset
. Es sollte sehr schnell gehen und tun, was Sie wollen. (Obwohl Sie wirklich Dateien mit lesen solltenless
)tput reset
, sendet den terminfo-Wert zum Zurücksetzen - auf meinem Terminal (xterm) ist er derselbe wieperl -e'print "\33c"'
quelle
clear
gibt ein paar Zeilenumbrüche aus. Als Alternative habe ich nur einen Befehl angegeben , daclear
nur der Bildschirm gelöscht wird, nicht aber der Scrollback-Puffer. (Zumindest nicht in PuTTY oder Konsole.)clear
einem Signal als Signalname und einerreset
einem Signal zugeordnet ist - und nur der letztere führt zu einem gelöschten Scroll-Back-Puffer.reset
schickt letztere über andere lustige Sachen.clear
wird nicht zurückgesetzt seine Rückholung. (FunktioniertESC c
inxterm
und VTE-basiert, aber nicht in PuTTY und Konsole.) Er möchte auch nicht verwendenreset
, da es mehr zurücksetzt, als er will. (Ich weiß nicht, welches Terminal er verwendet - aber vergleichen Siestty
vor und nach dem Zurücksetzen.)tput reset
, dass das reset signal an das terminal gesendet wird - ohne den term tatsächlich neu zu initialisieren. "reset - Anstatt Initialisierungszeichenfolgen auszugeben, werden die Rücksetzzeichenfolgen des Terminals ausgegeben, falls vorhanden (rs1, rs2, rs3, rf). Wenn die Rücksetzzeichenfolgen nicht vorhanden sind, aber Initialisierungszeichenfolgen vorhanden sind, werden die Initialisierungszeichenfolgen ausgegeben. Ansonsten verhält sich reset identisch zu init. " In diesem Fall haben wir die Zeichenfolgen zurückgesetzt, damit die Init-Zeichenfolgen nicht ausgeführt werden.tput reset
ziemlich langsam (wiereset
).printf '\033\143'
ist viel schneller. Gibt es einen Grund, warum die printf-Methode gefährlich / schlecht ist?Ein anderes Terminal ist iTerm2, und es hat eine etwas seltsame Escape-Sequenz, mit der das Zurückblättern gelöscht wird. In einer Bash-Shell verwende ich etwas wie:
in einem Skript. Es handelt sich also im Grunde genommen um ein ESC-Zeichen, gefolgt von "
]50;ClearScrollback
" und einem BEL-Zeichen.quelle
clear
undreset
nicht. Dies ist jedoch nicht wirklich die beste Antwort auf die Frage. Ich denke, die richtige Antwort für diesen Fall ist, was auch immer die Terminalanwendung bietet, wie Befehl-K in iTerm2, Steuerung-K in anderen usw.Der wahrscheinlich beste Weg, um alles zu löschen, ist die Verwendung der Terminalfunktion:
Auf diese Weise werden beide Puffer bereinigt und der Terminalstatus wird auf genau das zurückgesetzt, was er beim Start war (was möglicherweise mit der Verwendung identisch ist oder nicht
reset
).quelle
gnome-terminal
mich im Moment nicht benutzen ) ... Schau dir "Tools" und andere Menüs an.+F
ist für "folgen", ähnlich wie,tail -f
aber Sie können auch zurückblättern.Bei allen vte-basierten Terminals (GNOME, Xfce, Roxterm) und KDE-Konsole können Sie mit dem Mausrad einen Bildlauf durchführen
less
. Das finde ich recht praktisch.Alternative zu
clear
:quelle
Auf Mac OS X Terminal.app:
Ansicht -> Scrollback löschen (oder command- K)
quelle
Es ist kein "Bash" -Problem. Dies hängt vom verwendeten Terminal ab. Zum Beispiel verwende ich "iterm2" mit MacBook, um eine entfernte Linux-Maschine zu verbinden. Sie können den Puffer mit "Befehl + K" bereinigen oder im Menü "Bearbeiten" -> "Puffer löschen" auswählen.
quelle
So löschen Sie den Konsolenbildschirm und den Scrollback-Puffer beim Ausführen von PuTTY:
Dies sind eigentlich 2 "Esc" -Sequenzen, die unabhängig voneinander agieren. Sie können in jeder Reihenfolge verwendet werden:
Wenn Sie
echo -en "\ec"
festlegen, welche Einstellungen das Terminal zurücksetzen soll, werden möglicherweise einige Ihrer anderen Terminaleinstellungen geändert. Anstelle von "Zurücksetzen" können Sie Folgendes tun:Sie können dies in ein Shell-Skript einfügen und es funktioniert einwandfrei.
Falls es einige Systemabhängigkeiten gibt:
Ich verwende PuTTY Connection Manager (Version 0.7.1 BETA (Build 136)) mit PuTTY (Release 0.60).
Eingabe:
Berichte:
quelle
Um den Bildschirmpuffer für Hardware-TTY in FreeBSD zu bereinigen, können Sie "vidcontrol - Systemkonsolensteuerung und Konfigurationsdienstprogramm" mit dem Parameter -C Leeren Sie den Verlaufspuffer.
vidcontrol -C
Der Befehl löscht den gesamten Bildschirmpuffer für die aktuelle Konsole, über dem, was Sie gerade sehen. Vielleicht möchten Sie zuerst "klären" oder nicht - ganz nach Ihren Wünschen.
quelle
Wenn Sie sicher sein möchten, dass Sie die neuesten Einträge in einer Protokolldatei anzeigen, ist es wahrscheinlich am besten, tail anstelle von
clear
/ zu verwenden, voncat
dem ich annehme, dass Sie es verwenden.quelle
Hmmm. Ich denke, wenn Sie konsole laufen, haben Sie Pech. Früher konnte man einfach "Scrollback löschen". Konsole lässt Sie das nicht mehr tun. Sie müssen es auch zurücksetzen, damit alle Programme, die Sie ausgeführt haben, beendet werden. Ich brauche wohl ein neues Terminalprogramm ......
quelle