特定の環境シェルコマンドライン(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
。誤って設定するとintr
CTRL-Cは適用されません。
intr
設定が間違っている場合は、次のコマンドを使用してリセットしてみてください。
stty intr CTRL-V-C
stty intr
つまり、 を入力してスペースを入力し、CTRL キーを押しながら を押して、vキーc間にスペースやその他の文字を含めないでください。
その後、CTRL-Cを再度使用してコマンドを停止し、結果を確認します。