Domanda Come pulire veramente il terminale?


Posso emettere il clear comando 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 mouse scroll o PgUP e PgDown le chiavi è difficile da distinguere dove finisce l'output del comando precedente e inizia l'output del comando corrente.

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


321
2018-02-06 21:51


origine


Premi Ctrl + L due volte e tu diventi bianco! - Pandya


risposte:


Sì, il comando che stai cercando è

reset

In contrasto con clear, o Ctrl+L, reset in realtà sarà completamente reinizializzare il terminale, invece di cancellare lo schermo. Tuttavia, non riattiverà la shell (bash). Ciò significa che bash stato è la stessa di prima, proprio come se si stesse semplicemente cancellando lo schermo.

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

tput reset

Dall'altra risposte:

  • Puoi impostare a Scorciatoia da tastiera a reset il terminale, come spiegato da towolf.

  • Se stai correndo kubuntue il tuo terminale è Konsole, devi andare a Modifica → Cancella cronologia, da reset non funziona allo stesso modo lì, come nota UncleZeiv.


391
2018-02-06 21:55



Probabilmente non importa per la maggior parte degli utenti, ma il comportamento di reset dipende dal terminale. - cthom06
Personalmente non mi dispiace che qualcosa venga lasciato "su" lungo lo scroller quando colpisco ^L. Non lo vedo (è quello che voglio!), Non lo sento, e se improvvisamente lo farei bisogno per ripristinare ciò che c'era - nessun problema. reset al contrario è uno strumento molto più difficile - lo userò quando qualcosa è andato storto con il terminale - come quando strane sequenze di escape hanno rovinato del tutto lo schermo. - ulidtko
@ulidtko: importa quando si eseguono sessioni consecutive di programmi con tonnellate di output. Se si scorre indietro è facile confondersi su quale esecuzione ha stampato qualcosa. So perfettamente che potrebbero essere utilizzate soluzioni più sofisticate in questi casi, ma ciò nonostante è uno scenario che si verifica abbastanza spesso in sessioni di debug rapido e sporco. - UncleZeiv
Le ancore prompt colorate di @UncleZeiv di solito mi aiutano a trovare rapidamente il punto necessario. Anche se questo è tutto solo abitudini. - ulidtko
C'è anche tput reset che visibilmente fa la stessa cosa, ma completa istantaneamente (mentre reset può richiedere fino a circa 2 secondi prima che il prompt riappaia). - Ponkadoodle


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 curioso, questa parte '\e[3J' è un comando di fuga terminale.


76
2018-05-29 05:51



Hmm, funziona in xterm, Konsole e Linux VT, ma non in gnome-terminal ... - Ruslan
Grazie, è super utile! Cosa fa printf '\e[3J' significare? Come pulisce il buffer? - Filip Spiridonov
Grande scoperta! E per coloro che vogliono il reset in stile Bash su mac: nano ~/.bashrc e aggiungi alias reset="clear && printf '\e[3J'" - Michael Deal
fai attenzione aliasing reset - Fa molto più che cancellare il terminale. ad esempio, se si stampa accidentalmente un file binario con dati casuali casuali che corrompono il terminale (ad es. disabilita l'eco dei caratteri digitati), reset di solito può risolverlo. ovviamente l'aliasing va bene finché sai come \override un comando alias-ombreggiato. - RubyTuesdayDONO
Questa è l'unica risposta che funziona per cancellare lo scrollback di Putty quando si accede ad alcuni SSH tramite Winder. - dhaupin


Puoi anche assegnare una scorciatoia in gnome-terminal andando a Modifica → Scorciatoie da tastiera. Io usoCambio+Ctrl+alt+C.

reset and clear shortcut


37
2018-02-08 22:46



+1. Ho sempre nascosto la barra dei menu; quindi, anche dopo anni e anni di utilizzo di gnome, non ho mai pensato di cercarlo. Grazie :-) - Stefano Palazzo♦
"Reset" non fa nulla per me e "Reset and Clear" cancella tutto ma non visualizza nuovamente il prompt. 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 "Reset" non sembra fare nulla. Questa funzionalità è stata interrotta in 14.04? - Michael Martin-Smucker
"Questa funzionalità è stata interrotta in 14.04?": Questo è lo stesso con 12.04. - Hibou57
@ Hibou57 "Reset and Clear" non è previsto per visualizzare nuovamente il prompt, ma se si preme Invio successivamente, è necessario visualizzare nuovamente il prompt. Funziona per te? - Don Hatch


esegui questo comando:

reset

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


15
2018-02-06 21:55



Quando si utilizza lo stucco, dopo aver eseguito reset, Posso ancora scorrere e vedere cose precedenti. È un problema con PuTTY piuttosto che con reset? - Svish
@svish - questo è solo un problema di implementazione o decisione. - belacqua
@jgbelacqua, Deal :) - Svish


Cross posting la mia risposta da StackOverflow.

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

printf "\033c"

sì è 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>c che è il codice di escape VT100 per reimpostare il terminale. Qui è qualche informazione in più 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 KDE (chiamata Konsole) ma c'è speranza! Utilizzare la seguente sequenza di comandi per cancellare lo schermo e il buffer scroll-back ...

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

O forse usa il seguente alias su KDE ...

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

Ho ottenuto il comando di cancellazione scroll-back da Qui.


8
2017-10-13 08:08





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


5
2018-02-07 16:27





Il mio preferito è printf "\ec". Questo può anche essere printf "\033c" 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 "\033c. printf "\ec" ha sempre funzionato per me

Inoltre, nel mio .bashrc Ho un legame come questo:

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

Adesso premo ctrlt tutto il tempo.


5
2018-05-01 09:32



Sai come si può creare una mappatura usando il tasto Windows? Questo frammento è davvero grandioso, funziona esattamente come Command-K su mac. Grazie. - Niloct
@Niloct puoi vedere se il terminale lo supporta xev (basta digitare xev in un terminale all'interno di una x-session). Da quello che ho potuto capire, urxvt non lo supporta; mentre non ho provato in un tty, sono fiducioso che non sarebbe supportato. Dubito anche che xterm o gnome-terminal lo supportino. È difficile con le fughe ansiose. Saluti e scusa per la risposta in ritardo. - dylnmc
Va bene @dylnmc, lo apprezzo. Grazie per il commento. - Niloct


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

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

Puoi usare cls per mantenere la tradizione di Windows, usa la versione di Matlab clco uno dei tuoi. In bocca al lupo!


3
2018-04-29 22:26





In alternativa a reset, tu puoi fare echo -e "\033c"o hai nel tuo .bashrc, qualcosa di simile a alias cls="echo -ne '\033c'"

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).


2
2017-07-09 08:55