
答え1
パイプシンボルはコマンドの出力をnano
コマンドの入力に送信しますuniq
。
しかし、nano
まだ実行中であり、キーボード入力を受信しています。uniq
ファイルの終わりを見るまで結果が出力されないため、出力を見ることができません(質問では重要ではありません)。
nano を押すとctrl-c
nano に「キャッチされますが」終了しません。
nanoを終了する方法は、次へを押すことです。ctrl-x
ただし、nano
変更された場合(入力後に別のキーを押した場合など)は終了しません。この場合、nano は次のメッセージを表示します。
Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?
Y Yes
N No ^C Cancel
「n」キーを押すと、変更を保存せずに終了します。
Nanoにいることに気づく前に、いくつかのキーの組み合わせを押すことができます。この場合、いくつかのメニューが深く表示されることがあります。幸い、nanoを押すとctrl-x
ほとんどのメニューが終了します(ただし、上記のプロンプトはキャンセルされません)。言い換えれば、ctrl-x
何度か押しても終了からはやくことはできません。
一部のメニューで「停止」する場合は、通常、次の操作でこれを行うことができます。ctrl-x
数n
回押した後、キーを押します。 それでもうまくいかないと、ctrl-x
押しすぎたという意味です。ただ押してください。ctrl-x
一つ時間がかかる場合は、n
鍵が必要です。常に動作します。
答え2
他の回答ですでに説明したように、Ctrl+は入力がまだ端末から出ており、端末がまだ制御端末であるCため、Nanoを殺しません。したがって、Nanoは端末を+などの制御文字がプログラムに送信され、信号を生成するために端末Interceptによって使用されません。nano
nano
CtrlC
端末によって傍受されると、Ctrl+はC次のものを生成します。知能を知らせる信号。プロセスIDがわかっている場合(Linux構文または他のプロセスリストユーティリティを使用して見つけることができますnano
)、このシグナルを送信できます。ここで、12345はPIDです。しかし、SIGINTは伝統的に「メインループに戻る」を意味し、NanoはSIGINTを受信しても終了しません。代わりに送ってくださいps u -C nano
ps
pgrep nano
kill -INT 12345
信号用語、これは「正常終了」を意味します。これは基本信号なので実行できますkill 12345
。kill -HUP 12345
ため息をつく「もうターミナルがありません。ターミナルなしで生きられないならエレガントに出てください」という意味です。他のすべての方法が失敗した場合は送信してください。信号を殺す(kill -KILL 12345
または有名なkill -9 12345
)は、プログラムが死にたいかどうかを望んでいないかどうかを終了します。
Nanoを含む多くのプログラムはCtrl+をZ一時停止として認識します。送信されたのと同じシーケンスです。信号プロトコル信号。プログラムがこのコントロールキーを認識すると、シェルプロンプトが表示され、プログラムがバックグラウンドタスクになるため、簡単に終了できますkill %%
(これはバックグラウンドにあった最後のタスクにシグナルを送信します)。
ナノには次のものがあります。別の方法:終了キーシーケンスを送信します。Ctrl+ 後ろにX必要な場合はN「保存しない」が続きます。ただし、一般的に次の点に注意してください。
- プログラムが終了しない場合は、+とCtrl入力してみてください。Z
kill %%
kill -9 %%
- Ctrl+が機能しない場合は、Z別の端末に切り替えてプロセスID(
ps -t pts/42
端末で実行されているプロセスを一覧表示するために使用できる/dev/pts/42
)を見つけて終了します。
答え3
シェルはあなたを受け入れませんCtrl+C
。nano
はい。割り込み信号のカスタム動作を定義できるプログラムがそのようなnano
プログラムの1つです。リダイレクトなしで開くカスタム動作を確認してnano
送信するにはCtrl+C
。
答え4
ストライクCtrl
+ X
。
Nanoはすべてのキーボード入力をキャプチャし、Ctrl
Nano +内部の意味C
はシェルの意味とは全く異なります。別のウィンドウで実行している場合は、nano
終了するにはどのキーを入力する必要があるかを簡単に確認できます。Ctrl
+X