Wenn Sie clear
Befehl oder Ctrl+ Lim Terminal verwenden, wird das Terminal gelöscht, Sie können jedoch immer noch einen Bildlauf durchführen, um die zuletzt verwendeten Befehle anzuzeigen. Gibt es eine Möglichkeit, das Terminal vollständig zu löschen?
59
Antworten:
Sie können verwenden
tput reset
.Neben
reset
undtput reset
Sie können folgende Shell - Skript verwenden.Dadurch werden Steuerzeichen
Esc-C
an die Konsole gesendet, die das Terminal zurücksetzt.Google-Schlüsselwörter: Linux-Konsolensteuerungssequenzen
man console_codes
sagt:quelle
tput reset
ist schneller alsreset
in Ubuntu 16.04, zumindestSie können den
reset
Befehl verwenden, mit dem die Terminaleinstellungen zurückgesetzt werden.quelle
Ich weiß, dass Sie sich in einem Gnome-Terminal befinden, aber ich dachte, ich würde mit einem Tipp für andere antworten, die (wie ich) auf einem Mac sein könnten:
Wenn Sie mit
Terminal.app
oderiTerm.app
dannControl+L
nach oben wird so sieht das Terminal leer, aberCmd+K
tatsächlich das Terminal / clear Scrollback zurückgesetzt.Wenn Sie in der Lage sind, Tastatureinstellungen für Ihr Terminal festzulegen, können Sie möglicherweise so etwas wie die oben genannten
Ctrl+K
Eingaben zuweisenecho -e \\033c
.quelle
Cmd+K
ist alles was ich wollte. tyAnthons Antwort funktioniert in der KDE-Konsole, aber nicht in urxvt. In urxvt habe ich ein paar Jahre lang reset verwendet, um das Scrollback zu löschen (zusammen mit all den anderen Dingen, die es macht), und war nicht zufrieden, dass es in Konsole nicht funktionierte. Für Linux habe ich jetzt einen neuen Alias:
Unter OS X funktioniert es jedoch nicht.
tput reset
funktioniert in keinem Kontext AFAICT.In der KDE-Konsole wird mit ctrl- shift- kder Bildlauf zurückgesetzt (einschließlich der aktuellen Shell-Eingabeaufforderung, sodass diese vollständig leer ist). Im iTerm- oder Apple-Terminal unter OS X wird durch cmd- shift- kauch der Bildlauf zurückgesetzt. Fügen Sie diese Funktion zu ~ / .Xresources hinzu, um urxvt hinzuzufügen:
quelle
allclear(){
`echo" Terminal und Scrollback löschen ... "` `sleep 1.5`` clear; echo -e "\ 033c \ e [3J" `}
` Bearbeiten: Formatierung funktioniert nicht. Wenn jemand in der Lage ist, dies so zu bearbeiten, dass es lesbar ist, würde ich es begrüßen.Ich habe das vor Jahren im Netz gefunden und es funktioniert gut für mich. Das Terminal wird vollständig ohne Scroll-Verlauf gelöscht.
quelle
Ich stellte fest F12, dass der Bildschirm in jeder der folgenden Shells gelöscht wird : bash , csh und fish shell . Mein Befehl unterscheidet sich von allen vorherigen Befehlen, da er alles beibehält, was Sie bereits in der aktuellen Zeile eingegeben haben.
(Hinweis: Alle unten aufgeführten Konfigurationen sind terminalabhängig, aber ich hoffe, dass sie praktisch überall funktionieren.)
Bash
Öffnen Sie die Datei
~/.inputrc
und fügen Sie die folgende Zeile ein:"\e[24~": "\C-k \C-uecho -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n\C-y\C-?"
Um die neue Schlüsselbindung verfügbar zu machen, öffnen Sie entweder ein neues Terminal oder geben Sie Ctrl+ und Xdann Ctrl+ ein R, um die .inputrc-Datei im aktuellen Terminal neu zu laden.
Erläuterung
Die Datei ~ / .inputrc steuert die Tastenbelegung des Bash-Terminals.
Über die Linie:
"\e[24~"
bildet den Schlüssel ab F12.C-k
( Ctrl+ X) löscht den Kill-Ring (Bashs Copy-and-Past-Speicher).C-u
( Ctrl+ U) sendet die aktuelle Zeile an den Kill-Ring und löscht sie.echo -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n
sendet zwei gruppierte Befehle an das Terminal. Sie werden durch getrennt;
und durch beendet\n
.echo -ne '\\ec\\e[3J'
löscht den Bildschirm.history -d $((HISTCMD-1))
vermeidet, dass diese beiden Befehle in die Historie eingehen.C-y
( Ctrl+ Y) fügt den vomC-u
Befehl gespeicherten Kill-Ring ein .C-?
( Ctrl+ ?) entspricht dem Backspaceoben in Schritt 3 eingegebenen Leerzeichen und entfernt es.Verweise:
csh
Geben Sie den folgenden Befehl ein.
bindkey -c "^[[24~" "echo -ne '\ec\e[3J'"
Es kann auch in Ihre
.cshrc
Datei eingefügt werden, um die Schlüsselbindung für jedes neue Terminal zu laden.(Ja, es ist viel einfacher als in Bash)
Fischmuschel
Geben Sie den folgenden Befehl ein.
bind -k f12 "echo -ne '\ec\e[3J'; commandline -f repaint"
Sie können die Funktion bearbeiten und speichern
fish_user_key_bindings
, um die Tastenbelegung für jedes neue Terminal zu laden.(Ja, es ist viel einfacher als in Bash)
quelle
[Ubuntu 16.04]
Die Datei .bash_history wird im Ausgangsverzeichnis des Benutzers erstellt, sobald das Terminal geschlossen wird
Es ist nützlich, aber Sie können es löschen, wenn Sie möchten. Es wird jedoch jedes Mal erstellt, wenn Sie das Terminal nicht mehr verwenden.
Sie können es manuell löschen aus:
Ihr Dateibrowser.
Terminal: Denken Sie daran, dass beim Schließen des Terminals eine neue .bash_history-Datei erstellt wird (basierend auf der Standardkonfiguration).
Oder Sie können eine benutzerdefinierte Funktion aufrufen, wenn Sie die benötigte Funktionalität in einer vom bashrc verknüpften Datei speichern. Sie können den bashrc selbst bearbeiten, wenn Sie Ihren Code dort ablegen möchten. Die nächsten Beispiele befinden sich jedoch in einer separaten Datei
Ehrlich gesagt ist dies für mich nicht nützlich, aber wenn Sie den
Befehlsverlauf vor dem Beenden löschen möchten, können Sie dies tun: .bash_custom #dies ist meine benutzerdefinierte Datei
Dann füge unten den Namen und den Pfad meiner Datei hinzu
.bashrc # das ist die Konfigurationsdatei für die Bash (glaube ich)
und das ist alles.
ABER, um genau das zu tun, was Sie wollen , brauchen Sie nur diese Funktion in Ihrer benutzerdefinierten Datei und verlinken Sie sie:
Oder setzen Sie die Funktion einfach in die .bashrc, wenn Sie möchten, aber auf diese Weise benötigen Sie wahrscheinlich eine export-Anweisung nach der Funktion. Ich bin nicht sicher, und wenn die Datei aktualisiert wird, gehen wahrscheinlich Ihre Funktionen verloren. Ich bin mir auch nicht sicher: D.
Denken Sie daran, dass Sie das Terminal neu starten müssen, wenn Sie die .bashrc-Datei oder Ihre benutzerdefinierte Datei bearbeiten.
quelle
Bei Verwendung von PuTTY unter CentOS 7 lässt clear nur den Befehl clear im Scrollback. Wenn Sie jedoch "clear && clear" ausführen, werden zwei Instanzen des Befehls clear gleichzeitig ausgeführt, der Scrollback wird vollständig gelöscht, und ich habe keine Bildlaufleiste. Versuch das. Es ist eine seltsame Lösung, aber keine davon hat den Scrollback so effektiv gelöscht, und das tut es auch.
quelle
Hinzugefügt,
~/.inputrc
um die vollständige Verrechnung zu binden an F12:quelle
In Fedora 30 wird der Verlauf gelöscht, indem die Datei $ HOME / .bash_history entfernt wird. Der einfachste Weg, die Terminal-Verlaufsdatei über die Tastatur zu löschen, ist:
nautilus
und drücken Sie die EnterTaste, um die Anwendung (GNOME) Files (die früher als Nautilus bekannt war) zu öffnen..bash_history
(der in der Suchleiste angezeigt werden soll, wenn er unmittelbar nach dem Öffnen des Fensters eingegeben wird. Andernfalls kann über Ctrl+ auf die Suchleiste zugegriffen werden. L)quelle
quelle
history -c
in zwei vorherigen Antworten vorgestellt, und sie wurden gelöscht, weil sie nicht die richtigen Antworten auf die Frage sind. (2) Während das Terminalfenster schließen wird (wahrscheinlich) die Erinnerung an früheren Befehle des Terminals löschen, ist es weit von sich , dass die OP das tun will. … Und PS: Es kannexit
nicht garantiert werden, dass ein einzelner Befehl das Terminalfenster schließt.