Bashシェルは、キャリッジが戻ったときに新しい行を開始せず、入力されたコマンドを表示しません。

Bashシェルは、キャリッジが戻ったときに新しい行を開始せず、入力されたコマンドを表示しません。

lxterminalウィンドウで実行されているインタラクティブbashシェルでは、私が何を台無しにしたのかわかりません。

Return キーを押すと新しい行は開始されませんが、Ctrl-C は起動します。

$ ^C
$ $ $ $ $ ^C
$ ^C
$ $ $ $ $ $ $ 

コマンドを入力するときにReturnキーを押すと、コマンドは実行されますが、入力したコマンドは表示されません。

sudo lsof ... | lessそれ以前は、いくつかのコマンド(または)を実行しましたsudo netstat ... | lessが、出力がないようで、ctrl-cおよび/またはqを順序に関係なく複数回押しました。最後に終了したときにlessbashに問題が発生しました。

誤ってシェルの標準出力を別の場所にリダイレクトしましたか?

シェルを閉じずに問題を解決する方法はありますか?

答え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 inputstart echoing input。バイナリデータには前者がランダムに含まれているため、入力した内容を見ることができず、reset後者(他の中でも)が含まれて問題が解決されます。

関連情報