A Quick and Easy Guide to tmux (hamvocke.com)
一、说明
我们常用ubuntu,用alt+ctl+T实现终端窗口弹出。然而当需要多个终端一起工作,切换的效率就成了问题。 tmux是ubuntu下,终端窗口工具。该工具能实现多窗口分屏显示、多个会话在一个终端等多种功能。这里简单介绍其用法。
二、Tmux是个啥?
tmux 的作者将其描述为终端多路复用器。这个花哨的术语背后隐藏着一个简单的概念:在一个终端窗口中,您可以打开多个窗口和拆分视图(在 tmux 术语中称为“窗格”)。每个窗格都将包含其自己的、独立运行的 shell 实例(bash、zsh,无论您使用什么)。这允许您同时运行多个终端命令和应用程序,而无需打开多个终端仿真器窗口。
最重要的是,tmux 将这些窗口和窗格保存在一个会话中。您可以随时退出会话。这称为“分离-detaching”。 tmux 将使该会话保持活动状态,直到您终止 tmux 服务器(例如,当您重新启动时),这是非常有用的,因为在以后的任何时间点,您都可以通过简单地“附加”到该会话来从您离开它的地方准确地拾取该会话。
三、如何安装和启动
3.1 安装
安装语句很简单,只要以下语句就能:
sudo apt install tmux
3.2 启动tmux
启动也很简单,只要打开一个终端,输入:
tmux
注意:所有的快捷键,只有在有tmux状态栏(Tmux被启动),才能有效。
3.3 退出tmux
只要按快捷键 Ctrl+D ,永远能够退出。
四、快捷键和命令
4.1 创建窗口
如何创建一个新的窗口;在创建会话的同时,tmux 会在会话中创建一个窗口(tmux window),就是图 中的 0:bash。
好了,我们试着再创建一个窗口:
- 第一步:按 Ctrl+B 组合键,然后松开。
- 第二步:再单独按一下 c 键。
第一个启动的 Tmux 窗口,编号是0,第二个窗口的编号是1,以此类推。这些窗口对应的会话,就是 0 号会话、1 号会话。
4.2 快捷键
在终端下启动tmux前提下,以下快捷键可以实现窗口操作
Ctrl+b %
:划分左右两个窗格。Ctrl+b "
:划分上下两个窗格。Ctrl+b <arrow key>
:光标切换到其他窗格。<arrow key>
是指向要切换到的窗格的方向键,比如切换到下方窗格,就按方向键↓
。Ctrl+b ;
:光标切换到上一个窗格。Ctrl+b o
:光标切换到下一个窗格。Ctrl+b {
:当前窗格与上一个窗格交换位置。Ctrl+b }
:当前窗格与下一个窗格交换位置。Ctrl+b Ctrl+o
:所有窗格向前移动一个位置,第一个窗格变成最后一个窗格。Ctrl+b Alt+o
:所有窗格向后移动一个位置,最后一个窗格变成第一个窗格。Ctrl+b x
:关闭当前窗格。Ctrl+b !
:将当前窗格拆分为一个独立窗口。Ctrl+b z
:当前窗格全屏显示,再使用一次会变回原来大小。Ctrl+b Ctrl+<arrow key>
:按箭头方向调整窗格大小。Ctrl+b q
:显示窗格编号。
4.3 切换窗口
Ctrl+b c
:创建一个新窗口,状态栏会显示多个窗口的信息。Ctrl+b p
:切换到上一个窗口(按照状态栏上的顺序)。Ctrl+b n
:切换到下一个窗口。Ctrl+b <number>
:切换到指定编号的窗口,其中的<number>
是状态栏上的窗口编号。Ctrl+b w
:从列表中选择窗口。Ctrl+b ,
:窗口重命名。
五、结论
我们这里用ROS2-humble进行机器人开发,因为不断地进行终端窗口打开切换,在没有窗口管理下,效率非常低,因此,不得不用tmux进行管理,这在一定程度上提高了节点node开发效率。因此作个文档方便查阅。