使用终端复用器 Tmux 解绑终端与会话

对了,我最近开通了微信公众号,计划是两边会同步更新,并逐步的会将博客上的文章同步至公众号中。感兴趣的朋友可以搜索“里先森sements”来关注,欢迎来玩~!


本文介绍了一种 Linux 环境下常用的终端复用器 Tmux 的简要使用方法,非常适用于要在别处监控实验室训练机实时输出的场景。在编写过程中,以下文献给予了我很大的帮助:

  • Tmux 使用教程 - 阮一峰的网络日志: https://www.ruanyifeng.com/blog/2019/10/tmux.html
  • linux tmux 使用教程 - 牛奔 - 博客园: https://www.cnblogs.com/niuben/p/15983908.html
  • Home · tmux/tmux Wiki · GitHub: https://github.com/tmux/tmux/wiki

设想一个这样的场景,你在实验室里通过终端(terminal)与服务器构建了一个会话(session),并且在服务器上运行起了一个进程(process),但这个进程非常耗时。等回到了家,虽然能够顺利的与服务器构建会话,却无法查看在实验室终端上才能看到的进程输出信息。这是因为默认的终端与会话绑定机制使得其他终端无法接替并监视现有的会话。为此,我们可以借助终端复用器(terminal multiplexer)中会话与终端的解绑与重新绑定( detach and reattach sessions from a terminal )。

Tmux 便是一个常用的终端复用器,利用它可以很轻松的实现上述功能。任何已经在 Tmux 中构建的会话将由 Tmux 托管,即使在终端与会话解绑后,该会话下的进程依旧能够正常的运行。并且,你可以在任意的终端上重新与现有会话进行绑定,获取该会话下进程的输出信息。这十分适用于在实验室调用服务器运行长时间工作的进程时,回家查看这个进程的情况。

由于我们侧重于使用终端复用器的解绑与绑定功能,因此下面仅简单介绍了 Tmux 的部分使用方法。更多说明请参考官方Wiki(Home · tmux/tmux Wiki · GitHub: https://github.com/tmux/tmux/wiki)。

新建会话

新建一个 Tmux 会话,可以通过 tmux new 来新建拥有指定名称的 Tmux 会话,这会在当前终端启动一个 Tmux 窗口。

# 新建 Tmux 会话
$ tmux new

# 新建一个指定名称的 Tmux 会话
$ tmux new -s 指定的会话名称

分离会话

在 Tmux 窗口中,按下 Ctrl+b ,松开后再按 d 键,或者输入 tmux detach 就可以将当前会话与终端分离。

# 分离(解绑)当前终端与会话
$ tmux detach

分离后,会退出当前的 Tmux 窗口,但是之前在 Tmux 会话中启动的进程仍然会在后台运行。

查看会话

在 Linux 终端中,可以输入 tmux ls 来查看当前 Tmux 托管的所有会话

$ tmux ls
# 或者
$ tmux list-session

接入会话

使用 tmux attach 命令可以将当前的终端重新接入(绑定)某个已经存在的 Tmux 会话

# 使用会话编号
$ tmux attach -t 0
# 使用会话名称
$ tmux attach -t 指定的会话名称
# 加入最近使用的会话
$ tmux attach

事实上,即使之前的某个终端未与当前会话进行分离,新终端依旧可以加入这个会话。如果你希望绑定会话时断开其他终端对这个会话的绑定,可以使用 -d 标志。

杀死会话

如若要杀死 Tmux 中的某个会话,可以使用 tmux kill-session 来指定杀死的会话,使用 exit 可以杀死当前 Tmux 会话。

# 使用会话编号
$ tmux kill-session -t 0

# 使用会话名称
$ tmux kill-session -t 指定的会话名称

# 杀死当前会话
$ exit

简单操作流程

例如,我们在服务器上新建了一个 Tmux 会话,并在其上运行了某个耗时程序

# 新建 Tmux 会话 serverlinux
$ tmux new -s serverlinux

# 在 serverlinux 中运行耗时程序(开始炼丹)
$ python train.py

当我们回到家时,我们可以通过 SSH 链接到服务器,并将当前终端与之前的会话绑定,来查看任务输出

$ tmux attach -t serverlinux

使用tmux detach可以解绑会话与当前终端,如若想远程关闭这个会话,我们则可以使用 exit

如若你希望每次登录服务器后,终端上弹出信息提醒你新建 Tmux 会话,可以参考我的这篇文章:Linux登录终端时显示信息,使用toilet显示杀马特字体

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Terminator是一款支持分屏的终端模拟器,Tmux是一款终端复用工具,它们可以很好地结合使用,为我们带来更加高效的终端操作体验。 以下是使用Terminator和Tmux打造完美终端的步骤: 1. 安装Terminator和Tmux 在Ubuntu上,可以使用以下命令进行安装: ``` sudo apt-get install terminator tmux ``` 2. 启动Terminator并创建多个终端窗口 启动Terminator后,可以使用Ctrl + Shift + E快捷键创建一个新的终端窗口。在每个终端窗口,可以执行不同的命令,比如查看系统日志、运行Python脚本等。 3. 使用Tmux进行终端复用 在Terminator打开一个终端窗口,并执行以下命令启动Tmux: ``` tmux ``` 这将会创建一个新的Tmux会话。在Tmux会话,可以创建多个窗口、分割窗口等操作。 4. 在Tmux创建新窗口 使用以下快捷键在Tmux创建新窗口: ``` Ctrl + b c ``` 这将会创建一个新的Tmux窗口。 5. 在Tmux切换窗口 使用以下快捷键在Tmux切换窗口: ``` Ctrl + b n ``` 这将会切换到下一个窗口。 6. 在Tmux分割窗口 使用以下快捷键在Tmux分割当前窗口: ``` Ctrl + b % ``` 这将会在当前窗口垂直分割出一个新的窗格。 7. 在Tmux切换窗格 使用以下快捷键在Tmux切换窗格: ``` Ctrl + b 方向键 ``` 这将会在当前窗格切换到相邻的窗格。 通过以上步骤,我们可以在Terminator创建多个终端窗口,并且使用Tmux进行终端复用和分屏操作,从而提高终端操作效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值