予期しない `nano SomeFile` によってシェルが応答しなくなります。

予期しない `nano SomeFile` によってシェルが応答しなくなります。

単純なテキストファイルから一意の項目(行を読み取る)を取得しようとしたときに誤ってnano SomeTextFile | uniq

この「コマンド」は、シェルを完全に(?)応答しないか使用できないようにします。うしそして戻る。もう一度返さなければなりません。プロセス番号(PID)(を実行してps aux | grep nanosudo kill -9問題のPIDを手動で設定します。

とにかく、上記の内容がいくつかのエラーメッセージを返すことができないか、返すべきではありませんか?Ctrl+なぜCこのパイプを殺さないのですか?これよりも簡単でクリーンな予防方法はありますかkill -9

ベストアンサー1

パイプシンボルはコマンドの出力をnanoコマンドの入力に送信しますuniq

しかし、nanoまだ実行中であり、キーボード入力を受信して​​います。uniqファイルの終わりを見るまで結果が出力されないため、出力を見ることができません(質問では重要ではありません)。

nano を押すとctrl-cnano に「キャッチされますが」終了しません。

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-xn回押した後、キーを押します。 それでもうまくいかないと、ctrl-x押しすぎたという意味です。ただ押してください。ctrl-x 一つ時間がかかる場合は、n鍵が必要です。常に動作します。

おすすめ記事