web-dev-qa-db-fra.com

Effacer un écran de terminal pour de vrai

L'utilisation de la commande clear sur le terminal ne permet qu'à l'utilisateur de penser que l'écran a été effacé ... vous pouvez toujours voir le résultat des commandes précédentes lorsque vous faites défiler l'écran à l'aide de la souris. Cela rend la vie difficile lorsque vous vous noyez dans un tsunami de texte.

Les différentes solutions (code d'échappement, etc.) que l'on peut trouver sur Internet ne sont que des variantes de ce que fait déjà la commande clear.

Alors, comment effacer le contenu d'un terminal sous Linux pour de vrai?

351
Autodidact

Utilisez la commande suivante pour faire un écran clair au lieu d'ajouter simplement de nouvelles lignes ...

printf "\033c"

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

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

alias cls='printf "\033c"'

Explication

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

Donc, cela devient <ESC>c qui est le code d'échappement VT100 pour réinitialiser le terminal. Here Voici quelques informations supplémentaires sur les codes d'échappement du terminal.

Modifier

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

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

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 arrière ...

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

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

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

J'ai reçu la commande d'effacement de défilement de ici .

477
Autodidact

Essayez reset. Cela efface l'écran du terminal, mais vous pouvez accéder aux commandes précédentes à l'aide de la flèche ou de la liaison de clé que vous avez.

198
vpit3833
tput reset

Cela fera l'affaire!

45
user1348669

Aucune des réponses que j'ai lues n'a fonctionné dans PuTTY, j'ai donc trouvé un commentaire sur cet article :

Dans les paramètres de votre connexion, sous "Fenêtre-> Comportement", vous trouverez un paramètre "Le menu système apparaît uniquement sur ALT". Ensuite, CTRL + L, ALT, l (c'est une lettre minuscule L) fera défiler l'écran puis effacera la mémoire tampon de défilement.

(pertinent pour l'OP car je me connecte à un serveur Ubuntu, mais aussi apparemment pertinent quel que soit le fonctionnement de votre serveur.)

7
TecBrat

Le lien suivant expliquera comment rendre cet alias permanent afin que vous n'ayez pas à le taper continuellement.

https://askubuntu.com/questions/17536/how-do-i-create-a-permanent-bash-alias

Ce sont les étapes détaillées à ce lien.

  1. vim ~/.bashrc ou gedit ~/.bashrc ou quel que soit l'éditeur de texte que vous préférez
  2. mettre alias cls = 'printf "\ 033c"' au bas du fichier
  3. sauvegarder et quitter
  4. . ~/.bashrc (et oui il devrait y avoir un espace entre. et ~)
  5. maintenant, vérifiez si tout a fonctionné!

Je ne prends aucun crédit pour cette information simplement la transmettre.

6
N1mr0d

Ma commande humaine préférée pour cela est la suivante:

reset

Testé sur xterm et VT100. Cela aide également après une fin de programme anormale. Conserve le tampon de commande, ainsi la flèche montante parcourra les commandes précédentes.

acclamations: D

5
elbedoit

Avec KDE et Ubuntu 12.04 LTS et le terminal "Konsole", aucune des réponses postées ne fonctionne. Cependant, appuyer sur le raccourci clavier par défaut CTRL + Maj + X fonctionne! La source:

https://bugs.kde.org/show_bug.cgi?id=28891

3
The111

Il suffit d'ajouter que tmux le tampon de défilement ne s'efface pas avec clear, reset ou printf. Vous devez :clear-history. Voir lien .

1
Dai

Je sais que la solution consistant à imprimer de nouvelles lignes n’est pas très bien supportée, mais si tout échoue, pourquoi pas? Particulièrement lorsque l’on opère dans un environnement où une autre personne est susceptible de pouvoir voir l’écran, sans toutefois pouvoir enregistrer au clavier. Une solution potentielle est donc l'alias suivant:

alias c="printf '\r\n%.0s' {1..50}"

Ensuite, pour "effacer" le contenu actuel de l'écran (ou plutôt, pour le masquer), tapez simplement c+Enter sur le terminal.

1
nemesisfixx