Effacer un écran de terminal pour de vrai

L'utilisation de la commande clear sur le terminal ne fait que tromper l'utilisateur en lui faisant croire que l'écran a été effacé...vous pouvez toujours voir la sortie des commandes précédentes lorsque vous faites défiler la souris. Cela rend la vie difficile quand vous noyer dans un flot de texte.

diverses solutions (code d'échappement, etc.) que l'on peut trouver sur Internet ne sont que des variations de ce que la commande Claire fait déjà.

alors comment contenu d'un terminal sous Linux pour de vrai?

303
demandé sur jww 2011-03-20 09:10:56

10 réponses

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

printf "3c"

oui, c'est un 'printf' à l'invite bash.

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

alias cls='printf "3c"'

explication

3 == \x1B == 27 == ESC

devient alors <ESC>c qui est le code d'échappement VT100 pour la réinitialisation du terminal. ici est un peu plus informations sur les codes d'évacuation.

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 suivante de commandes 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 reçu la commande ici .

434
répondu Sandeep Datta 2017-03-20 10:18:25

Essayer reset . Il efface l'écran du terminal, mais les commandes précédentes peuvent être accédées par une flèche ou n'importe quelle liaison de clé que vous avez.

178
répondu vpit3833 2011-03-20 06:13:42
tput reset

ça fera l'affaire!

34
répondu Community 2018-02-06 14:37:06

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

dans les paramètres de votre connexion, sous" Window->Behavior "vous trouverez un paramètre"menu Système apparaît sur ALT seul". Puis CTRL+L, ALT, l (c'est un l minuscule) va faire défiler l'écran et puis effacer le tampon de scrollback.

(pertinent pour L'OP parce que je me connecte à un serveur Ubuntu, mais aussi apparemment pertinent no importe ce que votre serveur est en cours d'exécution.)

6
répondu TecBrat 2015-02-14 08:24:14

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

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 ce que jamais l'éditeur de texte vous aimez
  2. mettre alias cls='printf "\033c" " au bas du dossier
  3. enregistrer et quitter
  4. . ~ / .(et oui, il devrait y avoir un espace entre les deux . et~)
  5. vérifiez maintenant si tout a fonctionné!

Je ne m'attribue pas le mérite de cette information.

6
répondu N1mr0d 2017-07-12 17:14:43

ma commande préférée est:

reset

testé sur xterm et VT100. Il aide également après une fin anormale du programme. Garde la commande buffer, donc la flèche vers le haut passera par les commandes précédentes.

cheers: d

5
répondu elbedoit 2015-02-13 07:54:51

avec KDE et Ubuntu 12,04 LTS et le terminal "Konsole", aucune des réponses affichées ne fonctionne. Cependant, appuyer sur le raccourci clavier par défaut CTRL+Shift+X fonctionne! Source:

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

3
répondu The111 2013-12-12 20:47:23

je sais que la solution employant l'impression de nouvelles lignes n'est pas beaucoup soutenue, mais si tout le reste échoue, pourquoi pas? Surtout quand on opère dans un environnement où quelqu'un d'autre est susceptible d'être capable de voir l'écran, mais pas capable de se connecter. Une solution potentielle est donc l'alias suivant:

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

ensuite, pour" effacer "le contenu courant de l'écran (ou plutôt, les cacher), tapez simplement c+Enter au terminal.

0
répondu nemesisfixx 2018-08-31 17:11:51
echo -e "\e[3J"

cela fonctionne dans les Machines Linux

-1
répondu nithin 2018-07-04 12:05:13

compilez cette application.

#include <iostream>
#include <cstring>

int main()
{
  char str[1000];
  memset(str, '\n', 999);
  str[999] = 0;
  std::cout << str << std::endl;
  return 0;
}
-50
répondu Max 2011-12-09 06:10:25