Używam tmux na moim serwerze i ostatnio odkryłem, że ctrl-d opuści tmux i utraci wszystkie informacje o sesji, moim zamiarem było po prostu zakończyć sesję ssh, ale nie zauważyłem, że wciąż jestem w tmuxie, aż będzie za późno.
Zdaję sobie sprawę, że powinienem zachować ostrożność w przyszłości, używając Ctrl-D, ale zastanawiałem się, czy istnieje sposób, aby zapobiec Tmuxowi przy wychodzeniu po przypadkowym naciśnięciu Ctrl-D? Rozwiązanie takie jak monit, potwierdzenie lub odłączenie byłoby w porządku.
set-environment -g 'IGNOREEOF' 2
w.tmux.conf
a teraz muszę uderzyć Ctrl-D 3 razy do wyjścia, a ja też ostrzeżony za każdym razem z komunikatem:Use "logout" to leave the shell.
IGNOREEOF
nie działało dla mnie, więc po prostu związałem Ctrl+ Dzdetach
.tmux.conf:bind-key -n C-d detach
Te
-n
środki nie przed sekwencja ucieczki potrzebne, podobnie jak tmux prefiksu.źródło
IGNOREOF
nie działało dla mnie wcześniej, ponieważ używam zsh.setopt ignoreeof
w.zshrc
pracach. Ale musiałem zabić wszystkie sesje Tmux, aby Tmux mógł je pobrać.zshrc
. Może mógłbym pozyskać.zshrc
z tmux ...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
zrestartować Zsh w tmuxie, gdy gram z .zshrcPoza chepner za odpowiedź można zatrzymać terminal może wysyłać EOF całkowicie ustawiając
eof
sięundef
zstty
:Zresetuj za pomocą:
źródło