CTRL-Cが機能しないときにコマンドラインで機能させるにはどうすればよいですか?

CTRL-Cが機能しないときにコマンドラインで機能させるにはどうすればよいですか?

特定の環境シェルコマンドライン(CentOS 7 / WindowsホストのVagrantゲスト)でCTRL + Cが利用できないという問題があります。私はそこでbashを使用しています。オペレーティングシステムはあまり関係ないようです。

例を実行しsleep 1000、ctrl-cを押します。

$ sleep 1000
^C^C^C

したがって、^ Cを入力してください。

^C混乱が起こります。

$ stty -a
intr = ^C; ... 

どのように作るこれはうまくいくでしょうか?

以下の記事では、私はこの問題を解決するためのインスピレーションを得ました。答えは多くの説明を提供しますが、どのように機能するかについての簡単な答えは提供しません。
Ctrl-Cが機能しないのはなぜですか?
これが私が経験している簡単なことのようです。

答え1

で述べたようにBashでSIG_IGNとSIG_DFLに信号トラップをどのように設定できますか?簡単な解決策は次のとおりです。

trap - INT

~/.bashrcたとえば、次のコードを bash に追加します。

私は原因を見つけることなく修正することにしました。

もう一つの興味深い投稿: Ctrl+C を押すと ^C を削除

答え2

キーマッピングの問題のようです。

シェルプロンプトで、次のように入力します。

stty sane

次に、CTRL-Cを使用してコマンドを停止してみてください。それでも機能しない場合は、次の出力を追加してください。

stty -a

あなたの質問に。このstty -aコマンドは、現在のターミナルライン設定をリストします。興味のある項目を言いますintr。誤って設定するとintrCTRL-Cは適用されません。

intr設定が間違っている場合は、次のコマンドを使用してリセットしてみてください。

stty intr CTRL-V-C

stty intrつまり、 を入力してスペースを入力し、CTRL キーを押しながら を押して、vキーc間にスペースやその他の文字を含めないでください。

その後、CTRL-Cを再度使用してコマンドを停止し、結果を確認します。

関連情報