web-dev-qa-db-fra.com

Comment vraiment vider le terminal?

Je peux émettre la commande clear ou appuyer sur Ctrl + L pour effacer le terminal Ubuntu actuel, mais cela déplace simplement la sortie précédente vers le haut et si vous utilisez le défilement de la souris ou PgUP et PgDown clés, il est difficile de distinguer où se termine la sortie de la commande précédente et où commence la sortie de la commande en cours.

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

368
Stann

Oui, la commande que vous recherchez est

reset

Contrairement à clear, ou Ctrl+L, reset va réellement réinitialiser complètement le terminal , au lieu d’effacer tout simplement l’écran. Cependant, il ne réinstanciera pas le shell (bash). Cela signifie que l'état de de bash est le même qu'avant, comme si vous effaciez simplement l'écran.

Comme @Wallacoloo le mentionne 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 sur reset le terminal, comme expliqué par towolf .

  • Si vous utilisez Kubuntu et que votre terminal est Konsole, vous devez accéder à Édition → Effacer l'historique , puisque reset ne fonctionne pas de la même manière, comme le note UncleZeiv .

441
Stefano Palazzo

Je cherchais cela pendant un moment 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 sous OS X et pense que cela fonctionne bien sur la plupart des terminaux * nix.

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

93
Goran

Vous pouvez aussi assigner un raccourci dans gnome-terminal en allant dans Édition → Raccourcis clavier. j'utiliseShift+Ctrl+Alt+C.

reset and clear shortcut

44
towolf

lancez cette commande:

reset

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

18
dv3500ea

Cross poster ma réponse de stackoverflow .

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 .

13
Autodidact

Mon préféré est printf "\ec". Cela peut aussi être printf "\033c" ou printf "\x1bc". C’est une séquence d’échappement ansi qui efface miraculeusement l’écran et le tampon de la sortie du terminal (pour la plupart des terminaux standard dans lesquels j’ai travaillé, il semble - je sais que cela fonctionne comme gnome-terminal, terminateur, xterm, etc. sur Ubuntu-like Linux)

Je sais que cela fonctionne dans Linux Mint et Ubuntu 14.04, donc je ne sais pas pourquoi les gens ajoutent et préparent des choses comme clear && echo -ne "\033c. printf "\ec" a toujours fonctionné pour moi.

De plus, dans mon .bashrc, j'ai une liaison comme celle-ci:

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

Maintenant je presse ctrlt tout le temps.

7
dylnmc

Cela dépend vraiment, si vous utilisez Konsolepar exemple, même resetne vous empêche pas de faire défiler la première ligne. Dans ce cas, vous devez utiliser certaines fonctionnalités du terminal que vous utilisez. Pour Konsolename__, il s'agit de Edit > Clear History.

5
UncleZeiv

J'ai trouvé les éléments suivants assez réussis avec Kubuntu:

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

Vous pouvez utiliser cls pour vous en tenir à la tradition Windows, utilisez la version de Matlab clc ou l'une des vôtres. Bonne chance!

3
Charles Bell

Une autre alternative à la réponse @ Hibou57:

# The Octal Way
alias clear="echo -e '\033c\c'"

OR

# The Hex Way
alias clear="echo -e '\x1b\c'"

Fondamentalement, cela aura exactement le même effet, il imprimera le caractère ^[ (qui effacera votre terminal) et ne produira pas la nouvelle ligne de fin.

2
TwystO

À la place de reset, vous pouvez faire echo -e "\033c" ou avoir dans votre .bashrc quelque chose comme alias cls="echo -ne '\033c'"

UNIX/Linux StackExchange comporte un fil conducteur sur ceci: Comment effacer complètement le terminal? (Unix.stackexchange.com) , ainsi que SuperUser: Effacer le terminal à l’aide du raccourci clavier (superutilisateur. com) .

2
Hibou57

Si vous utilisez yakuake ou Konsole, essayez Ctrl+Shift+K.

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

1
Wojciech Sidor