如何使用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 条评论
登录 后参与评论

相关文章

来自专栏数据星河

如何对第一个Vue.js组件进行单元测试 (上)

  单元测试是持续集成的关键。通过专注于小的、独立的实体,确保单元测试始终按预期运行,使代码更加可靠,你可以放心地迭代你的项目而不必担坏事儿。

15220
来自专栏企鹅号快讯

JavaScript 性能优化技巧分享

英文: Ivan Čurić 译文:葡萄城控件 http://www.cnblogs.com/powertoolsteam/p/javascript-per...

380150
来自专栏蔡述雄的专栏

包学会之浅入浅出Vue.js:开学篇

Vue 是国人写的,技术文档也妥妥的是中文,想到这我就有学习的动力。

51.1K690
来自专栏jeremy的技术点滴

微信小程序上手

72060
来自专栏云飞学编程

Python新手爬虫,简单制作抓取廖雪峰的教程的小爬虫

先看几张对比图,分别是官网截图和抓取下来的txt文档的截图,不算那难看的排版的话,内容是一致的,图片用url替换了!

31010
来自专栏腾讯移动品质中心TMQ的专栏

Web前端性能基础指标&计算方式

从用户角度而言,打开一个页面想要的就是页面可以尽快有响应,加载完并且可以允许交互;因此前端的性能可以用白屏时间,首屏时间,可交互时间来衡量。

93490
来自专栏魏艾斯博客www.vpsss.net

国外免费 Linux 面板-VestaCP 安装及建站教程

1K20
来自专栏听雨堂

JQuery笔记(三) jquery的用途

  近期jquery的学习经历了一些反复:开始时觉得非常强大,比js好用,和css关系密切,一句话:完美。等到把《锋利的JQuery》看完,又有点不知道用它来干...

33790
来自专栏葡萄城控件技术团队

Wijmo 更优美的jQuery UI部件集:通过jsFiddle测试Wijmo Gauges

Wijmo 的巨大优势之一就是,它们是非常流行的jQuery UI部件。这将意味着它们的基础类库具有很多支持者。具有众多的支持者同时也意味着更多好用的工具。这些...

22580
来自专栏编程

从源码的角度再看 React JS 中的 setState

在上一篇手记「深入理解 React JS 中的 setState」中,我们简单地理解了 React 中 setState “诡异”表现的原因。 在这一篇文章中,...

212100

扫码关注云+社区

领取腾讯云代金券