Ich benutze tmux auf meinem Server und vor kurzem stellte ich auf meine Kosten fest, dass ctrl-d tmux beendet und alle Sitzungsinformationen verliert. Ich wollte einfach die ssh-Sitzung beenden, bemerkte aber nicht, dass ich bis zu spät noch in tmux war.
Mir ist bewusst, dass ich in Zukunft vorsichtig sein sollte, wenn ich Strg-D verwende, aber ich habe mich gefragt, ob es eine Möglichkeit gibt, zu verhindern, dass TMUX beim versehentlichen Drücken von Strg-D beendet wird. Eine Lösung wie Aufforderung, Bestätigung oder Lösen wäre in Ordnung.
set-environment -g 'IGNOREEOF' 2
in.tmux.conf
und jetzt brauche ich Ctrl-d 3 mal Ausgang zu treffen , und ich bin auch jedes Mal mit der Meldung gewarnt:Use "logout" to leave the shell.
IGNOREEOF
nicht für mich arbeiten , damit ich nur gebunden Ctrl+ Dandetach
in .tmux.conf:bind-key -n C-d detach
Die
-n
Mittel keine vorherige Escape - Sequenz benötigt werden , wie die TMux Präfix.quelle
IGNOREOF
es bei mir nicht funktioniert, da ich zsh verwende.setopt ignoreeof
in.zshrc
Arbeiten. Aber ich musste alle tmux-Sessions beenden, damit tmux als Quelle diente.zshrc
. Vielleicht hätte ich etwas.zshrc
aus tmux beziehen können ...cat > some_new_file.txt
.^D
.bind -n C-d if-shell -b 'USHELL="$(basename "$(getent passwd $USER | cut -d: -f7)")"; [ $(tmux list-windows | wc -l) -eq 1 -a $(tmux list-panes | wc -l) -eq 1 -a $(pstree $PPID | egrep "\\b$USHELL\$" | grep -o $USHELL | wc -l) -eq 1 ]' detach 'send C-d'
exec zsh
innerhalb tmux neu zu starten zsh , wenn ich spiele mit dem .zshrcNeben der Antwort von chepner können Sie das Terminal daran hindern, EOF vollständig zu senden, indem Sie
eof
aufundef
mit setzenstty
:Zurücksetzen mit:
quelle