回答:
CtrlCは、SIGINT
現在のフォアグラウンドプロセスにを送信するよう端末に指示します。これは、デフォルトではアプリケーションの終了に変換されます。CtrlDは、標準入力でEOFを登録する必要があることを端末に通知します。これは、bashが終了したいと解釈します。
Ctrl+ D(^D
)はファイルの終わりを意味します。行の先頭でのみ機能し(少し簡略化しています)、プログラムが端末から入力を読み取っていない場合は効果がありません。あなたの実験で^D
は、これ以上コマンドを入力するつもりはないので終了したことをシェルに伝えました。その後、サブプログラムが終了したため、端末は終了しました。
Ctrl+ C(^C
)は「中断」、つまり、実行中の操作を停止することを意味します。技術的に、を押す^C
とINTシグナルが送信されます。これはデフォルトでアプリケーションを終了しますが、多くのプログラムではトップレベルに戻ることを意味します(たとえば、シェルでコマンドラインの入力を止めて元のプロンプトに戻る)。
プログラムがに応答しない場合は、+ ()を^C
試してください。これはQUITシグナルを送信します。これはデフォルトでアプリケーションを終了し、それほど多くのプログラムがインターセプトしません。Ctrl\^\
シグナルを送信する別のキーはCtrl+ Z(^Z
)です。フォアグラウンドで実行中のプログラムを一時停止するTSTP信号を送信します。(TSTPは、「端末停止」の略であり、それが似ていSTOP。STOPはできません一方、無視することができますが、TSTP)シェルから、あなたはそのプログラムのと実行を再開することができますfg
コマンド(フォアグラウンドで再開)またはbg
コマンドで(履歴書をバックグラウンド)。
これらのキーはすべて、stty
コマンドで変更できます。一部のプログラム、特にキーバインドがあるフルスクリーンプログラムは、それらを無効にします。
KeyboardInterrupt
ますか?ctrl + d(行の先頭にある場合)およびctrl + \で終了します。
上記の2つの本当に良い答えに加えて、ここに例があります:
python
シェルを入力すると、Pythonの>>>プロンプトが表示されます。
さて、を押すとCtrl+C
、それがKeyboardInterrupt
>>>にとどまります。
たとえば、入力してforループに入るとfor x in (text):
、...プロンプトを表示してさらに入力するのを待ちます。Ctrl+C
今すぐヒットすると、forステートメントを終了して>>>プロンプトに戻り
ます。Ctrl+D
>>>または...のいずれの時点でも、Pythonプロンプトを終了して元のシェルに戻ります。
同様に、別のマシンにsshされた場合、a Ctrl+C
は既存のコマンドを終了し、それCtrl+D
を実行してマシンからも終了します。(また、Delete
キーはを実行するのと同じですCtrl+D
)