Que puis-je faire si bash cesse de résonner?

10

L'une des applications que j'utilise au travail visse parfois avec ma bash et donc je ne vois plus ma propre entrée. C'est à dire

$ echo foo
foo
$

devient

$ foo $

J'ai incorrectement essayé d'exécuter stty -echoce qui a aggravé les choses et maintenant il arrête d'accepter toutes les commandes qui mettent mon entrée dans un état qui fait juste >apparaître chaque fois que je coupe la ligne et rien d'autre.

Qu'est-ce que j'aurais dû faire?

Kit Sunde
la source
2
Essayez de courir resetpour un bon départ. Bien sûr , vous ne pouvez pas entrer maintenant une commande dans ce terminal alors d'un autre essayer quelque chose comme cat >/dev/pts/33est votre numéro de terminal problématique et puis appuyez sur les touches suivantes: ESC c ENTER Ctrl-D.
jimmij

Réponses:

19

Le remède habituel pour des choses comme ça est

stty sane

Le stty -echone devrait pas avoir fait ce pire, comme qui tourne juste à côté de l' écho de l' entrée, et vous aviez déjà.

Le fait que vous disiez des retours fait juste >apparaître signifie que vous avez démarré quelque chose qui provoque la continuation sur les lignes suivantes, par exemple le echo 'fera parce qu'il attend la fermeture 'pour terminer la chaîne. D'autres choses vont également provoquer cela, comme if something; il attend la then ... fipartie.

Vous auriez probablement pu frapper ctrl- cà ce stade pour l'empêcher d'attendre le reste de la commande, à moins que le terminal ne soit tellement foiré que des interruptions ne soient également pas générées.

gémir
la source
Ah ça a du sens. J'ai essayé de frapper les deux ctrl + cet je ctrl + zn'ai rien réussi.
Kit Sunde
3

En plus de la réponse de @ wurtel (en particulier l'explication probable du >problème), stty echoc'est le contraire de stty -echo, vous pouvez donc l'utiliser. Vous pouvez également utiliser reset, qui est généralement fourni avec les packages ncurses.

peterph
la source