494 votes

Comment vraiment effacer le terminal?

Je peux exécuter la commande clear ou appuyer sur Ctrl + L pour effacer le terminal actuel d'Ubuntu, mais cela ne fait que déplacer la sortie précédente vers le haut et si vous utilisez le défilement de la souris ou les touches PgUP et PgDown, il est difficile de distinguer où se termine la sortie de la commande précédente et où commence la sortie de la commande actuelle.

Y a-t-il un moyen d'effacer vraiment le terminal pour que je ne voie pas les résultats des commandes précédentes?

17 votes

Appuyez sur Ctrl+L deux fois et vous obtenez du vide!

3 votes

Sur mac OS et iTERM, cmd + k fait l'affaire pour moi.

0 votes

Ctrl+L deux fois fonctionne sur le terminal intégré de vscode sur Mac OS X

555voto

andybee Points 497

Oui, la commande que vous recherchez est

reset

Contrairement à clear, ou Ctrl+L, reset réinitialisera complètement le terminal, au lieu de simplement effacer l'écran. Cependant, cela ne réinstancie pas la shell (bash). Cela signifie que l'état de bash est le même qu'auparavant, tout comme si vous effaciez simplement l'écran.

Comme mentionné par @Ponkadoodle dans les commentaires, cette commande devrait faire la même chose plus rapidement:

tput reset

D'après les autres réponses:

  • Vous pouvez définir un raccourci clavier pour reset le terminal, comme expliqué par towolf.

  • Si vous utilisez Kubuntu, et que votre terminal est Konsole, vous devez aller dans Modifier Effacer l'historique, car reset ne fonctionne pas de la même manière là-bas, comme le note UncleZeiv.

11 votes

Probablement ne pas avoir d'importance pour la plupart des utilisateurs, mais le comportement de reset dépend du terminal.

2 votes

Personnellement, ça ne me dérange pas qu'il reste quelque chose "en haut" le long du défilement quand je tape ^L. Je ne le vois pas (c'est ce que je veux !), je ne le ressens pas, et si soudainement j'avais besoin de restaurer ce qui était là — aucun problème. reset en revanche est un outil beaucoup plus difficile — je l'utiliserai quand quelque chose aura mal tourné avec le terminal — par exemple, lorsque des séquences d'échappement bizarres auront accidentellement ruiné complètement l'affichage.

21 votes

@ulidtko : cela importe lorsque vous exécutez des sessions consécutives de programmes avec des tonnes de sortie. Si vous faites défiler vers le haut, il est facile de se confondre sur quelle exécution a imprimé quelque chose. Je sais parfaitement que des solutions plus sophistiquées pourraient être utilisées dans ces cas, mais néanmoins, c'est un scénario qui se produit assez souvent dans des sessions de débogage rapides et sales.

156voto

Goran Points 1661

J'ai cherché cela pendant un certain temps et j'ai trouvé un génie qui a posté ceci :

clear && printf '\e[3J'

Efface tout le tampon d'écran, très propre. Fonctionne sur OS X et je crois que cela fonctionne bien sur la plupart des terminaux *nix.

Pour les curieux, cette partie '\e[3J' est une commande d'échappement de terminal.

3 votes

Hmm, fonctionne dans xterm, Konsole et Linux VT, mais pas dans gnome-terminal...

1 votes

Meilleure réponse. Purge même l'historique tmux (comme dans Ctrl+b PgUp; reset échoue à le faire; testé dans rxvt-unicode/urxvt; alternative spécifique à tmux : clear && tmux clearhist).

9 votes

Merci, c'est super utile! Que signifie printf '\e[3J' ? Comment nettoie-t-il le tampon?

53voto

lomaxx Points 32540

Vous pouvez également attribuer un raccourci dans gnome-terminal en allant dans Modifier les raccourcis clavier. J'utilise Shift+Ctrl+Alt+C.

raccourci de réinitialisation et de suppression

0 votes

+1. J'ai toujours la barre de menus cachée; donc même après des années d'utilisation de gnome, je n'ai jamais pensé à chercher cela. Merci :-)

5 votes

"Réinitialiser" ne fait rien pour moi, et "Réinitialiser et effacer" efface tout mais ne réaffiche pas l'invite. Aucune de ces entrées de menu ne se comporte comme la commande "reset" d'un terminal.

0 votes

Comme l'a dit @Hibou57, mon raccourci clavier pour "Réinitialiser" ne semble rien faire. Cette fonctionnalité est-elle cassée dans 14.04?

23voto

Autodidact Points 400

Je poste ma réponse de stackoverflow.

Utilisez la commande suivante pour effacer l'écran au lieu d'ajouter simplement de nouvelles lignes...

printf "\033c"

oui c'est un 'printf' sur l'invite de commandes bash.

Vous voudrez probablement définir un alias cependant...

alias cls='printf "\033c"'

Explication

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

Ainsi cela devient c qui est le code d'échappement VT100 pour réinitialiser le terminal. Ici vous trouverez plus d'informations sur les codes d'échappement du terminal.

Éditer

Voici quelques autres façons de le faire...

printf "\ec" #\e est ESC en bash
echo -en "\ec" #merci à @Jonathon Reinhart.
# -e    Activer l'interprétation des échappements en barre oblique
# -n    Ne pas produire de nouvelle ligne

KDE

Ce qui précède ne fonctionne pas sur la console KDE (appelée Konsole) mais il y a de l'espoir ! Utilisez la séquence de commandes suivante pour effacer l'écran et le tampon de défilement...

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

Ou peut-être utilisez l'alias suivant sur KDE...

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

J'ai obtenu la commande de suppression du défilement à partir de ici.

19voto

Evan Points 1318

Exécuter cette commande :

reset

Cela a le même effet que de lancer un nouveau terminal.

7 votes

Lorsque j'utilise Putty, après avoir exécuté reset, je peux toujours faire défiler vers le haut et voir des choses précédentes. Est-ce un problème avec PuTTY plutôt qu'avec reset?

0 votes

@svish -- il s'agit simplement d'un problème ou d'une décision d'implémentation de putty.

0 votes

@jgbelacqua, D'accord :)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X