tmux 简明教程

什么是 tmux?

tmux 一款终端窗口复用器(terminal multiplexer),通过这个工具我们实现在单一窗口中创建并访问多个终端。同时 tmux可以与创建的终端实现分离,并使它们在后台继续运行。我们在需要的时候可以重新连接这些后台运行的终端。

直接这样讲可能不太明确,下面描述一个场景来进一步说明。我们一般在使用 ssh 命令连接远程主机时,往往会获取到远程主机的一个终端窗口。我们可以在这个窗口中输入并运行命令,获取到返回结果。但是如果我们要执行一个持续执行的任务时,比如启动一个Spring Boot我们会发现在退出ssh后我们的任务也随之终止了,这明显不是我们想要的结果。
在这里插入图片描述
tmux的诞生就是为了解决这个问题的。tmux通过管理自己内部的子会话和窗口保证了当我们在 tmux中执行的命令与当前ssh的连接会话的生命周期无关。
在这里插入图片描述
上图可以看到,tmux本质是相当于另起炉灶,我自己管理我自己的 session。与当前 ssh 的连接 session 彻底脱离关系了。

tmux的基本结构

tmux 的结构包括会话(session)窗口(window)窗格(pane)三个部分。

会话的本质是伪终端的集合,每个窗格表示一个伪终端,多个窗格展现在一个屏幕上,这一屏幕就叫窗口。
在这里插入图片描述
基本结构以及状态信息如下图所示:
在这里插入图片描述
tmux 中,你可以创建多个会话(session),每个会话会默认创建一个窗口,而每个窗口(window)又会默认创建一个窗格(pane),每个窗格都对应一个伪终端用于执行命令。简单来讲可以把它们看成是分组的关系,每个组内可以有多个终端用来执行命令。而 tmux基本的操作无非就是基于会话,窗口和窗格对终端进行管理。
在这里插入图片描述

tmux 基本操作

tmux最基本的操作无非就是对会话,窗口,窗格等进行管理。包括创建,关闭,命令,连接,分离,选择等等。
一般的操作可以使用命令和快捷键两种方式操作,对于快捷键而言 tmux 这里与普通快捷键的触发方式还有所区别。

tmux 前缀键

对于 tmux 而言,与一般我们直接使用的快捷键有所区别的地方在于它设计了一个名为"前缀键"的快捷键唤醒方式。所有快捷键在触发之前,都要先使用前缀键(Ctrl+B)。

这里举个栗子,在 tmux 终端中显示帮助命令的快捷键是 (Ctrl+B+?)。

而对于该快捷键的触发方式是先按下 Ctrl+B ,然后松开 Ctrl+B (注意这里 CtrlB 按键都要松开),接着按下 ?

  • 按下 Ctrl+B
  • 松开 Ctrl+B
  • 按下快捷键 ?
    在这里插入图片描述

这里列举一些常用的快捷键:

按键说明
Ctrl + b d分离当前会话(离开终端但不停止当前命令)
Ctrl + b s列出所有会话
Ctrl + b c创建新窗口
Ctrl + b n选择下一个窗口
Ctrl + b p选择前一个窗口
Ctrl + b l最近一次活跃窗口之间进行切换
Ctrl + b 0~9选择几号矿口
Ctrl + b %划分左右两个窗格(pane)
Ctrl + b "划分上下两个窗格(pane)
Ctrl + b o光标切换到下一个窗格
Ctrl + b ;光标切换到上一个窗格

在这里插入图片描述
tmux 中还有另一类快捷键,它们的触发方式与上面有所区别。这里以 Ctrl+b Ctrl+o为例,需要先按下 Ctrl+b ,然后 Ctrl 按住不动, 松开 按键b,然后在按下按键 o。这样的快捷键触发方式在 Visual Studio Code中很常见,但在 tmux 中只有几个快捷键的触发方式是这样子的。

  • 按下Ctrl+b
  • 松开 b
  • 按下 o
按键说明
Ctrl + bCtrl + o所有窗格向前移动一个位置,第一个窗格变成最后一个窗格
Ctrl + bAlt + o所有窗格向后移动一个位置,最后一个窗格变成第一个窗格

而对于快捷键 Ctrl + bAlt + o ,则需要先按下 Ctrl + b ,然后松开 Ctrl + b ,接着按下 Alt + o

  • 按下 Ctrl + b
  • 松开 Ctrl + b
  • 按下 Alt + o

总结

综上所述,tmux 的快捷键对于新手而言简直就是劝退级别的。但这并不能说明 tmux 本身不好用,一旦你使用的熟练了以后,你会发现它会给与你很大的帮助。以上就是我入坑 tmux 的一点笔记,希望能够帮助到你。

参考资料

nohup和&后台运行,进程查看及终止
Tmux 使用教程
一文助你打通 tmux

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值