Я использую 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
значение undef
with stty
:
stty eof undef
Сбросить с помощью:
stty eof '^d'