Come cancellare veramente il terminale?

321

Posso inviare il comando clear o premere Ctrl + L per cancellare l'attuale terminale di Ubuntu, ma questo sposta semplicemente l'output precedente verso l'alto e se usi il scroll del mouse o i tasti PgUP e PgDown è difficile distinguere dove finisce l'output del comando precedente e inizia l'output del comando corrente.

C'è un modo per veramente deselezionare il terminale in modo da non vedere i risultati dei comandi precedenti?

    
posta Stann 06.02.2011 - 22:51

11 risposte

391

Sì, il comando che stai cercando è

reset

Diversamente da clear , o Ctrl + L , reset in realtà re-inizializza completamente terminale , invece di cancellare lo schermo. Tuttavia, non riattiverà la shell (bash). Ciò significa che lo stato di bash è lo stesso di prima, proprio come se si stesse semplicemente cancellando lo schermo.

Come menziona @Wallacoloo nei commenti, questo comando dovrebbe fare la stessa cosa più velocemente:

tput reset

Dalle altre risposte:

  • Puoi impostare una scorciatoia da tastiera su reset del terminale, come spiegato da towolf .

  • Se stai utilizzando Kubuntu e il tuo terminale è Konsole, devi andare a Modifica → Cancella cronologia , poiché reset non funziona allo stesso modo, come note di UncleZeiv .

risposta data Stefano Palazzo 06.02.2011 - 22:55
76

L'ho cercato per un po 'e ho trovato un genio che ha pubblicato questo:

clear && printf '\e[3J'

Cancella l'intero buffer dello schermo, molto pulito. Funziona su OS X e ritiene che funzioni bene sulla maggior parte dei terminali * nix.

Per curiosità, questa parte '\e[3J' è un comando di uscita terminale.

    
risposta data Goran 29.05.2014 - 07:51
37

Puoi anche assegnare una scorciatoia in gnome-terminal andando in Modifica → Scorciatoie da tastiera . Io uso Maiusc + Ctrl + Alt + C .

    
risposta data towolf 08.02.2011 - 23:46
15

esegui questo comando:

reset

Questo ha lo stesso effetto dell'avvio di un nuovo terminale.

    
risposta data dv3500ea 06.02.2011 - 22:55
8

Cross posting della mia risposta da stackoverflow .

Usa il seguente comando per fare uno schermo chiaro invece di aggiungere semplicemente nuove linee ...

printf "3c"

sì è un 'printf' sul prompt di bash.

Probabilmente vorrai definire un alias ...

alias cls='printf "3c"'

Spiegazione

3 == \x1B == 27 == ESC

Quindi questo diventa <ESC>c che è il codice di escape VT100 per reimpostare il terminale. Qui contiene ulteriori informazioni sui codici di escape del terminale.

Modifica

Ecco alcuni altri modi per farlo ...

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

Quanto sopra non funziona sulla console di KDE (chiamata Konsole) ma c'è speranza! Utilizzare la seguente sequenza di comandi per cancellare lo schermo e il buffer di scorrimento indietro ...

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

O forse usa il seguente alias su KDE ...

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

Ho ricevuto il comando di cancellazione scroll-back da qui .

    
risposta data Sandeep Datta 13.10.2015 - 10:08
5

Beh, dipende davvero, se si utilizza Konsole , per esempio anche reset non impedisce di scorrere oltre la prima riga. In tal caso è necessario utilizzare alcune funzionalità del particolare terminale che si sta utilizzando. Per Konsole , è Edit > Clear History .

    
risposta data UncleZeiv 07.02.2011 - 17:27
5

Il mio preferito è printf "\ec" . Questo può anche essere printf "3c" o printf "\x1bc" . Questa è una sequenza di escape ansi che rimuove miracolosamente lo schermo e il buffer per l'uscita del terminale (per la maggior parte dei terminali standard in cui ho lavorato sembra - so che funziona come gnome-terminal, terminator, xterm, ecc. Su Ubuntu-like versioni di Linux)

So che questo funziona con Linux Mint e Ubuntu 14.04, quindi non so perché le persone aggiungano e prepediano cose come clear && echo -ne "3c . printf "\ec" ha sempre funzionato per me.

Inoltre, nel mio .bashrc ho un'associazione come questa:

bind -x '"\C-t": printf "\ec"';

Ora premo ctrl t per tutto il tempo.

    
risposta data dylnmc 01.05.2015 - 11:32
3

Ho trovato quanto segue per avere un discreto successo con Kubuntu:

alias clc="echo -en '3c3[3J'"

Puoi usare cls per mantenere la tradizione di Windows, usare la versione di Matlab clc o una di tua scelta. Buona fortuna!

    
risposta data Charles Bell 30.04.2015 - 00:26
2

In alternativa a reset , puoi fare echo -e "3c" , o avere in .bashrc , qualcosa come alias cls="echo -ne '3c'"

Lo StackExchange UNIX / Linux ha una discussione su questo: Come cancellare completamente il terminale ? (unix.stackexchange.com) , così come SuperUser: Cancella terminale usando la scorciatoia da tastiera (superuser.com) .

    
risposta data Hibou57 09.07.2014 - 10:55
2

Un'altra alternativa alla risposta @ Hibou57:

# The Octal Way
alias clear="echo -e '3c\c'"

o

# The Hex Way
alias clear="echo -e '\x1b\c'"

Fondamentalmente questo avrà esattamente lo stesso effetto, stamperà il carattere ^[ (che cancella il tuo terminale) e non produrrà la nuova riga finale.

    
risposta data TwystO 30.10.2014 - 22:26
1

Se stai usando yakuake o Konsole, prova Ctrl + Maiusc + K .

Fonte: link

    
risposta data Wojciech Sidor 06.10.2015 - 18:21

Leggi altre domande sui tag