%20.png)
Я часто вхожу в несколько сессий 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