Pour développer la réponse de Joshua Briefman, en exécutant reset -c
ne réinitialisera que les caractères de contrôle responsables de votre problème :
tset
,reset
- initialisation du terminal
Usage: tset [options] [terminal]
Options:
-c set control characters
-e ch erase character
-I no initialization strings
-i ch interrupt character
-k ch kill character
-m mapping map identifier to type
-Q do not output control key settings
-r display term on stderr
-s output TERM set command
-V print curses-version
-w set window-size
Notez également ce qui suit dans le manuel de la commande :
Remarque, vous devrez peut-être taper
<LF>reset<LF>
(le caractère de saut de ligne est normalement control-J) pour faire fonctionner le terminal, car le retour chariot peut ne plus fonctionner dans l'état anormal. De plus, le terminal ne fera souvent pas écho à la commande.
Exécutez la commande reset
et votre terminal devrait être restauré (référence).
Ce problème se produit généralement lors du vidage de données binaires sur le terminal STDOUT
qui, lorsque les codes d'échappement reçus sont traités, peut faire n'importe quoi, changer la couleur du texte, désactiver l'écho, voire changer le jeu de caractères.
Le moyen le plus simple d'éviter cela est de s'assurer que vous ne videz pas de données binaires inconnues sur le terminal, et si vous devez ensuite les convertir en hexadécimal pour vous assurer qu'elles ne modifient pas les paramètres du terminal.