使用 tmux 作为终端复用器的速查表

了解 tmux,这是一款允许您在单个桌面窗口中打开多个终端的应用程序。
71 位读者喜欢这个。
Windows

PixelAnarchy on Pixabay, CC0。

无论您是启动一个精巧的 Raspberry Pi 家庭实验室,还是管理一栋楼的工作站,有时您需要在多台主机上执行相同的任务。有很多方法可以自动化跨系统的任务。Ansible 例如,确保所有系统都处于相同的状态,有时一个简单的 cron 作业就可以完成。但有时您需要手动运行命令。为此,您需要 tmux,一个让您控制多个命令提示符的单个终端。

tmux 是一款开源应用程序,它在您的终端窗口中添加层(或在 tmux 术语中称为“窗口”),以便您可以在单个桌面窗口中打开多个终端。结果是一个选项卡式界面(没有物理选项卡),因此您可以从一个打开的终端翻转到另一个终端,而无需像在 Firefox 中从一个选项卡切换到另一个选项卡时那样使用鼠标。

这可能看起来是多余的。毕竟,现代终端应用程序,例如 GNOME Terminal 和 Konsole,默认情况下都内置了选项卡,甚至一些非常旧的终端,例如 rxvt,也具有添加选项卡式界面的能力。然而,tmux 增加了将窗口拆分为窗格的能力,每个窗格包含一个单独的终端,并且每个终端都可以登录到单独的主机。您只需几个键盘快捷键或一个基本的 tmuxinator 脚本即可构建终端阵列。

(Seth Kenlon,CC BY-SA 4.0

安装 tmux

在 Linux 和 BSD 上,您可以从您的软件仓库或 端口树 安装 tmux。在 Mac 上,使用 Homebrew

例如,在 RHEL 或 Fedora 上

$ sudo dnf install tmux

启动 tmux

要启动 tmux,请打开终端并键入

$ tmux

当您执行此操作时,明显的結果是 tmux 在同一窗口中启动了一个新 shell,并在底部显示了一个状态栏。但是,还有更多事情正在发生,您可以通过这个小实验看到它。首先,在当前终端中执行一些操作,以帮助您将其与另一个空终端区分开来

$ echo hello
hello

现在按键盘上的 Ctrl+B,然后按 C。看起来您的工作似乎消失了,但实际上,您已经创建了 tmux 称为窗口 的东西(这可能确实令人困惑,因为您可能也将启动的终端称为窗口)。感谢 tmux,您实际上打开了两个窗口,您都可以在 tmux 底部的状态栏中看到它们。您可以通过索引号在这些窗口之间导航。例如,按 Ctrl+B,然后按 0 转到初始窗口

$ echo hello
hello

Ctrl+B,然后按 1 转到您创建的第一个新窗口。

您还可以使用 Ctrl+BN(下一个)或 P(上一个)“走过”您打开的窗口。

tmux 触发器和命令

键盘快捷键 Ctrl+B 是 tmux 触发器。当您在 tmux 会话中按下它时,它会提醒 tmux “监听”紧随其后的下一个键或组合键。因此,所有 tmux 快捷键都以 Ctrl+B 为前缀。

您还可以访问 tmux 命令行,并通过名称键入 tmux 命令。例如,要以困难的方式创建一个新窗口,您可以按 Ctrl+B,然后按 : 进入 tmux 命令行。键入 new-window 并按 Enter 键以创建一个新窗口。这与按 Ctrl+B,然后按 C 的效果完全相同。

将窗口拆分为窗格

一旦您在 tmux 中创建了多个窗口,通常需要在一个窗口中查看所有窗口。您可以水平拆分窗口(意味着拆分是水平的,将一个窗口放在北部位置,另一个放在南部位置)或垂直拆分(窗口位于西部和东部位置)。

  • 要创建水平拆分,请按 Ctrl+B,然后按 "(双引号)。
  • 要创建垂直拆分,请按 Ctrl+B,然后按 %(百分号)。

您可以拆分已拆分的窗口,因此布局取决于您和终端中的行数。

有时事情可能会失控。您可以使用以下快速预设调整布满随意拆分的窗格的终端

  • Ctrl+B Alt+1:均匀水平拆分
  • Ctrl+B Alt+2:均匀垂直拆分
  • Ctrl+B Alt+3:主窗格水平跨越,较小窗格垂直拆分
  • Ctrl+B Alt+3:主窗格垂直跨越,较小窗格水平拆分
  • Ctrl+B Alt+5:平铺布局

在窗格之间切换

要从一个窗格转到另一个窗格,请按 Ctrl+B,然后按 O(如其他中的 O)。窗格周围的边框颜色会根据您的位置而变化,并且您的终端光标会变为活动状态。此方法按创建顺序“走过”窗格。

或者,您可以使用箭头键根据您的布局导航到窗格。例如,如果您有两个打开的窗格被水平拆分分隔开,您可以按 Ctrl+B,然后按 向上 箭头从下窗格切换到上窗格。同样,Ctrl+B,然后按 向下 箭头从上窗格切换到下窗格。

使用 tmux 在多台主机上运行命令

现在您知道如何打开多个窗口并将它们划分为方便的窗格,您几乎了解了同时在多台主机上运行一个命令所需的一切知识。假设您有一个您满意的布局,并且每个窗格都连接到单独的主机,您可以同步窗格,以便您在键盘上键入的输入在所有窗格中镜像。

要同步窗格,请使用 Ctrl+B,然后按 : 访问 tmux 命令行,然后键入 setw synchronize-panes

现在您在键盘上键入的任何内容都会显示在每个窗格中,并且每个窗格都会做出相应的响应。

下载我们的速查表

记住 Ctrl+B 来调用 tmux 功能相对容易,但随后的按键起初可能难以记住。所有内置的 tmux 键盘快捷键都可以通过按 Ctrl+B,然后按 ? 来获得(按 Q 退出帮助屏幕)。但是,帮助屏幕对于其所有选项来说可能有点令人不知所措,这些选项都没有按任务或主题组织。为了帮助您记住 tmux 的基本功能,以及本文未涵盖的许多高级功能,我们开发了一个 tmux 速查表。它是免费下载的,所以今天就获取您的副本。

立即下载 我们的 tmux 速查表!

接下来阅读什么

使用 tmux 创建您梦想中的控制台

您可以使用 tmux 做很多事情,尤其是在您将 tmuxinator 添加到组合中时。在我们的关于使用开源提高效率的 20 种方法的系列文章的第十五篇中查看它们……

标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,通常同时进行。

评论已关闭。

© . All rights reserved.