494 votes

Comment effacer réellement 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 vers le haut la sortie précédente 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 de vraiment effacer le terminal pour ne pas voir les résultats des commandes précédentes ?

17 votes

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

3 votes

Sur macOS et iTerm, cmd + k fonctionne pour moi.

0 votes

Ctrl+L deux fois fonctionne sur le terminal intégré vscode de mac os x

555voto

andybee Points 497

Oui, la commande que vous recherchez est

reset

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

Comme le mentionne @Ponkadoodle dans les commentaires, cette commande devrait faire la même chose plus rapidement:

tput reset

Des 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 Modification Effacer l'historique, puisque reset ne fonctionne pas de la même manière là-bas, comme le souligne UncleZeiv.

11 votes

Il est probable que cela n'affecte pas 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 lorsque je tape ^L. Je ne le vois pas (c'est ce que je veux!), je ne le sens pas, et si soudainement j'avais besoin de restaurer ce qui était là — pas de problème. reset en revanche est un outil beaucoup plus difficile — je l'utiliserai lorsque quelque chose s'est mal passé avec le terminal — par exemple, lorsque des séquences d'échappement étranges ont 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 en arrière, 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 peu soignées.

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 ça 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. Même purges l'historique de 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 cela 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 d'effacement

0 votes

+1. J'ai toujours la barre de menu masquée; donc même après des années et 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 le message. Aucune de ces entrées de menu ne se comporte comme la commande "reset" d'un terminal.

0 votes

Comme l'a dit @Hibou57, il semble que mon raccourci clavier pour "reset" ne fonctionne pas. Cette fonctionnalité est-elle cassée dans 14.04?

23voto

Autodidact Points 400

Publication croisée de 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 commande bash.

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

alias cls='printf "\033c"'

Explication

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

Donc 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 de barre oblique
# -n    Ne pas produire une nouvelle ligne

KDE

Le code ci-dessus 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 utiliser 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écutez cette commande :

reset

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

7 votes

Lors de l'utilisation de 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 de mise en œuvre 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