
我经常想退出 ssh 会话,但又不想终止我正在使用的 tmux 会话。为此,我必须运行以下命令:
tmux detach
exit
或者使用快捷方式Ctrl+B D
,然后exit
.
有没有办法将其简化为一个命令?我尝试过使用别名,但它似乎在 tmux 会话内执行这两个命令。
答案1
您可以使用tmux detach -P
。
或者使用~.退出 ssh (这将分离 tmux,因为它的 tty 消失了)。
答案2
我不会自动断开连接,而是更改连接。我猜您当前使用 SSH 连接,然后运行tmux attach
;如果你结合这两个步骤,
ssh -t user@host tmux attach
SSH 会话与附加进程的生命周期相关tmux
,而不是与初始 shell 相关,并且分离tmux
将自动关闭 SSH 连接。
答案3
除非你的设置是也奇怪,你可以终止 SSH 连接与Enter ~ .(所有单独的按键)。会话tmux
应该被分离(就像任何其他 SSH 断开连接一样)。
答案4
在 ssh 连接上自动启动 tmux。分离时注销。 经过 linuxkid完全按照OP的要求,完全在bash中:
当 ssh 进入服务器时,该位会自动打开 tmux。如果会话不存在,则会创建一个新会话。否则,将附加最后一个会话。这应该始终在 .bashrc 中最后运行或作为 .bashrc.d 中的脚本运行。用户在分离时从服务器注销。# This should always be run last either in .bashrc or as a script in .bashrc.d if [[ -z "$TMUX" ]]; then tmux has-session &> /dev/null if [ $? -eq 1 ]; then exec tmux new exit else exec tmux attach exit fi fi