适用场景
tmux是一个优秀的终端多路复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机;当然其功能远不止于此,比如分屏(当然其他一些软件也能达到这个目的,比如vim,但我还是喜欢tmux的分屏)。
配置文件已经放到了 GitHub 上: tmux.conf
为什么使用tmux:
tmux比screen有更多的功能,能够保持工作环境的连续性。例如tmux解决如下的问题:
下班后,如果你需要断开ssh或关闭电脑,你的ssh连接将丢失;
在公司或者实验室打开的ssh,在其他地方也需要访问,比如宿舍或家里;
ssh可能由于一些原因中途意外断开(比如长时间没有操作)导致操作中断;
安装完成后输入命令tmux即可打开软件,界面十分简单,类似一个下方带有状态栏的终端控制台;但根据tmux的定义,在开启了tmux服务器后,会首先创建一个会话,而这个会话则会首先创建一个窗口,其中仅包含一个面板;也就是说,这里看到的所谓终端控制台应该称作tmux的一个面板,虽然其使用方法与终端控制台完全相同。
tmux使用C/S模型构建,主要包括以下单元模块:
server服务器。输入tmux命令时就开启了一个服务器。
session会话。一个服务器可以包含多个会话。
window窗口。一个会话可以包含多个窗口。
pane面板。一个窗口可以包含多个面板。
远程主机连接
一键启动远程主机上的 tmux:
ssh -t username@server.com tmux如果你之前在远程主机上已经开启了 tmux 的话,用以下命令。
远程主机仅有一个tmux会话,直接进行重连:
ssh -t username@server.com tmux a远程主机有多个tmux会话,我们想要指定重新连接名为foo的tmux会话 ( ssh后面的
-t为了执行任意一个基于screen的远端主机上的程序,不可省略。tmux后面的-t为-target的简写,旨在指定tmux的会话名):
ssh -t username@server.com tmux a -t foo
注意事项
在不同大小的屏幕连接一个session可能会出现问题。比如在一个较小的桌面打开一个session, 然后又在一个较大的桌面也打开这个session. 则会发现在较大的桌面上, 也只会显示和小桌面同样大小的窗口, 其余部分被密密麻麻的小点扩充.
解决方法之一是加入-d选项:
ssh -t username@server.com tmux a -d -t foo
即先强制 detach掉小桌面的session, 然后再在较大桌面打开session.
另外, 或在配置文件中设置:
setw -g aggressive-resize on
配置文件
最全面的文档当然是官方的manual page, tmux.github.io.
再推荐一个非常不错的tmux教程:A Tmux cra

tmux是一款强大的终端多路复用器,能保持工作环境的连续性,解决SSH连接丢失等问题。本文介绍了tmux的配置、会话、窗口、面板的使用,以及复制模式和远程主机连接的技巧,帮助你提升终端操作效率。
最低0.47元/天 解锁文章
4106

被折叠的 条评论
为什么被折叠?



