当前位置: 首页 > 工具软件 > x-terminal > 使用案例 >

Tmux--terminal detached

韩善
2023-12-01

学习自:https://www.ruanyifeng.com/blog/2019/10/tmux.html

Tmux 是一个终端复用器(terminal multiplexer),非常有用,属于常用的开发工具。

使用前

场景1

小A:在使用Linux服务器时,经常会碰到一种情况,运行的程序需要运行几十分钟甚至几个小时,启动运行之后,因为某种原因我们可能会断开ssh,再打开这个窗口发现因为ssh断开,程序已经终止运行,又需要重新启动程序重新执行,非常崩溃

场景2

小B:在同一台机器上同时监控N个程序的运行状态,于是需要开N个终端,每个终端监控一个程序输出(或者一个串口的输出),来回切换非常崩溃

场景3

小C:我跟小D共同使用一台机器,但是他用完串口总是不释放,导致我每次链接串口时都遇到串口被占用的情况,小D总是占着xx不xx
小D:我又不是故意的,有的时候调试完没有关闭串口就去忙其他事情,所以就没释放。

使用后

场景1

针对小A的情况,我们需要一种将运行程序从当前session中detach的工具,一般可能采用nohup xxx & 后台运行的方式,但是这样命令敲起来很麻烦,而且一般必须通过将输出写到文件才能保留住过程,所以这时候就可以通过tmux来解决:

  1. 在tmux中创建的子终端,只要保持当前tmux本身的session不退出,就不会随着用户的断网或离开而断开;
  2. 从tmux中detach后,其中运行的程序依然在后台保持运行,并且随时可以重新attach-session回到tmux管理的子终端;

场景2

针对小B的情况,我们需要一个窗口管理器,可以方便的命名以及切换窗口,可以通过tmux来解决:

  1. tmux支持在同一个session中创建多个子终端,并且都可以单独命名,并且可以通过快捷键在终端间迅速切换
  2. 它还支持窗口任意的垂直和水平拆分

场景3

小C小D的吐槽,简单来说,需要一个可以多人共享复用的终端,占用同一个资源,可以通过tmux解决:

  1. tmux允许每个会话有多个连接窗口,因此可以多人实时共享会话;
  2. 共享会话时,每个连接窗口的输出是同步的,可以共享查看他人的操作

用法

安装

ubuntu:
sudo apt-get install tmux

启动与退出

安装完成后,键入tmux命令,就进入了 Tmux 窗口。
上面命令会启动 Tmux 窗口,底部有一个状态栏。状态栏的左侧是窗口信息(编号和名称),右侧是系统信息。

前缀键

Tmux 窗口有大量的快捷键。所有快捷键都要通过前缀键唤起。默认的前缀键是Ctrl+b,即先按下Ctrl+b,快捷键才会生效。举例来说,帮助命令的快捷键是Ctrl+b ?。它的用法是,在 Tmux 窗口中,先按下Ctrl+b,再按下?,就会显示帮助信息。然后,按下 ESC 键或q键,就可以退出帮助。

最简流程

以下是 Tmux 的最简操作流程。

  1. 执行 tmux 新建会话
  2. 在tmux窗口中运行需要运行的程序
  3. 按下 ctrl + b 然后按下 d 从tmux脱离
  4. 下次使用时,通过 tmux a 或 tmux attach-session -t 0 重新连接到tmux会话

常用快捷键

Ctrl+b c:创建一个新窗口,状态栏会显示多个窗口的信息
Ctrl+b p:切换到上一个窗口(按照状态栏上的顺序)。
Ctrl+b n:切换到下一个窗口。
Ctrl+b <number>:切换到指定编号的窗口,其中的<number>是状态栏上的窗口编号。
Ctrl+b w:从列表中选择窗口。
Ctrl+b ,:窗口重命名。

 类似资料:

相关阅读

相关文章

相关问答