Come cancellare davvero il terminale?


385

Posso eseguire il clearcomando o premere Ctrl+ Lper cancellare il terminale di Ubuntu corrente, ma questo solo si sposta verso l'alto di uscita precedente e se si utilizza di scorrimento del mouse o PgUPed PgDowni tasti che è difficile distinguere dove l'uscita di precedenti estremità di comando e output del comando corrente comincia.

C'è un modo per cancellare davvero il terminale in modo che non vedrò i risultati dei comandi precedenti?


11
Premi Ctrl + L due volte e diventi vuoto!
— Pandya,

Risposte:


456

Sì, il comando che stai cercando è

reset

Contrariamente a clear, o Ctrl+ L, resetin realtà reinizializzerà completamente il terminale , anziché semplicemente cancellare lo schermo. Tuttavia, non ri-istanzia la shell (bash). Ciò significa che lo stato di Bash è lo stesso di prima, proprio come se stessi semplicemente cancellando lo schermo.

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

tput reset

Dalle altre risposte:

  • È possibile impostare una scorciatoia da tastiera per resetil terminale, come spiegato da towolf .

  • Se stai eseguendo Kubuntu e il tuo terminale è Konsole, devi andare su Modifica → Cancella cronologia , poiché resetnon funziona allo stesso modo, come osserva UncleZeiv .


9
Probabilmente non importa per la maggior parte degli utenti, ma il comportamento resetdipende dal terminale.
— cthom06,

2
Personalmente non mi dispiace che qualcosa venga lasciato "in alto" lungo lo scroller quando colpisco ^L. Non lo vedo (è quello che voglio!), Non lo sento, e se improvvisamente avrei bisogno di ripristinare ciò che era lì - nessun problema. resetal contrario è uno strumento molto più difficile - lo userò quando qualcosa andava storto con il terminale - come quando strane sequenze di escape rovinavano accidentalmente il display.
— Ulidtko,

14
@ulidtko: importa quando si eseguono sessioni consecutive di programmi con tonnellate di output. Se scorri indietro è facile confondersi su quale esecuzione abbia stampato qualcosa. So perfettamente che in questi casi potrebbero essere utilizzate soluzioni più sofisticate, ma è comunque uno scenario che si presenta abbastanza spesso in sessioni di debug veloci e sporche.
— ZioZeiv,

7
C'è anche quello tput resetche fa visibilmente la stessa cosa, ma si completa istantaneamente (mentre resetpuò richiedere fino a circa 2 secondi prima che ricompaia il prompt).
— Ponkadoodle

1
Questo fa ridimensionare la mia finestra putty.exe, sarebbe bello da cancellare senza che ciò accadesse.
— void.pointer

100

Lo stavo cercando da un po 'e ho trovato un po' di genio che ha pubblicato questo:

clear && printf '\e[3J'

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

Per curiosi, questa parte '\e[3J'è un comando di escape terminale.


2
Hmm, funziona in xterm, Konsole e Linux VT, ma non in gnome-terminal ...
— Ruslan

1
Grazie, funziona benissimo sul mio Mac - mi è davvero mancato un vero stile Bash reset.
— JohnnyCoder,

9
Grazie, è super utile! Cosa printf '\e[3J'significa? Come pulisce il buffer?
— Filip Spiridonov,

4
fai attenzione alias reset: non si limita a cancellare il terminale. ad esempio, se si stampa accidentalmente un file binario con immondizia casuale che corrompe il terminale (ad esempio disabilita l'eco dei caratteri digitati), di resetsolito è possibile risolverlo. ovviamente l'aliasing va bene fintanto che sai come eseguire \overrideun comando alias-shadowed.
— RubyTuesdayDONO,

4
Questa è l'unica risposta che funziona per cancellare lo scrollback di Putty quando si accede ad alcuni SSH tramite Winder.
— Dhaupin,

45

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

ripristina e cancella il collegamento


+1. Ho sempre nascosto la barra dei menu; così, anche dopo anni e anni di utilizzo di gnome, non ho mai pensato di cercarlo. Grazie :-)
— Stefano Palazzo

3
"Ripristina" non fa nulla per me e "Ripristina e cancella" cancella tutto ma non visualizza nuovamente il messaggio. Nessuna di queste voci di menu si comporta come il comando "reset" da un terminale.
— Hibou57,

Come ha detto @ Hibou57, la mia scorciatoia da tastiera per "Ripristina" non sembra fare nulla. Questa funzionalità è stata interrotta nel 14.04?
— Michael Martin-Smucker,

"Questa funzionalità è stata interrotta in 14.04?": È la stessa con 12.04.
— Hibou57,

1
@ Hibou57 "Ripristina e cancella" non dovrebbe visualizzare nuovamente il prompt, ma se si preme Invio in seguito, è necessario visualizzare nuovamente il prompt. Funziona per te?
— Don Hatch,

19

Invio incrociato della mia risposta da StackOverflow .

Usa il seguente comando per fare una schermata chiara invece di aggiungere semplicemente nuove righe ...

printf "\033c"

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

Probabilmente vorrai definire un alias però ...

alias cls='printf "\033c"'

Spiegazione

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

Quindi questo diventa <ESC>cqual è il codice di escape VT100 per ripristinare il terminale. Ecco alcune ulteriori informazioni sui codici di escape del terminale.

modificare

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 .


18

eseguire questo comando:

reset

Ciò ha lo stesso effetto del lancio di un nuovo terminale.


6
Quando uso putty, dopo l'esecuzione reset, posso ancora scorrere verso l'alto e vedere cose precedenti. È un problema con PuTTY piuttosto che reset?
— Svish,

@svish - questo è solo un problema o una decisione di implementazione dello stucco.
— belacqua,

@jgbelacqua, Deal :)
— Svish,

Ha funzionato con il terminale MAC OS
— Bira l'

2
@Bira No, resetnon cancella lo scrollback su macOS 10.14 Mojave. Potresti provare seq 100; reseta vedere lo scrollback ancora lì. Sul terminale macOS, è Cmd+Kpossibile cancellare lo schermo e lo scorrimento.
— Johnny Wong,

8

Il mio preferito è printf "\ec". Questo può anche essere printf "\033c"o printf "\x1bc". Questa è una sequenza di escape ansi che cancella miracolosamente lo schermo e il buffer per l'output 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 funziona con Linux Mint e Ubuntu 14.04, quindi non so perché le persone stiano aggiungendo e preparando cose del genere clear && echo -ne "\033c. printf "\ec"ha sempre lavorato per me.

Inoltre, nel mio .bashrcho un'associazione come questa:

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

Adesso premo ctrltsempre.


Sai come è possibile creare una mappatura usando il tasto Windows? Questo frammento è davvero eccezionale, funziona esattamente come Command-K su Mac. Grazie.
— Niloct,

@Niloct puoi vedere se il terminale lo supporta con xev(basta digitare xevun terminale all'interno di una sessione x). Da quello che potrei dire, urxvt non lo supporta; mentre non ho provato in un tty, sono sicuro che non sarebbe supportato. Dubito anche che xterm o gnome-terminal lo sosterrebbero. È difficile con ansi-escape. Saluti e scusa per la risposta tardiva.
— dylnmc,

Va bene @dylnmc, lo apprezzo. Grazie per il commento.
— Niloct,

5

Bene, dipende davvero, se stai usando, Konsolead esempio, resetnon ti impedisce di scorrere oltre la prima riga. In tal caso, è necessario utilizzare alcune funzionalità del terminale specifico in uso. Perché Konsolelo è Edit > Clear History.


3

Ho trovato quanto segue per avere abbastanza successo con Kubuntu:

alias clc="echo -en '\033c\033[3J'"

È possibile utilizzare clsper mantenere la tradizione Windows, utilizzare la versione Matlab clco una propria. In bocca al lupo!



2

Un'altra alternativa alla risposta @ Hibou57:

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

O

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

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


Correzione leggera: stampa il ^[carattere (ESC) seguita da ccarattere, non solo il ^[carattere solo. Combinati, equivalgono al codice terminale "RIS", che provoca un ripristino. Maggiori informazioni: xfree86.org/4.8.0/ctlseqs.html
— jwd,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.