专栏首页云计算教程系列如何使用tmux终端多路复用器
原创

如何使用tmux终端多路复用器

介绍

TMUX是终端多路复用器。类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机;是BSD实现的Screen替代品,相对于Screen,它更加先进:支持屏幕切分,而且具备丰富的命令行参数,使其可以灵活、动态的进行各种布局和操作。使用它在您的的腾讯云CVM服务器上创建一个主机服务器,并通过客户端窗口连接到它。如果客户端断开连接,则服务器将继续运行。重新启动计算机或丢失网络连接后重新连接到的腾讯云CVM服务器时,可以重新连接到TMUX会话,并且您正在使用的文件仍将处于打开状态,并且您运行的进程仍将处于活动状态。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器

通过将多个会话,窗口和窗格附加到tmux服务器,您可以组织工作流并轻松管理多个任务和流程。

安装tmux

使用您的发行版的软件包管理器安装tmux。

在Debian或Ubuntu系统上:

sudo apt install tmux

从tmux会话中附加和分离

  • 启动tmux时,它会创建一个包含一个窗口和一个窗格的新会话。开始一个新会话:
tmux
  • 您的终端窗口底部应该有一个绿色菜单栏,类似于下面的菜单栏:
  • 从会话中分离:
tmux detach

这将返回基本终端。

会话启动后,只要腾讯云CVM服务器正在运行,或者直到您停止会话,它将继续运行。您可以注销当前会话,然后重新连接到上一个会话。

tmux attach

tmux命令

有三种方法可以向tmux发出命令:

  • 快捷方式:tmux使用所谓的前缀键,默认情况下为CTRL + b。tmux会将前缀后面的按键解释为tmux快捷方式。例如:使用快捷方式从会话中分离:按CTRL + b,同时释放两个键,然后按d
  • 命令模式:按Prefix进入命令模式,然后使用。这将在屏幕底部打开一个命令提示符,它将接受tmux命令。
  • 命令行:也可以在tmux会话中直接将命令输入命令行。通常这些命令以tmux开头。在上一节中所使用的tmux attach命令就是这样类型的例子。

大多数tmux任务可以使用这三种方法中的任何一种来完成。

注意 您可以通过编辑.tmux.config文件来更改前缀密钥。对于本教程的其余部分,前缀将用于指代默认的CTRL + b或您在配置文件中选择的组合。

管理tmux Windows

当tmux会话启动时,默认情况下会创建一个窗口。可以将多个窗口连接到同一会话,并根据需要在它们之间切换。当您想要并行运行多个作业时,这会很有用。

命令

结果

Prefix + c

创建一个新窗口

Prefix + p

切换到上一个窗口

Prefix + n

切换到下一个窗口

Prefix + 0-9

使用索引号切换到窗口

Prefix + w

从交互列表中选择一个窗口

出口

关闭一个窗口

Prefix + &

在无响应的窗口中强制终止所有进程

默认情况下,tmux根据生成它的进程命名每个窗口(最常见的是bash)。要提供更易于记忆和使用的窗口名称,可以使用Prefix +,重命名窗口。

管理tmux Panes

每个窗口可以分为多个窗格。当您希望在单个窗口中显示多个进程的输出时,这非常有用。

命令

结果

Prefix + “

水平拆分活动窗格

Prefix + %

垂直拆分活动窗格

Prefix + 箭头键

切换到另一个窗格

Prefix + ALT +箭头

调整活动窗格的大小

Prefix + z

放大活动窗格。再次按相同的组合可退出缩放模式

出口

关闭活动窗格

Prefix + x

强制在窗格中终止无响应的进程

管理tmux会话

有时甚至多个窗口和窗格都是不够的,您需要通过将布局分组到单独的会话中来逻辑地分离布局。使用Prefix打开命令提示符,然后使用,然后启动一个新会话:

new-session

注意 也可以输入命令的较短版本,例如:“new-se”。但是只有当没有另一个以相同字符串开头的命令时,才有效。

命令

结果

Prefix + (

切换到上一个会话

Prefix + )

切换到下一个会话

Prefix + s

显示交互式会话列表

tmux ls

列出所有可用的会话

tmux attach -t 0

放大活动窗格。再次按相同的组合可退出缩放模式

tmux kill-server

销毁所有会话并终止所有进程

创建tmux配置文件

  • 当你对tmux感到满意时,你可能想要改变一些默认值。使用文本编辑器,在用户的主目录中创建配置文件:
# Uncomment the lines with the options you want to activate (by deleting the preceding "#")
  
# Allow mouse interaction
# set-option -g mouse on
​
# Change prefix key to CTRL+A. "C-" stands for CTRL, "M-" stands for ALT key
# set-option -g prefix C-a
# unbind-key C-b
# bind-key C-a send-prefix
​
# Display CPU load average for the last 1,5 and 15 minutes, in the status bar
  set -g status-right "#(cut -d ' ' -f -3 /proc/loadavg) %H:%M %d-%b-%y"
  • 将更改保存到此文件后,请加载新配置。通过按下输入TMUX命令模式Prefix 然后使用,之后使用下面的命令:
source-file ~/.tmux.conf

启用鼠标选项后,您可以使用指针与tmux窗格,窗口和状态栏进行交互。例如,您可以单击状态栏中的窗口名称切换到该窗口名称,也可以单击并拖动窗格线以调整其大小。

tmux手册中提供了其他配置选项。

更多信息

有关此主题的其他信息,您可能需要参考以下资源。虽然提供这些是希望它们有用,但请注意,我们无法保证外部托管材料的准确性或及时性。

想要了解更多关于tmux的教程请前往腾讯云+社区学习更多知识。


更多Linux教程请前往腾讯云+社区学习更多知识。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何启用和连接Django管理界面

    在本教程中,我们将连接并启用Django管理站点,以便您可以管理您的博客网站。Django管理站点预先构建了一个用户界面,旨在允许您和其他受信任的个人管理网站的...

    吴凌云
  • 最全的CentOS MariaDB入门教程

    MariaDB是流行的跨平台MySQL数据库管理系统的分支,被认为是MySQL 的完全替代品。MariaDB是由Sun在Sun Microsystems合并期间...

    吴凌云
  • 如何在CentOS 7上使用Docker安装Prometheus

    Prometheus是一个开源监控系统和时间序列数据库。它涉及监控的许多方面,例如度量标准的生成和收集,在仪表板上绘制结果数据以及针对异常情况发出警报。为实现这...

    吴凌云
  • Tmux:Linux 从业者必备利器

    tmux 为什么要用tmux tmux是什么?tmux是linux中一种管理窗口的程序。那么问题来了:Mac自带的Iterm2很好用啊。既支持多标签,也支持窗...

    小小科
  • 【Linux】Ubuntu的一些高效率工具

    不知道你有没有这些经历,反正我有!!直到之前一位朋友华哥和我推荐了几款工具之后,上面的情况就完美解决了。

    小白学视觉
  • 从源代码编译安装tmux

    为了使用新版tmux的特性,需要在Ubuntu 16.04上安装高版本的tmux,没有找到现成的ppa,因此搜到了一个从源代码安装的脚本,这里记录下来。

    王云峰
  • Tmux 使用教程 on Fedora 28

    Tmux 和 gun/screen 都是优秀的终端复用软件,它的关键的好处就是,保持ssh 登录连接session不中断,并且能支持分屏操作,具备丰富的命令行参...

    xuyaowen
  • tmux | 加固shell

    直到看了Micro8大佬写的教程,我才发现,原来tmux 还可以实现后台不间断运行程序,我跟你说这个功能老牛了!

    意大利的猫
  • tmux-让你完全脱离鼠标的终端神器

    章鱼喵
  • 利器系列-终端分屏利器 tmux

    首先,我们先来了解下终端分屏是什么。顾名思义,终端分屏就是把一个终端屏幕拆解为多个窗口,并且可以进行切换。

    Jintao Zhang

扫码关注云+社区

领取腾讯云代金券