lxterminalウィンドウで実行されているインタラクティブbashシェルでは、私が何を台無しにしたのかわかりません。
Return キーを押すと新しい行は開始されませんが、Ctrl-C は起動します。
$ ^C
$ $ $ $ $ ^C
$ ^C
$ $ $ $ $ $ $
コマンドを入力するときにReturnキーを押すと、コマンドは実行されますが、入力したコマンドは表示されません。
sudo lsof ... | less
それ以前は、いくつかのコマンド(または)を実行しましたsudo netstat ... | less
が、出力がないようで、ctrl-cおよび/またはqを順序に関係なく複数回押しました。最後に終了したときにless
bashに問題が発生しました。
誤ってシェルの標準出力を別の場所にリダイレクトしましたか?
シェルを閉じずに問題を解決する方法はありますか?
答え1
あなたの端末が「面白い」モードで停止しているようです。/usr/bin/reset
通常、ncurses
ライブラリに付属のコマンドを使用してリセットできます。
答え2
reset
(他の回答で要求)が機能しない場合は、次の手順を試してください。
stty sane
たぶん背面ではないでしょうか
tput rs1
次のエイリアスが定義されています。 (おそらくstackoverflowのどこかで見つけたようです。)
alias fixtty='reset; stty sane; tput rs1; clear; echo -e "\033c"'
答え3
他の答えが示すように、最も簡単な修正は実行することですreset
。
理由は?これは通常cat
、バイナリファイルまたはデータを端末に出力するときに発生します。
テキストは単なるテキストであり、端末では特に処理されませんが、テキストではなくいくつかの特殊文字があり、カーソルの移動、画面の消去、色の変更、エコー出力の停止などの操作を実行するために使用されます。
(テキストではなく)バイナリデータを出力すると、端末はこれらの特殊制御文字を見て、文字が発生したときにそれらを解釈しようとします。画面が消えたり、点滅したり、ジャンプしたりすることがあります。これは、これらの制御文字が尊重されるためです。head /dev/urandom
何を意味するのかを知るために、新しい端末で実行して実験してみてください。
ほとんどの場合、端末が奇妙に動作している場合は、単にreset
実行すると問題が解決します。これは、端末をデフォルトのデフォルトモードに設定するために必要なすべての特殊文字を簡単に表示しますstop echoing input
。start echoing input
。バイナリデータには前者がランダムに含まれているため、入力した内容を見ることができず、reset
後者(他の中でも)が含まれて問題が解決されます。