Иногда со мной случается, что я случайно нажимаю CTRL+ и мое приложение исчезает в фоновом режиме. Я знаю, что могу вернуть его обратно с помощью , так что это не такая уж большая проблема. Но я все равно думаю об отключении этого. За всю свою жизнь я не могу вспомнить ни одного случая, когда оно мне было нужно, оно просто выглядит для меня как пережиток прошлого.Zfg
job control
Можно ли отключить это job control
полностью? Или я что-то упускаю, и эта функция может быть полезна? Как бы я отключил ее в моем.bashrc
ОБНОВЛЯТЬ:
Я попробовал set +m
, как предложил @Falsenames. Однако это работает только когда я ввожу это в терминал. Добавление set +m
в мой .bashrc
не дает никакого эффекта.
решение1
Чтобы прекратить использование режима мониторинга, вы можете добавить в командную строку следующее.
набор +м
Если позже вам действительно понадобится функциональность 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.
В качестве последней отчаянной попытки вы можете вручную скомпилировать версию bash без флага "--enable-job-control". Вот быстрый способруководство по установкеиз GNU. Если вы решили пойти по этому пути, НЕ заменяйте /bin/bash на всякий случай, если фоновые процессы будут работать через bash expect job control. Вместо этого создайте /bin/bash.alt или другой файл. Вашу оболочку по умолчанию можно изменить на эту альтернативную, запустив usermod или отредактировав /etc/passwd от имени root.
решение2
stty susp undef
отключит сигнал приостановки, инициируемый клавиатурой, для большинства программ, однако команды, такие как vim и emacs, которые имеют определенные привязки, Ctrl-Zдолжны быть перенастроены индивидуально. В emacs вы можете запустить (global-unset-key "\C-z")
.
Вы можете добавить эту команду stty в свой ~/.bash_profile
или ~/.profile
выйти из системы, а затем войти снова.
решение3
Или я что-то упускаю, и эта функция может быть полезна?
Чтобы ответить на эту часть вопроса: Cz / fg
combo имеет важное значение для моего рабочего процесса vim. Например, я предпочитаю Cz > git commit
> fg
использованию git-оберток из vim.
Cz помогает рассматривать оболочку как IDE, соответствующую "сделай одну вещь" принцип. (Это вместо "редактор как IDE").
решение4
Добавьте trap "" SIGTSTP
свой скрипт. Он перехватит сигнал и проигнорирует его.
#!/bin/bash
trap "" SIGTSTP
watch date