Как предотвратить выход из tmux с помощью Ctrl-d?

Как предотвратить выход из tmux с помощью Ctrl-d?

Я использую tmux на своем сервере, и недавно я обнаружил, что сочетание клавиш ctrl-d приведет к выходу из tmux и потере всей информации о сеансе. Я намеревался просто завершить сеанс ssh, но не заметил, что все еще нахожусь в tmux, пока не стало слишком поздно.

Я знаю, что в будущем мне следует быть осторожнее при использовании ctrl-d, но мне интересно, есть ли способ предотвратить выход из tmux при случайном нажатии ctrl-d? Решение вроде подсказки, подтверждения или отсоединения было бы неплохо.

решение1

Если быть точным, Ctrldне выходит tmux, а скорее оболочка. Если эта оболочка запущена в единственной панели последнего окна в tmuxсеансе, сеанс завершается и tmuxклиент выходит.

Чтобы предотвратить Ctrldвыход из оболочки, вы можете установить IGNOREEOFпеременную оболочки или установить опцию оболочки. Поместите в свой файл ignoreeofодно из следующего :.bashrc

IGNOREEOF=10   # Shell only exists after the 10th consecutive Ctrl-d

set -o ignoreeof  # Same as setting IGNOREEOF=10

решение2

IGNOREEOFУ меня это не сработало, поэтому я просто привязал Ctrl+ Dк detach.tmux.conf:

bind-key -n C-d detach

Это -nозначает, что не требуется предварительная управляющая последовательность, как в случае с префиксом tmux.

решение3

КромеЧепнерответ: вы можете полностью запретить терминалу отправлять EOF, установив eofзначение undefwith stty:

stty eof undef

Сбросить с помощью:

stty eof '^d'

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