Comment réinitialiser le terminal sous Cygwin?

1

Sous Linux, je peux effacer la sortie du terminal avec un simple reset à partir de la ligne de commande. Sous Cygwin, il semble reset ne marche pas:

enter image description here

J'ai aussi essayé reset 0 et reset 1 sans joie. Et j'ai même essayé le Windows natif cls commande sans joie.

Cygwin semble manquer tout documentation utile:

$ man -k reset
reset: nothing appropriate.

$ man -k terminal
terminal: nothing appropriate.

$ man reset 1
No manual entry for reset
No manual entry for 1
(Alternatively, what manual page do you want from section 1?)

Comment réinitialiser le terminal à partir de la ligne de commande lors de l'utilisation de Cygwin? Que manque-t-il à la commande ci-dessus?


Un rapport de bogue a été déposé auprès de Cygwin pour ce problème: Bug 19195: le terminal Cygwin ne répond pas à 'reset' ou à 'cls' .

jww
la source
1
Le dup proposé n'est pas un dup tel qu'il ne fait pas expliquer comment réinitialiser le terminal qui correspond à la demande de l'OP (le dup explique comment effacer le terminal - ne pas la même chose)
DavidPostill

Réponses:

5

Sous Cygwin, il semble que la réinitialisation ne fonctionne pas

  • Vous utilisez une version non Cygwin de reset.

  • Vous pouvez le confirmer en lançant where reset dans une invite de commande.

Remarques:

  • c:\windows\system32\reset.exe est Utilitaire de réinitialisation des services de bureau à distance

    enter image description here

  • Le résultat affiché dans votre question semble provenir de cette version de reset (et non de la version de Cygwin).


Configuration Cygwin PATH

Si vous avez installé le ncurses paquet (voir ci-dessous), vous devez vous assurer que votre carte Cygwin PATH a les éléments Cygwin avant les éléments Windows (cela devrait se produire automatiquement lorsque Cygwin est installé).

Exemple de chemin cygwin:

DavidPostill@Hal /f/test
$ echo $PATH
.:/home/DavidPostill/bin:/usr/local/bin:/usr/bin:/c/ProgramData/Oracle/Java/javapath:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/apps/Calibre

Réinitialisation Cygwin

Le Cygwin reset fait partie de la ncurses package et est lié à tset.

Paramètres à tset sont facultatifs.

Vous pouvez déterminer que cela se trouve sur votre système en utilisant:

which reset

Sur mon système:

DavidPostill@Hal ~
$ which reset
/usr/bin/reset

DavidPostill@Hal ~
$ ll /usr/bin/reset
lrwxrwxrwx 1 DavidPostill None 8 Jul  1 08:14 /usr/bin/reset -> tset.exe

Cygwin clear fait également partie de ncurses. j'ai cls aliasé comme suit:

alias cls='clear'

Remarques:

  • Vous pouvez toujours savoir quels paquets contiennent des commandes cygwin particulières en utilisant Rechercher des forfaits .

  • clear et reset avoir un comportement légèrement différent:

    • clear efface la partie visible de la mintty afficher. Le tampon de défilement reste tel quel.

    • reset envoie le terminal chaîne d'initialisation . Dans le cas de mintty cela efface la partie visible de l'écran et supprime le tampon de défilement.


Comment vérifier si ncurses est installé?

Pour voir si un paquet est installé, utilisez cygcheck -l ncurses.

  • -l package - liste le contenu du paquet (ou tous les paquets s'il n'y en a pas)
DavidPostill@Hal /f/test
$ cygcheck -l ncurses
/usr/bin/captoinfo
/usr/bin/clear.exe
/usr/bin/infocmp.exe
/usr/bin/infotocap
/usr/bin/reset
/usr/bin/tabs.exe
/usr/bin/tic.exe
/usr/bin/toe.exe
/usr/bin/tput.exe
/usr/bin/tset.exe
/usr/share/doc/ncurses/ANNOUNCE
/usr/share/doc/ncurses/AUTHORS
/usr/share/doc/ncurses/COPYING
/usr/share/doc/ncurses/NEWS
/usr/share/doc/ncurses/README
/usr/share/man/man1/captoinfo.1m.gz
/usr/share/man/man1/clear.1.gz
/usr/share/man/man1/infocmp.1m.gz
/usr/share/man/man1/infotocap.1m.gz
/usr/share/man/man1/reset.1.gz
/usr/share/man/man1/tabs.1.gz
/usr/share/man/man1/tic.1m.gz
/usr/share/man/man1/toe.1m.gz
/usr/share/man/man1/tput.1.gz
/usr/share/man/man1/tset.1.gz

Qu'est-ce qui est inclus dans le paquet ncurses?

2015-05-18 21:00           0 usr/bin/
2015-05-18 20:58           0 usr/bin/captoinfo -> tic.exe
2015-05-18 21:00        9747 usr/bin/clear.exe
2015-05-18 21:00       52755 usr/bin/infocmp.exe
2015-05-18 20:58           0 usr/bin/infotocap -> tic.exe
2015-05-18 20:58           0 usr/bin/reset -> tset.exe
2015-05-18 21:00       14355 usr/bin/tabs.exe
2015-05-18 21:00       67091 usr/bin/tic.exe
2015-05-18 21:00       15379 usr/bin/toe.exe
2015-05-18 21:00       15379 usr/bin/tput.exe
2015-05-18 21:00       19475 usr/bin/tset.exe
2015-05-18 20:58           0 usr/share/doc/
2015-05-18 20:58           0 usr/share/doc/ncurses/
2015-05-18 20:58       13750 usr/share/doc/ncurses/ANNOUNCE
2015-05-18 20:58        2529 usr/share/doc/ncurses/AUTHORS
2015-05-18 20:58        1408 usr/share/doc/ncurses/COPYING
2015-05-18 20:58      549943 usr/share/doc/ncurses/NEWS
2015-05-18 20:58       10212 usr/share/doc/ncurses/README
2015-05-18 20:59           0 usr/share/man/man1/
2015-05-18 20:57        2919 usr/share/man/man1/captoinfo.1m.gz
2015-05-18 20:57        1201 usr/share/man/man1/clear.1.gz
2015-05-18 20:57        6976 usr/share/man/man1/infocmp.1m.gz
2015-05-18 20:57        1594 usr/share/man/man1/infotocap.1m.gz
2015-05-18 20:59          39 usr/share/man/man1/reset.1.gz
2015-05-18 20:57        2288 usr/share/man/man1/tabs.1.gz
2015-05-18 20:57        5995 usr/share/man/man1/tic.1m.gz
2015-05-18 20:57        1883 usr/share/man/man1/toe.1m.gz
2015-05-18 20:57        4540 usr/share/man/man1/tput.1.gz
2015-05-18 20:57        4971 usr/share/man/man1/tset.1.gz

La source ncurses: Utilitaires d'affichage du terminal (fichiers binaires installés et fichiers de support)

DavidPostill
la source
Réellement, reset envoie le terminal chaîne d'initialisation , et ne sait rien de spécifique sur le tampon de défilement.
Thomas Dickey
@jww C'est une commande Cywin Vous devez l'exécuter avec un shell Cywin ne pas une invite de commande.
DavidPostill
1
@jww Run which reset dans un shell Cygwin.
DavidPostill
OK, alors je suis revenu à ça. libncurses et libncursesw sont installé sur mon Cygwin-i386 installation. Je devais installer libncurses. Quand je lance reset, je reçois maintenant -bash: reset: command not found. Sur mon Cygwin-86_64 installation, seulement libncursesw est disponible. Il était déjà installé et il en résulte Invalid parameter(s). Les deux résultent en which: no reset in même si j'ai vérifié libncurses est installé via les programmes d'installation.
jww
Veuillez lire la deuxième partie de ma réponse. Vous devez installer ncurses
DavidPostill
2

Essayer clear - ça devrait faire ce que tu veux.

Edit: ça fait partie du ncurses paquet, pas installé par défaut.

Mike Fitzpatrick
la source
clear résulte en -bash: clear: command not found. (J'ai essayé plus tôt; mes excuses pour ne pas l'inclure dans la question).
jww
1
Étrange. j'ai /usr/bin/clear sur mon installation Cygwin 32 bits.
Mike Fitzpatrick
Si vous n'avez pas clear alors peut-être essayer cls?
Xupicor
@Ramhound - eh bien, je n'avais pas réalisé clear faisait partie de ncurses. L'installer est une solution viable cependant. Sur cls - mon mauvais, je semble être déconnecté de Cygwin - j'ai C:\MinGW\msys\1.0\bin\cls alors cls fonctionne bien pour moi dans bash. OP pourrait encore essayer mais vous avez raison, c’est plus une conjecture à ce stade et donc une bonne réponse.
Xupicor
@ MikeFitzpatrick clear est ne pas le même que reset. Voir ma réponse.
DavidPostill
2

Une solution de contournement si vous n’avez pas encore installé ncurses et qu’il est donc «clair».
( note ajoutée - et, comme David Postil l’a souligné, ce qui suit ne fonctionnera que si vous utilisez cygwin à l’ancienne via cygwin.bat, c.-à-d. cd \cygwin<ENTER> cygwin<ENTER> ) le fichier cygwin.bat ne lance pas mentint, il le lance donc à l’ancienne, et vous pouvez ensuite le faire cmd /c cls.

barlop
la source
Cela ne marche pas non plus. +1 à Cygwin ... Ces gars-là ont vraiment besoin de tester leur matériel.
jww
@jww cmd /c cls travaille pour moi et devrait travailler pour vous. Tout exécutable dans PATH fonctionne et cmd.exe est dans le chemin. Quelle erreur obtenez vous?
barlop
2
@barlop cmd /c cls ne fait absolument rien dans un mintty terminal en cours d'exécution bash (la configuration par défaut chez Cygwin)
DavidPostill
1
@ DavidPostill oui, je peux le voir. Je l'ai là aussi, il n'y a rien de différent avec mon installation. J'ai bien compris ce que vous avez dit. Comme j'ai dit. J'ai déjà lancé cygwin via le fichier de commandes. Comme je suis souvent dans cmd.exe de toute façon. Le fichier cygwin.bat fourni ne lance pas menthe. Bien que je viens de mettre à jour cygwin.bat pour lancer mintty
barlop
1
@jww i.imgur.com/1mtbCrn.png la bibliothèque peut venir automatiquement mais développer des utilitaires et choisir ncurses
barlop
2

Cela nettoie l’écran et le tampon de retour en arrière, tous les deux à la menthe et sur console:

echo -e "\033c"
matzeri
la source
0

Cygwin ajouté reset vers son répertoire de commandes vers décembre 2015. C’était autour de quand Le terminal Cygwin ne répond ni à "reset" ni à "cls" a été déposé. Ou peut-être que cela a commencé à fonctionner comme prévu.

Si vous n'avez pas réinitialisé, réexécutez le programme d'installation du paquet et mettez tout à jour.

jww
la source