Sieht so aus, als hätte es den Zeichensatz / die Codierung der Shell geändert. Ich bin mir nicht sicher, wie ich es zurücksetzen soll.
Matthew Lock
Antworten:
7
SI / SO VT100-Steuerzeichen
Die verstümmelten Zeichen sind wahrscheinlich darauf zurückzuführen, dass das Terminal ein SIZeichen erhält (Shift In; ASCII 14; Control-N). SIist ein VT100-Steuerzeichen, das dazu führen kann, dass das Terminal zu einem alternativen Zeichensatz wechselt. Viele echte Terminals (z. B. ein tatsächliches Hardwaregerät oder nur die Nur-Text-Konsole eines Betriebssystems) und Terminalprogramme berücksichtigen diesen Escape-Code.
Der direkte Weg, um zum normalen Zeichensatz zurückzukehren, besteht darin, ein SO-Zeichen (Shift Out; ASCII 15; Control-O) an das Terminal zu senden.
Wiederherstellung
Da der Zeichensatz umgeschaltet ist, müssen Sie möglicherweise die Wiederherstellungsbefehle "blind" eingeben (ohne sich darauf verlassen zu müssen, was Sie eingegeben haben).
Normalerweise ist der echoBefehl nützlich. Oft können Sie ECHOSpaceControl- VControl- OEnter / Return
eingeben, damit das Terminal ein Control-O sieht (das Control-V teilt der Eingangsseite des Terminals mit, dass das nächste buchstäblich übergeben werden soll, andernfalls "frisst" die Eingangsseite das Zeichen davor bekommt die Shell und damit bevor sie an die Ausgangsseite des Terminals zurückgesendet werden kann).
Wenn Sie eine vernünftige Shell mit einer printfeingebauten Shell (oder keine eingebaute Shell und einen vernünftigen externen printfBefehl) annehmen können , können Sie printf '\017'ein Control-O an das Terminal senden.
Wenn jemand läuft immer in dieses Problem auf einem Endgerät , das nicht von einem VT100, eine Alternative zu der VT100 spezifischen Kontrollsequenz abgeleitet wird erzeugt über Echo oder printf ist tput rmacs(wie erwähnt in einer anderen Antwort von Ignacio Vazquez-Abrams ).
Chris Johnsen
Die Antwort ist richtig, aber wenn Sie das ECHO als Großbuchstaben anzeigen lassen, könnten Sie jemanden irreführen, sie in Großbuchstaben einzugeben ... was fehlschlagen würde.
CarlF
9
Haben Sie den Unix- resetBefehl ausprobiert ?
Dies ist normalerweise das Ergebnis des Dumpings einer Binärdatei (eines Programms oder einer Datendatei) auf dem Terminal ( cat some.mp3oder ähnlichem). Normalerweise resetbringt das Tippen Ihr Terminal wieder in Ordnung. Wenn dies nicht funktioniert, versuchen Sie als Nächstes eine Rücksetzfunktion für Ihre Terminalanwendung. Suchen Sie in den Menüs der Anwendung danach. (PuTTY hat zum Beispiel ein Reset Terminalin seinem Systemmenü.)
In seltenen Fällen funktioniert beides nicht, und Sie müssen nur das Terminal oder die Shell herunterfahren und ein neues starten.
Antworten:
SI / SO VT100-Steuerzeichen
Die verstümmelten Zeichen sind wahrscheinlich darauf zurückzuführen, dass das Terminal ein
SI
Zeichen erhält (Shift In; ASCII 14; Control-N).SI
ist ein VT100-Steuerzeichen, das dazu führen kann, dass das Terminal zu einem alternativen Zeichensatz wechselt. Viele echte Terminals (z. B. ein tatsächliches Hardwaregerät oder nur die Nur-Text-Konsole eines Betriebssystems) und Terminalprogramme berücksichtigen diesen Escape-Code.Der direkte Weg, um zum normalen Zeichensatz zurückzukehren, besteht darin, ein SO-Zeichen (Shift Out; ASCII 15; Control-O) an das Terminal zu senden.
Wiederherstellung
Da der Zeichensatz umgeschaltet ist, müssen Sie möglicherweise die Wiederherstellungsbefehle "blind" eingeben (ohne sich darauf verlassen zu müssen, was Sie eingegeben haben).
Normalerweise ist der
echo
Befehl nützlich. Oft können SieE C H O Space Control- V Control- O Enter / Return
eingeben, damit das Terminal ein Control-O sieht (das Control-V teilt der Eingangsseite des Terminals mit, dass das nächste buchstäblich übergeben werden soll, andernfalls "frisst" die Eingangsseite das Zeichen davor bekommt die Shell und damit bevor sie an die Ausgangsseite des Terminals zurückgesendet werden kann).
Wenn Sie eine vernünftige Shell mit einer
printf
eingebauten Shell (oder keine eingebaute Shell und einen vernünftigen externenprintf
Befehl) annehmen können , können Sieprintf '\017'
ein Control-O an das Terminal senden.quelle
tput rmacs
(wie erwähnt in einer anderen Antwort von Ignacio Vazquez-Abrams ).Haben Sie den Unix-
reset
Befehl ausprobiert ?Dies ist normalerweise das Ergebnis des Dumpings einer Binärdatei (eines Programms oder einer Datendatei) auf dem Terminal (
cat some.mp3
oder ähnlichem). Normalerweisereset
bringt das Tippen Ihr Terminal wieder in Ordnung. Wenn dies nicht funktioniert, versuchen Sie als Nächstes eine Rücksetzfunktion für Ihre Terminalanwendung. Suchen Sie in den Menüs der Anwendung danach. (PuTTY hat zum Beispiel einReset Terminal
in seinem Systemmenü.)In seltenen Fällen funktioniert beides nicht, und Sie müssen nur das Terminal oder die Shell herunterfahren und ein neues starten.
quelle