Um die Antwort von Joshua Briefman näher auszuführen, führen Sie reset -c
aus setzt nur die für Ihr Problem verantwortlichen Steuerzeichen zurück:
tset
, reset
- Terminal-Initialisierung
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
Beachten Sie auch das folgende Formular des Befehlshandbuchs:
Beachten Sie, dass Sie möglicherweise
eingeben müssen<LF>reset<LF>
(das Zeilenvorschubzeichen ist normalerweise Control-J), um das Terminal zum Laufen zu bringen, da der Wagenrücklauf im abnormalen Zustand möglicherweise nicht mehr funktioniert. Außerdem gibt das Terminal den Befehl oft nicht zurück.
Führen Sie den Befehl reset
aus und Ihr Terminal sollte wiederhergestellt sein (Referenz).
Dieses Problem tritt im Allgemeinen auf, wenn Binärdaten an das Terminal STDOUT
ausgegeben werden was, wenn die empfangenen Escape-Codes verarbeitet werden, alles tun kann, von der Änderung der Textfarbe, dem Deaktivieren des Echos bis hin zum Ändern des Zeichensatzes.
Der einfache Weg, dies zu vermeiden, besteht darin, sicherzustellen, dass Sie keine unbekannten Binärdaten an das Terminal ausgeben und diese dann in hexadezimal umwandeln müssen, um sicherzustellen, dass die Terminaleinstellungen nicht geändert werden.