如何防止 tmux 使用 Ctrl-d 退出?

如何防止 tmux 使用 Ctrl-d 退出?

我在我的伺服器上使用 tmux,最近我發現 ctrl-d 會退出 tmux 並丟失所有會話信息,我的目的是簡單地結束 ssh 會話,但沒有註意到我仍然在 tmux 中,直到為時已晚。

我知道以後使用 ctrl-d 時應該小心,但我想知道是否有辦法防止 tmux 在意外按下 ctrl-d 時退出?諸如提示、確認或分離之類的解決方案就可以了。

答案1

準確的說,Ctrld不是 exit tmux,而是一個 shell。如果該 shell 在會話中最後一個視窗的唯一窗格中運行tmux,則會話結束並且tmux用戶端退出。

若要防止Ctrld退出 shell,可以設定IGNOREEOFshell 變量,或設定ignoreeofshell 選項。將以下內容之一放入您的.bashrc文件中:

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

set -o ignoreeof  # Same as setting IGNOREEOF=10

答案2

IGNOREEOF不適合我,所以我只是將Ctrl+綁定Ddetach.tmux.conf 中:

bind-key -n C-d detach

-n意味著不需要事先轉義序列,如 tmux 前綴。

答案3

除了切普納的回答你可以透過設定eof來完全阻止終端發送 EOF :undefstty

stty eof undef

重置為:

stty eof '^d'

相關內容