壊れたTTYをリセットする方法は?


15

私のSlackware TTYは、次を実行することで簡単に壊れます:

cat some_binary_file

コマンドの実行後、TTY全体は読み取り可能な文字を表示しなくなりますが、キーボードイベントには引き続き応答します。

ログアウトして再度ログインしても、TTYは壊れたままで、読み取り可能な文字は表示されません。通常のTTY操作を復元するには、マシンを再起動する必要があります。

マシン全体を再起動せずに解決策はありますか?

回答:


13

ファイル名を指定して実行echo ^v^oされ、echoその後、そしてCtrl-v、その後はCtrl-o、入力します。が表示されませんCtrl-v。として表示されecho ^Oます。Ctrl-vこれを冗長モードに設定し、制御文字を通過Ctrl-oさせると、端末がリセットされます。


4
簡単なヒント:TTYが完全に使用できない場合、またはロギングコンソールecho ^v^o > /dev/ttyNは、Nが端末の番号である他のTTYから簡単にリセットできます。
トーベン14

これは、MacOSXの(10.11.6)/ iTerm2(3.0.12)/ bashの(4.1.2)上の私のために動作しません
エド・ランドール

25

通常、実行resetすると端末がリセットされます。.inputrcただし、一部のキーバインディングは失われる可能性があります。


クラッシュしたtmux oh-my-zshペインを修正した非常にシンプルなソリューション。
-Shadoninja

これは、私の意見で受け入れられている答えよりも優れています。入力しているものが見えない場合はreset、キーの組み合わせを使用するよりも、入力してEnterキーを押す方が簡単です。さらに、100%動作します。
セルジオ

12

ANSIリセットコマンドを試すことができます。

printf "\033c"

これは、OpenBSD 5.4で働いていた唯一のものである
execNext

1
また、これは、エコー-e「\ 033c」とシェル(bashの)から働いていた
エド・ランドール

3
@EdRandallはい。「echo -e」はすべてのシェルでサポートされているわけではありませんprintfが、ポータブルであるという利点があるため、bashを含め、どのようなシェルでも動作します。
jlliagre

これはIPAのカモメ発音記号とは何の関係もないと思いますか?U + 033C ‹◌̼› \ N {下にあるシーガルの組み合わせ}
TRiG

@TRiG確かに。有名なエリック・カントナの引用にも関係ありません;-)
jlliagre

5

端末に入力した文字が表示されませんでした。他のトリックはどれもうまくいきませんでした。これは動作します:

stty sane

私のために働いた。ターミナルが応答しない状態になっていることがありますが、他の提案では出力を戻すことができませんでした。私が試したが、うまくいかなかった他の提案:

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

ソース:https : //unix.stackexchange.com/a/79686/53236


0

実際にはいくつかの潜在的な問題があり、環境に関係している可能性があります。最初に、@ Jesperが答えたように、あなたはやりたいですstty sane。ただし、それを使用して環境を正しく設定することさえできない場合があります。

これは違いによるものである/bin/bash/bin/sh。ttyを開いたら、実行して/bin/bashからを試してくださいstty sane。これですべてが修正されます。最後に、このようなものを.bashrcに追加することをお勧めします

別のオプションは、正常なttyソフトウェアをインストールすることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.