отключить закрытие окна CTRL-D в терминаторе (эмулятор терминала)

46

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

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

Есть ли способ заблокировать CTRL+ dот закрытия моего терминала?

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

Мартин Вегтер
источник
Дубликат unix.stackexchange.com/questions/27588/…
Аарон Дигулла
Смотрите этот вопрос для Zsh.
rgov

Ответы:

50

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

set -o ignoreeof

Fanch
источник
2
Но если вы сделаете это без разбора, это будет применяться и при входе в систему через ssh.
Жиль "ТАК - перестань быть злым"
3
Я использую терминатор 0,97. Когда я устанавливаю -o ignoreeof, он блокирует ctrl-d (не выходит) 10 раз с сообщением: используйте «exit», чтобы покинуть оболочку. 11-го ctrl-d выходит.
AAAfarmclub
OMG, спасибо !! Это (случайные терминальные помехи) было для меня огромным раздражением. Добавлено в ~ / .bashrc; работает в консоле | xfce4-терминал | ... :-D
Виктория Стюарт
@ Жиль Хороший вклад, у вас есть решение для этого?
Готье
34

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

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

ryekayo
источник
4
Сорок три раза: первые сорок два игнорируются, а последний фактически выходит. :-)
deltab
Я полагал, что Сорок три раза будет слишком излишним. Определенно, это set -o ignoreeofбыло бы более практично
Ryekayo
3
Но если вы сделаете это без разбора, это будет применяться и при входе в систему через ssh.
Жиль "ТАК - перестань быть злым"
Но вы должны писать команду каждый раз, когда открываете терминал. Как вы отключаете это навсегда?
MycrofD
2
@MycrofD Добавьте это к вашему .bashrcили .profile.
Ян Вархол