Comment réinitialiser un ATS cassé?

15

Mon Slackware TTY peut être cassé facilement en exécutant:

cat some_binary_file

Après la commande, l'intégralité du TTY n'affichera plus de caractères lisibles mais répondra toujours aux événements du clavier.

Même si je me déconnecte et me reconnecte, le TTY est toujours cassé et n'affiche plus de caractères lisibles. Je dois redémarrer la machine pour rétablir le fonctionnement normal du téléscripteur.

Existe-t-il une solution sans redémarrer la machine entière?

Howard
la source

Réponses:

13

Exécutez echo ^v^o, c'est-à-dire echopuis Ctrl-vet puis Ctrl-o, Entrée. Vous ne verrez pas le Ctrl-v. Il s'affichera comme echo ^O. Ctrl-vle met en mode verbeux, en passant par les caractères de contrôle, et Ctrl-oréinitialise le terminal.

Florian
la source
4
Juste un petit indice: si le TTY est complètement inutilisable ou une console de journalisation, vous pouvez le réinitialiser facilement à partir de tout autre TTY avec echo ^v^o > /dev/ttyNN étant le numéro du terminal.
Torben
Cela ne fonctionne pas pour moi sur MacOSX (10.11.6) / iTerm2 (3.0.12) / bash (4.1.2)
Ed Randall
25

Habituellement, l'exécution resetréinitialise le terminal. Cependant, certaines liaisons de clés .inputrcpourraient être perdues.

choroba
la source
Solution super simple qui a corrigé mon volet tmux oh-my-zsh écrasé.
Shadoninja
C'est mieux que la réponse acceptée à mon avis. Lorsque vous ne pouvez pas voir ce que vous tapez, il est plus facile de taper resetet d'appuyer sur Entrée que d'essayer d'utiliser des combinaisons de touches, de plus, cela fonctionne à 100%.
Sergio
12

Vous pouvez essayer la commande de réinitialisation ANSI:

printf "\033c"
jlliagre
la source
c'est le seul qui a travaillé sur OpenBSD 5.4
execNext
1
Cela a également fonctionné à partir du shell (bash) sous la forme echo -e '\ 033c'
Ed Randall
3
@EdRandall Oui. Notez que "echo -e" n'est pas supporté par tous les shells tout en printfayant l'avantage d'être portable donc fonctionne quel que soit le shell, y compris bash.
jlliagre
J'imagine que cela n'a rien à voir avec le diacritique des mouettes dans l'IPA? U + 033C ‹◌̼› \ N {
COMBINER SEAGULL
@TRiG En effet. Rien à voir non plus avec la célèbre citation d'Eric Cantona. ;-)
jlliagre
5

Mon terminal n'affichait aucun des caractères que j'avais saisis. Aucune des autres astuces n'a fonctionné. Celui-ci fonctionne:

stty sane

A travaillé pour moi. J'ai parfois un terminal dans un état qui ne répond pas, mais aucune des autres suggestions n'a pu me redonner la sortie. Les autres suggestions que j'ai essayées, mais qui n'ont pas fonctionné:

echo ^v^o
reset
printf "\033c"

Source: /unix//a/79686/53236

Jesper Rønn-Jensen
la source
0

Il y a en fait quelques problèmes potentiels, et cela pourrait être lié à votre environnement. Tout d'abord, comme @Jesper a répondu, vous voulez le faire stty sane. Cependant, vous ne pourrez peut-être même pas configurer correctement l'environnement avec cela.

Cela est dû à la différence entre /bin/bashet /bin/sh. Après avoir ouvert votre terminal, exécutez /bin/bashpuis essayez stty sane. Cela devrait tout réparer. Enfin, je recommande d'ajouter une telle chose à .bashrc

Une autre option serait d'installer un logiciel sain tty.

user2262111
la source