终端利器 - tmux配置与使用

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

适用场景

tmux是一个优秀的终端多路复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机;当然其功能远不止于此,比如分屏(当然其他一些软件也能达到这个目的,比如vim,但我还是喜欢tmux的分屏)。

这里写图片描述

配置文件已经放到了 GitHub 上: tmux.conf

为什么使用tmux:

tmux比screen有更多的功能,能够保持工作环境的连续性。例如tmux解决如下的问题:

  1. 下班后,如果你需要断开ssh或关闭电脑,你的ssh连接将丢失;

  2. 在公司或者实验室打开的ssh,在其他地方也需要访问,比如宿舍或家里;

  3. ssh可能由于一些原因中途意外断开(比如长时间没有操作)导致操作中断;

安装完成后输入命令tmux即可打开软件,界面十分简单,类似一个下方带有状态栏的终端控制台;但根据tmux的定义,在开启了tmux服务器后,会首先创建一个会话,而这个会话则会首先创建一个窗口,其中仅包含一个面板;也就是说,这里看到的所谓终端控制台应该称作tmux的一个面板,虽然其使用方法与终端控制台完全相同。

tmux使用C/S模型构建,主要包括以下单元模块:

  • server服务器。输入tmux命令时就开启了一个服务器。

  • session会话。一个服务器可以包含多个会话。

  • window窗口。一个会话可以包含多个窗口。

  • pane面板。一个窗口可以包含多个面板。

tmux

远程主机连接

  • 一键启动远程主机上的 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. 则会发现在较大的桌面上, 也只会显示和小桌面同样大小的窗口, 其余部分被密密麻麻的小点扩充.

tmux

解决方法之一是加入-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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值