使用vscode连接远程服务器,有时候由于主机问题,比如中断,断网,超时,重启,关机等等情况,导致进程中断,如果是一个长时间的进程,会很麻烦,毕竟不能长时间一直盯着主机。
使用tmux可以直接在服务器上挂载进程。这样主机的影响就被消除了。
借用阮一峰博客中的例子:
一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。
为了解决这个问题,会话与窗口可以"解绑":窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口。
使用
一般来说,终端怎么使用,进入tmux的窗口后就怎么使用,其实就是tmux提供了一个绑定进程,但是可与主机分离的窗口,不像平时主机使用的窗口一样,进程和窗口绑定了。
1.创建tmux窗口
tmux new -s <session-name>
比如创建一个会话命名为zyea500
2.进入窗口执行各种命令(和平时的终端一样)
在tmux会话窗口里面,该怎么执行就怎么执行
3.退出:
在 Tmux 窗口中,
1.按下Ctrl+b
然后再按d
2.输入tmux detach
命令
以上两种任选其一即可,就会将当前会话与窗口分离。会话和里面的进程仍然在后台运行
4.再次连接会话
tmux attach -t <session-name>
我们就可以回到会话,查看执行情况了
如果想退出,按照上面3的方式即可。
5.查看所有会话
查看当前存在的所有会话:tmux ls
总结流程如下:
1新建会话tmux new -s <my_session_name>。
2在 Tmux 窗口运行所需的程序。
3按下快捷键Ctrl+b d将会话分离。
4下次使用时,重新连接到会话tmux attach -t <my_session_name>。
其他操作
重命名会话:tmux rename-session -t <new-name>
切换会话:tmux switch -t <session-name>
杀死会话:tmux kill-session -t <session-name>
快捷键
新窗口:Ctrl + b 后按 c 可以创建一个新窗口。
切换窗口:Ctrl + b 后按 n(下一个)或 p(上一个)可以切换窗口。
分割面板:可以水平或垂直分割面板。
水平分割:Ctrl + b 后按 "(双引号)
垂直分割:Ctrl + b 后按 %
Ctrl + b 然后按 d:分离会话。
Ctrl + b 然后按 c:新建窗口。
Ctrl + b 然后按 n:切换到下一个窗口。
Ctrl + b 然后按 p:切换到上一个窗口。
Ctrl + b 然后按 %:垂直分割面板。
Ctrl + b 然后按 ":水平分割面板。
Ctrl + b 然后按 x:关闭当前面板。
参考内容
Tmux 使用教程 作者: 阮一峰