Ctrl-Cは行全体を削除し、Ctrl-Zは削除しません。

Ctrl-Cは行全体を削除し、Ctrl-Zは削除しません。

コマンドラインでセミコロンで区切られた複数のコマンドを実行しています。

cmd1; cmd2; cmd3

+を押すと、Ctrl現在実行中のコマンドだけでなく、すべてのコマンドが終了します。C

kartik@kartikpc:~/junk/exp$ ls
test1  test2
kartik@kartikpc:~/junk/exp$ cat; ls
cat is running
cat is running
^C
kartik@kartikpc:~/junk/exp

ただし、Ctrl+はZ現在のプロセスのみを一時停止し、次のプロセスを続行します。

kartik@kartikpc:~/junk/exp$ ls
test1  test2
kartik@kartikpc:~/junk/exp$ cat; ls
cat is running 
cat is running
^Z
[1]+  Stopped                 cat
test1  test2
kartik@kartikpc:~/junk/exp$

Ctrl動作が分散される理由は何であり、+が+のように動作するようにCする方法はありますか?CtrlZ

私は実際に以下のようにtmuxセッションを介してサーバーを実行していますが、+をnode app.js; $bash実行してサーバーを終了するとbashも終了します。シェルに戻りたいです。私が望む動作を達成するための他のオプションはありますか?CtrlC

【書き直す】

tcshCtrl+CCtrl+と同じ動作ですZ。 bashがCtrlonlt +と同じように、常にすべてのコマンドに対して機能しますC。ただし、ジョブを再インポートするのは再インポートfgするだけでcat、再インポートするわけではありませんls

[kartika@vm-kartika-vnc ~/junk]$ ls
file1  file2
[kartika@vm-kartika-vnc ~/junk]$ echo $SHELL
/bin/tcsh
[kartika@vm-kartika-vnc ~/junk]$ cat; ls
cat is running 
cat is running
^C
[kartika@vm-kartika-vnc ~/junk]$ cat ; ls
cat is running
cat is running
^Z
Suspended
[kartika@vm-kartika-vnc ~/junk]$ jobs
[1]  + Suspended                     cat
[kartika@vm-kartika-vnc ~/junk]$ fg
cat                                     // Pressing ctrl-d here to exit cat
[kartika@vm-kartika-vnc ~/junk]$ 

システムメッセージ:

kartik@kartikpc:~/junk/exp$ uname -a
Linux kartikpc 3.13.0-70-generic #113-Ubuntu SMP Mon Nov 16 18:34:13 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
kartik@kartikpc:~/junk/exp$ echo $SHELL
/bin/bash

ベストアンサー1

bash ジョブ制御を探す必要があります。以下は良い説明です。http://web.mit.edu/gnu/doc/html/features_5.html

しかし、簡単に言うと、+はCtrlコマンドC(すべての行)を終了し、+は実行CtrlZのコマンドをバックグラウンドで実行します。あなたの場合は、バックグラウンドで実行され(出力の抑制と処理の停止)コマンドをcat実行し続けます。ls

catプロセスのリストを確認してこれを確認し、プロセスがまだリストにあることを確認できます。

タスクをフォアグラウンドにインポートするには、fgコマンドを参照してください。

おすすめ記事