有時我會遇到這樣的情況:我不小心按了CTRL+ ,我的應用程式就消失在後台了。Z我知道,我可以把它帶回來fg
,所以沒什麼大不了的。但我想知道是否要關閉此job control
功能。在我的一生中,我記不起何時需要它,它在我看來只是過去的遺跡。
完全禁用可以嗎job control
?或者我錯過了什麼,這個功能很有用嗎?我如何在我的.bashrc
更新:
我已經set +m
按照@Falsenames 的建議進行了嘗試。但是,這僅當我在終端中鍵入它時才有效。加入set +m
my.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。如果您確實選擇走這條路,請勿替換 /bin/bash 以防後台程序通過 bash 運行並需要作業控制。相反,創建 /bin/bash.alt 或其他文件。您可以透過執行 usermod 或以 root 身分編輯 /etc/passwd 將您的預設 shell 變更為此備用 shell。
答案2
stty susp undef
將禁用大多數程式的鍵盤啟動的掛起訊號,但是像 vim 和 emacs 這樣具有特定綁定的命令Ctrl-Z必須單獨重新配置。在 emacs 中,您可以運行(global-unset-key "\C-z")
.
您可以將該 stty 命令新增到您的~/.bash_profile
或中~/.profile
,登出,然後再次登入。
答案3
或者我錯過了什麼,這個功能很有用嗎?
回答這部分問題:Cz /fg
組合對於我的 vim 工作流程至關重要。例如,我更喜歡 Cz >> 而git commit
不是fg
在 vim 中使用 git 包裝器。
Cz 有助於將 shell 視為 IDE,符合“做一件事”原則。(這代替了“編輯器作為 IDE”)。
答案4
新增trap "" SIGTSTP
到您的腳本中。它會捕獲信號並忽略它。
#!/bin/bash
trap "" SIGTSTP
watch date