Terminal Multiplexer(终端复用器),正常来说,当你打开窗口时,会话开始;关闭窗口,会话结束。
tmux的作用正是如此,它解绑了会话和窗口,当你关闭窗口并重新打开时,会话并不会终止,做到了将会话和终端窗口分离。
因此,那个困恼我多时的问题「ssh链接老是断开」也得到了解决。
我只需要在tmux里,使用ssh远程连接到服务器,这样就算窗口关闭,会话也不会终止,再次进入那个“虚拟窗口”(tmux的那个伪窗口,其实是会话),这是ssh进程还被保留,就不会断开链接了。
想起来是这么回事,实操一波试试吧。
安装
<Tips: 在客户端安装,而非服务端,望君知>
项目地址:https://github.com/tmux/tmux
This release runs on OpenBSD, FreeBSD, NetBSD, Linux, OS X and Solaris.
git clone https://github.com/tmux/tmux.git
cd tmux
sh autogen.sh
./configure && make
OR
sudo install tmux # 然后疯狂按Tab键,让它自己补全就完了
新建会话 new
# 直接 tmux 即可进入“tmux伪窗口”
tmux
# 或者也可使用new -s(session)创建一个带名字的
# 因为如果不指定名字,就默认是0,依次递增
tmux new -s xm
分离会话 detach
# 第一种,tmux伪窗口中输入tumx detach
# 第二种,先按 Ctrl+b,再按d
# Ctrl+b 相当于是它快捷键前缀,通过它和其他键的组合,实现快捷键功能
接入会话 attach
# 在本机的终端,想进入tmux时
# 列出所有会话
tmux ls
0: 1 windows (created Thu Oct 8 15:17:31 2020)
# 接入会话
tmux atach -t 0
转化会话 switch
# 已经在一个tmux伪窗口中,想进入另一个伪窗口
tmux switch -t <id>
退出会话 kill-session
# 在会话窗口中直接输入exit
exit
# 使用 tmux kill-session -t <id>的方式
tmux kill-session -t 0
实操 - 在tmux中使用ssh连接树莓派
直接 tmux
进入 伪窗口
(这个伪窗口是我自己乱叫的)
这就是伪窗口,可以看底部。左侧是你的id和名字,我的都是0;右侧是啥一目了然。
在这个伪窗口中,就和正常窗口中一样,直接使用命令链接树莓派就OK了
就像在终端中一样
接下来你可以Ctrl+b,再按d,离开这个伪窗口,这个ssh连接不会断。相比之下,如果直接在终端中,连接就会断开。
另外,所谓「伪窗口」的本质是tmux这个会话,因此,如果你使用了kill-session或者exit关闭了这个会话的话,那么在伪窗口中运行的会话也会关闭。
如果你不太理解窗口和会话,建议找大佬的文章,我通俗的讲:窗口就是我们打开的终端窗口,会话就是运行的进程、服务
。
OK,我是续命,喜欢我欢迎balabala,白白~
直接公众-号复制过来的,喜欢可以关注一手,不强求哈哈,因为我个人也觉得电脑上读博客更方便些。手机代码看不全,图片看不清,烦得很。