アップデート:

アップデート:

CTRL時々、誤って+を押してしまいZ、アプリケーションがバックグラウンドに消えてしまうことがあります。 で元に戻せるのでfg、それほど大きな問題ではないことはわかっています。しかし、job controlとにかくこれをオフにしようかと思っています。これまでの人生で、これが必要だった瞬間を思い出せません。過去の遺物にしか思えません。

これを完全に無効にしても大丈夫ですかjob control?それとも、私が何か見落としていて、この機能が役に立つのでしょうか?私の環境でこれを無効にするにはどうすればよいですか?.bashrc

アップデート:

@Falsenames の提案どおりに試してみましたset +m。ただし、これはターミナルで入力した場合にのみ機能します。myset +mに追加しても.bashrc効果はありません。

答え1

監視モードの使用を停止するには、コマンド ラインに次のコードを追加できます。

+m を設定

後で ctrl-z 機能が本当に必要になった場合は、「set -m」と入力するだけで、そのセッションの監視を有効にすることができます。

から男の強打これは '-m' 用であり、"+m" でその設定が無効になることに注意してください。

set [+abefhkmnptuvxBCEHPT] [+o option] [arg ...] 
....
-m
    Monitor mode. Job control is enabled. This option is on by default for interactive
    shells on systems that support it (see JOB CONTROL above). Background processes 
    run in a separate process group and a line containing their exit status is printed
    upon their completion. 

最後の手段として、"--enable-job-control"フラグなしでbashのバージョンを手動でコンパイルすることもできます。インストールガイドGNU から。この方法を選択する場合は、バックグラウンド プロセスが bash を介してジョブ制御を期待して実行される場合に備えて、/bin/bash を置き換えないでください。代わりに、/bin/bash.alt または別のファイルを作成します。usermod を実行するか、root として /etc/passwd を編集することで、デフォルトのシェルをこの代替シェルに変更できます。

答え2

stty susp undefは、ほとんどのプログラムでキーボードによるサスペンド信号を無効にしますが、 に特定のバインディングを持つ vim や emacs などのコマンドはCtrl-Z個別に再設定する必要があります。 emacs では、 を実行できます(global-unset-key "\C-z")

~/.bash_profileまたは、ログアウトして再度ログインするstty コマンドを追加できます~/.profile

答え3

それとも、何か見落としているのでしょうか、この機能は役に立つのでしょうか?

質問のこの部分に答えると、Cz / fgcombo は私の vim ワークフローに不可欠です。たとえば、vim 内から git ラッパーを使用するよりも、 Cz > git commit>を好みます。fg

Czは、シェルをIDEとして扱うのに役立ち、「一つのことをする「原則」です。(「IDE としてのエディター」の代わりにこれを使用します)。

答え4

スクリプトに追加しますtrap "" SIGTSTP。シグナルをキャッチして無視します。

#!/bin/bash
trap "" SIGTSTP
watch date

関連情報