PuTTY: effacer le retour en arrière de la ligne de commande

27

Lorsque je me connecte à mon serveur via PuTTY, je peux effacer l'écran visible avec la clearcommande.

Cependant, je peux toujours faire défiler vers l'arrière dans l'interface graphique de PuTTY pour voir les anciennes choses. Je connais la fonction Clear Scrollback de PuTTY , mais cela nécessite un clic de souris.

Je voudrais effectuer exactement la même opération "Clear Scrollback", mais à partir de la ligne de commande.

C'est possible?

J'ai lu ce site , ce qui semble l'indiquer.

Cependant, mes expériences ont échoué. Par exemple:

printf '\033[3J'

Ne fait rien pour moi.

Je ne comprends peut-être pas le sens de CSI 3 Jce deuxième lien, cependant ...

jwd
la source
Quelle version de PuTTY utilisez-vous? La page indique que la fonctionnalité fonctionne dans PuTTY 0.59 et supérieur. J'ai PuTTY 0,60 et cela fonctionne pour moi. Notez qu'il efface uniquement le tampon de défilement, il n'efface pas l'écran. (Si j'ai une barre de défilement, je peux réellement faire défiler, puis utiliser cette séquence, je remarque que la barre de défilement est désactivée car il n'y a soudainement plus rien à faire défiler. Mais l'écran actuellement affiché reste en place.)
Bavi_H
@Bavi_H: ah, merci - je ne réalisais pas que cela n'affecterait pas le texte actuellement affiché. Je vois que ça marche aussi. La solution complète que je veux est clear && printf '\033[3J'. Si vous répondez, je l'accepterai.
jwd

Réponses:

32

La CSI 3 Jséquence pour effacer le tampon de défilement a été ajoutée à PuTTY 0,59. (Sur la page de demande de souhait pour cette fonctionnalité, voir la ligne "fixe", ou allez sur la page des modifications de PuTTY et recherchez CSI 3 J.)

Comme jwd l'a mentionné, vous pouvez entrer printf '\033[3J'sur une ligne de commande pour envoyer cette séquence au PuTTY. Sachez que cela n'efface que le tampon de défilement, il n'efface pas l'écran. Si vous avez une barre de défilement, vous pouvez réellement faire défiler, puis utilisez cette séquence, vous verrez la barre de défilement devenir désactivée car il n'y a soudainement plus rien à faire défiler. Mais l'écran actuellement affiché reste en place.

Comme jwd l'a mentionné, vous pouvez effacer à la fois l'écran et le tampon de défilement en utilisant clear && printf '\033[3J'

Bavi_H
la source
Et pour ceux qui recherchent une lecture légère sur les codes de contrôle: xfree86.org/4.8.0/ctlseqs.html (: Celui-ci est en coursCSI P s J
jwd
11

Si vous êtes habitué, comme moi, à utiliser Ctrl+Ll' Reset terminaloption disponible dans le menu système de PuTTY, il peut être utile de l'activer Configuration -> Window -> Behavior -> "System menu appears on ALT-Space".

Ensuite, lorsque vous appuyez sur Alt+Space, l'option pour "Clear scrollback"est déclenchée par L(minuscule; pas de décalage). Ainsi, reset + cleardevient la combinaison charmante et mnémotechnique de Ctrl+Let Alt+Space Lsans souris ou encombrement embêtants dans votre histoire de coquille.

ConfexianMJS
la source
Fonctionne et est facile à retenir :)
Wyrmwood
Pas mal, mais pour info: vous pouvez également éviter d'encombrer l'historique de votre shell en préfixant une commande avec un espace.
jwd
6

Créez un fichier de script et placez-le dans un dossier contenant le chemin:

$cat > /usr/local/bin/cls
#!/bin/bash
clear
printf '\033[3J'

Appuyez sur CTRL + d pour enregistrer et quitter

Modifier l'autorisation sur le fichier:

chmod a+x /usr/local/bin/cls

Vous pouvez maintenant utiliser les cmd cls :-)

MrCalvin
la source
1

La solution pour moi a été de transmettre des caractères '\ 033 \ 143':

printf ("\ 033 \ 143");

Cela efface l'écran du terminal et remet le curseur dans le coin supérieur gauche.

eschick
la source
1
(1) La question demande une commande en ligne de commande (ie, shell). Ce n'est pas une commande shell, c'est une ligne de code C; en tant que tel, ce n'est pas une réponse à cette question. (2) Ce message serait légèrement plus utile si vous disiez quel est le \143personnage et comment il se rapporte à cette question, idéalement avec des citations.
Scott
1
Pour ceux qui se demandent, cela correspond au code d'échappement "reset complet" ( ESC c). ASCII ca une valeur 99qui est octale 143. Cela fera un tas d'autres choses en plus d'effacer le défilement, juste FYI.
jwd
1

Il y a une option dans putty où vous pouvez décocher le comportement de défilement par défaut. Décochez simplement l'option "Pousser le texte effacé dans le défilement arrière".

Image des paramètres de mastic

Après cela, lorsque vous exécutez la commande clear, cela effacera l'écran et ne remettra pas le contenu de l'écran précédent dans le défilement arrière.

user3133668
la source