Отключить CTRL-D для закрытия моего окна с эмулятором терминала Terminator)

Отключить CTRL-D для закрытия моего окна с эмулятором терминала Terminator)

Я часто вхожу в несколько сессий SSH одновременно. Чтобы выйти из нескольких сессий, я нажимаю CTRL+ d, пока не вернусь на свою локальную машину.

Однако иногда я нажимаю ее слишком часто, и мой терминал закрывается.

Есть ли способ сделать так, чтобы CTRL+ dне смог закрыть мой терминал?

Я использую Terminator в качестве эмулятора терминала.

решение1

Вы также можете отключить eof вообще в bash:

set -o ignoreeof

решение2

Вы можете использовать IGNOREEOFпеременную окружения в bash. Так export IGNOREEOF=42что вам придется нажать Ctrl+Dсорок два раза, прежде чем он действительно выйдет из вашей оболочки.

В POSIX тоже setесть -o ignoreeofнастройка.

решение3

Символ Ctrl-D EOF интерпретируется оболочкой, а не эмулятором терминала. Другие ответы охватывали настройки bash, хотя другие оболочки отличаются.

Для C-shell (например, tcsh) вы можете добавить его в файл tcshrc:

# Prevent accidental logouts completely
set ignoreeof
# Just prevent the first two, and allow the third
set ignoreeof=3

Для панциря рыбы поведение Ctrl-D контролируется привязкой клавиш. Значение по умолчанию — delete-or-exit, поэтому вы можете настроить привязку клавиш для \cdподдержки delete-charтолько удаления.

Более подробная информация вПроблема с Fish Github(например, в версиях до 3.0 вам нужно добавить bindк функции с именем fish_user_key_bindings, после 3.0 вы можете поместить его в ~/.config/fish/config.fish), но вкратце:

bind \cd delete-char  # Don't exit on accidental Ctrl-D
bind \cd\cd\cd delete-or-exit  # Exit on the third one

Связанный контент