Frage

Verwendung der clear Der Befehl auf dem Terminal täuscht den Benutzer nur vor, der Bildschirm sei gelöscht worden. Sie können immer noch die Ausgabe der vorherigen Befehle sehen, wenn Sie mit der Maus scrollen.Das macht das Leben schwer, wenn man in einem Tsunami an Texten ertrinkt.

Verschiedene Lösungen (Escape-Code etc.), die im Internet zu finden sind, sind nur Variationen dessen, was der Befehl „clear“ bereits leistet.

Wie löscht man also tatsächlich den Inhalt eines Terminals unter Linux?

War es hilfreich?

Lösung

Verwenden Sie den folgenden Befehl, um einen leeren Bildschirm zu erstellen, anstatt nur neue Zeilen hinzuzufügen ...

printf "\033c"

Ja, das ist ein „printf“ am Bash-Prompt.

Wahrscheinlich möchten Sie jedoch einen Alias ​​definieren ...

alias cls='printf "\033c"'

Erläuterung

\033 == \x1B == 27 == ESC

Das wird also <ESC>c Dies ist der VT100-Escape-Code zum Zurücksetzen des Terminals. Hier Hier finden Sie weitere Informationen zu Terminal-Escape-Codes.

Bearbeiten

Hier sind ein paar andere Möglichkeiten, es zu tun ...

printf "\ec" #\e is ESC in bash
echo -en "\ec" #thanks @Jonathon Reinhart.
# -e    Enable interpretation of of backslash escapes
# -n    Do not output a new line

KDE

Das Obige funktioniert nicht auf der KDE-Konsole (genannt Konsole), aber es gibt Hoffnung!Verwenden Sie die folgende Befehlsfolge, um den Bildschirm und den Scroll-Back-Puffer zu löschen ...

clear && echo -en "\e[3J"

Oder verwenden Sie vielleicht den folgenden Alias ​​auf KDE ...

alias cls='clear && echo -en "\e[3J"'

Ich habe den Befehl zum Löschen des Zurückscrollens erhalten von Hier.

Andere Tipps

Versuchen reset. Es löscht den Terminalbildschirm, aber auf die vorherigen Befehle können über Pfeil oder auf die Schlüsselbindung zugegriffen werden.

tput reset

Das wird den Trick machen!

Keine der Antworten, die ich gelesen habe, funktionierte in Putty, also fand ich einen Kommentar zu Dieser Artikel:

In den Einstellungen für Ihre Verbindung finden Sie unter "Fenster-> Verhalten" ein Einstellungseinsatz "Systemmenü" auf Alt allein ". Dann scrollt Strg+L, Alt, L (das ist ein niedrigerer Fall L) den Bildschirm und löscht dann den Scrollback -Puffer.

(Relevant für das OP, weil ich eine Verbindung zu einem Ubuntu -Server herstelle, aber anscheinend auch relevant ist, unabhängig von Ihrem Server.)

Der folgende Link erklärt, wie Sie diesen Alias ​​dauerhaft festlegen, sodass Sie ihn nicht ständig eingeben müssen.

https://askubuntu.com/questions/17536/how-do-i-create-a-permanent-bash-alias

Dies sind die Schritte, die unter diesem Link detailliert beschrieben werden.

  1. vim ~/.bashrc oder gedit ~/.bashrc oder welcher Texteditor auch immer Sie mögen
  2. Fügen Sie Alias ​​cls='printf "\033c"' am Ende der Datei ein
  3. speichern und schließen
  4. .~/.bashrc (und ja, dazwischen sollte ein Leerzeichen sein.und ~)
  5. Überprüfen Sie nun, ob alles funktioniert hat!

Ich übernehme keine Anerkennung dafür, dass diese Informationen nur weitergegeben werden.

Mein Lieblingsbefehl für das menschliche Menschen dafür ist:

reset

Getestet auf Xterm und VT100. Es hilft auch nach einer abnormalen Programmabgabe. Hält den Befehlspuffer, sodass das up-arrow durch frühere Befehle radelt.

Prost: d

Mit KDE und Ubuntu 12.04 LTS und dem "Konsolen" -terminal funktioniert keines der veröffentlichten Antworten. Durch das Drücken der Standard -Tastaturverknüpfung Strg+Shift+X funktioniert jedoch! Quelle:

https://bugs.kde.org/show_bug.cgi?id=288913

Ich weiß, dass die Lösung, die das Drucken neuer Linien verwendet, nicht viel unterstützt wird, aber wenn alles andere fehlschlägt, warum nicht? Vor allem, wo man in einer Umgebung arbeitet, in der wahrscheinlich jemand anderes den Bildschirm sehen kann, aber nicht in der Lage ist, zu kleiden. Eine potenzielle Lösung ist dann der folgende Alias:

alias c="printf '\r\n%.0s' {1..50}"

Dann tippen c+Enter am Terminal.

Nur um das hinzuzufügen tmux Scroll -Puffer ist nicht klar mit clear, reset oder printf. Du musst :clear-history. Sehen Verknüpfung.

echo -e "\e[3J"

Dies funktioniert in Linux -Maschinen

Kompilieren Sie diese App.

#include <iostream>
#include <cstring>

int main()
{
  char str[1000];
  memset(str, '\n', 999);
  str[999] = 0;
  std::cout << str << std::endl;
  return 0;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top