Wie stelle ich das Echo der Eingänge im Terminal wieder her?

4385
congusbongus

Manchmal, wenn ein Skript bei einer Kennwortabfrage abgebrochen wird, kann ich nicht mehr sehen, dass meine Eingabe im Terminal wiedergegeben wird. Das heißt, normalerweise sehe ich an einem Terminal:

$ _ <after typing 'foobar':> $ foobar_ 

Aber in diesem Fall sehe ich nicht, was ich geschrieben habe.

Ich weiß, dass ich das Terminal neu starten kann, um seine normalen Einstellungen wiederherzustellen, aber gibt es eine Möglichkeit, das Echo des Eingangs ohne Neustart wiederherzustellen?

7

2 Antworten auf die Frage

12
Xen2050

Für Bash tippe ich normalerweise nur resetund es repariert alles, was "lustig" war. Sieht aus, als wäre es auch bekannt als, tsetaber jeder Aufruf bewirkt etwas anderes.

tset, reset - terminal initialization  When invoked as reset, tset sets cooked and echo modes, turns off cbreak and raw modes, turns on newline translation and resets any unset special characters to their default values before doing the terminal initialization described above. This is useful after a program dies leaving a terminal in an abnormal state. Note, you may have to type  <LF>reset<LF>  (the line-feed character is normally control-J) to get the terminal to work, as carriage-return may no longer work in the abnormal state. Also, the terminal will often not echo the command. 
2
congusbongus

Verwenden Sie den sttyBefehl. Führen Sie insbesondere diesen Befehl aus:

stty echo 

Dadurch wird das Echo (Druckeingabezeichen) wiederhergestellt, das wahrscheinlich während der Kennwortaufforderung deaktiviert wurde.

Um alle Ihre Terminaleinstellungen anzuzeigen, führen Sie den Befehl aus stty -a. Während die Eingabe ausgeblendet war, sollte dies -echoirgendwo in der Ausgabe angezeigt werden. Nach dem Update sollte es stattdessen angezeigt werden echo.