开始使用 Tmux [Beginner’s Guide]

多路复用器,您可以创建多个终端会话,这些会话可以从一个窗口同时打开(附加)和关闭(分离)或显示。

使用 tmux 的多个窗格

如果您在终端上花费大量时间,学习如何使用终端多路复用器将为您省去很多麻烦。 如果您的工作仅涉及通过命令行访问远程计算机,则尤其如此。

屏幕与 tmux

Tmux 被认为是 GNU Screen 多路复用器的下一个进化步骤。

如果您习惯了 screen 命令,您会发现它很容易立即上手。 这两个应用程序之间有许多相似之处。 我们的屏幕命令文章得到了很好的回应,我觉得我们的读者会非常喜欢使用 tmux 的一些更新功能。

如果您已经对 screen 命令感到满意,您可以快速浏览本文以查找差异。 对于某些命令,我​​可能会指出相似之处或不同之处。 除了这些注释之外,本文不会假设任何先前的知识。

如果你有点迷茫并且还不知道这篇文章是关于什么的,那完全没问题。 我们将一起经历所有事情。 我将向您展示如何安装 tmux 以及如何执行基本操作。

安装 tmux

Tmux 是一个流行的应用程序,它应该在你的 Linux 发行版的官方存储库中可用。 您可以使用发行版的包管理来安装它。

在基于 Debian 和 Ubuntu 的发行版上,您可以使用以下命令安装它:

sudo apt install tmux

tmux 入门

正如我们所提到的,tmux 是一个很棒的应用程序,可以让你更有效率。 它是一款功能强大的软件,但上手可能会有些混乱。

我将引导您一次完成一项关键功能。 我的目标是让您轻松上手并向您展示基本功能。 自定义 tmux 的方法有很多,我们无法在本文中涵盖所有内容。 如果您对有关高级特性和功能的文章感到好奇,请在评论部分告诉我们!

在 tmux 中创建会话

打开终端并使用以下命令:

[email protected]:~$ tmux

这应该带你进入 tmux。 您会像往常一样看到命令提示符,但现在您会在终端底部看到一个任务栏样式菜单,上面会显示类似 bash 0 *。 星号表示这是您的活动窗口.

让我们创建几个可以在它们之间切换的窗口。 您可以通过使用前缀来做到这一点 [ctrl + b] + c.

您应该在任务栏上看到名为 1:bash 已添加。 在继续之前,让我们再添加两个。

它现在应该看起来像下面的屏幕截图。 您应该总共有四个新的终端窗口(一次只能看到一个窗口)。

带有 4 个窗口的 Tmux 会话 0

自动窗口名称

Tmux 实际上可以识别某些程序并自动重命名您的窗口(如果您没有明确命名您的窗口)。 为了 example,如果你在一个窗口中运行 top 命令,你会注意到窗口名称从 bash 到达顶点。

tmux 中的会话与窗口与窗格(拆分)

在继续之前,您应该知道 tmux 中会话、窗口和窗格之间的区别。

将会话视为笔记本,将窗口视为章节,将窗格视为页面。

一个会话可以有多个窗口。 窗口基本上是一个终端。 您可以在多个垂直和水平窗格之间拆分窗口。 这意味着终端窗口中可以有多个终端。

您可以为特定主题/项目创建 tmux 会话。 为了 example,如果您管理三台服务器,也许您可​​以为每台服务器创建一个会话来执行任务。 使用一个窗口监控系统资源,另一个用于执行一些维护任务。 系统监控窗口可以有多个窗格来监控内存、CPU 和磁盘使用情况。

Tmux 会话窗口和窗格Tmux:会话 vs 窗口 vs 窗格

在 tmux 会话中切换窗口

请记住,ctrl+b(同时)就像您的“tmux”键。 它告诉软件您要输入命令。 查看下表以开始导航 tmux 界面。

以前的下一个n (0, 1, 2, 3 等)
[ctrl + b] + p[ctrl + b] + n切换到 n 窗口: [ctrl + b] + 0

现在您可以“前后”移动或通过 ID 号选择特定实例。 尝试这些东西,直到感觉舒服为止。

准备好? 惊人的。 让我们看看其他一些功能。

注意:如果您是经验丰富的 Screen 用户,您可能习惯于使用 [ctrl + a] 字首。 如果您愿意,编辑配置文件将允许您更改前缀。 我实际上发现备用键组合提高了我的效率,但我也明白旧习惯很难打破。

使用窗口列表切换

另一种选择使用 [ctrl+b] + w。 这为您提供了会话的可视化概览。 您可以使用箭头键选择所需的窗口/窗格。

Tmux 前缀 W

在 tmux 中命名或重命名窗口

您可以使用以下组合键命名当前窗口:

[ctrl+b] + ,

命名您的 tmux 会话

您可能会发现使用有意义的标题来命名您的会话以使事情井井有条很有帮助。 让我们尝试使用 tmux 命名您的第一个会话。

您可以将其命名为我们想要的任何名称,但在这种情况下,我将免费命名它。 Enter 以下命令:

tmux new -s free

您现在应该有一个新的 tmux 会话正在运行。 如果您查看窗口的左下方区域,您将看到会话的名称,而不是通用的 ‘bash’。

如果您已经创建了一个会话,您可以使用以下组合键对其进行命名或重命名:

[ctrl+b] + $

分离一个会话(从 tmux 会话中出来,但让它在后台运行)

在继续之前,让我们开始免费运行 watch 命令,它将每 2 秒更新一次结果。

watch free

如果你不熟悉free或者watch,我建议你看看watch和free命令。 然而,了解它们的功能对于将它们与 tmux 一起使用并不是必不可少的。

好的,所以一旦程序开始,继续并分离会话。 使用此组合键:

[ctrl + b] + d

这应该让您返回到标准命令提示符。 请记住,tmux 会话仍在后台运行,您可以随时再次输入。

列出 tmux 会话

你的会话发生了什么? 它仍在后台运行。 您可以通过名称或 ID 号重新打开会话,但如果您忘记了会话名称怎么办?

tmux 内置了一个列表函数:

tmux ls

这将列出您当前的所有 tmux 会话。 运行它将产生如下输出:

[email protected]:~$ tmux ls
free: 1 windows (created Sat Feb 29 03:16:31 2020) [80x23]

如您所见,它还列出了一个会话有多少个窗口。

在 Tmux 中重新进入会话(也称为附加)

要重新打开 tmux 会话,您可以使用带有 attach 或 attach-session 选项的 tmux 命令,如下所示:

tmux attach -t session_name_or_number

这是一个动画,显示了演示中的所有这些步骤。

在 tmux 中创建多个窗格

现在您已经了解了基础知识,您可以进一步创建多个窗格。

水平(左/右)垂直(上/下)
[ctrl + b] + %[ctrl + b] + “

让我们通过创建垂直拆分和水平拆分来练习使用这些命令。

[ctrl + b] + " 
[ctrl + b] +  %

如果您按该顺序输入了命令,则应该有三个如下所示的窗格:

Tmux 拆分Tmux 拆分

您可以使用 [ctrl+b] + 空格键切换当前焦点窗格的布局。

在窗格之间切换

要在拆分之间切换,您可以使用 tmux 前缀 [ctrl+b] + 箭头键。

[ctrl+b] + arrow keys

这会按照您选择的方向循环窗格。 所选窗格将以绿色突出显示。

放大窗格

您还可以使用 [ctrl+b] + z。 这将使选定的屏幕变为全尺寸。 要退出缩放模式,请点击 [ctrl+b] + z 再次。

杀死或关闭窗格

这是一个重要的。 你可以 close 使用前缀的窗格(拆分) [ctrl + b] + x。

它会要求您确认:

kill-pane 0? (y/n)

在 tmux 中杀死或关闭窗口

为了 close 当前窗口(选项卡),使用:

[ctrl + b] + &

它将要求您确认:

kill-window window_name? (y/n)

在 tmux 中杀死会话

要终止您正在使用的当前 tmux 会话,您必须先终止所有窗口。 这不是很方便,是吗?

您可以使用名称或编号选择性地终止 tmux 会话,如下所示:

tmux kill-session -t session_name_or_number

即使您在会话中,它也会终止会话。

如果您想终止除当前使用的会话(或最后使用的会话)之外的所有会话,请使用以下命令:

tmux kill-session -a

要一次性终止所有 tmux 会话,您可以使用这个神奇的命令:

tmux kill-server

下载 tmux 备忘单

您学习了 tmux 的基础知识,但记住所有命令并不容易,尤其是在开始时。 这就是我总结下表中所有命令的原因。 您也可以以 PDF 格式下载。

命令解释
多路复用器开始新会话
tmux 新 -s 名称使用名称开始新会话
多路复用器列出所有会话
tmux kill-session -t 名称杀死提到的会话
tmux 杀死会话 -a杀死除最后使用的会话之外的所有会话
tmux 杀死服务器杀死所有 tmux 会话
tmux 附加 -t 名称附加/输入提到的会话
[Ctrl +b] + d分离/退出当前会话
[Ctrl +b] + $命名或重命名当前会话
[Ctrl +b] + c创建新窗口
[Ctrl +b] + ,命名或重命名当前窗口
[Ctrl +b] + w列出所有窗口
[Ctrl +b] + &杀死当前窗口
[Ctrl +b] + n/p/n移动到下一个/上一个/第 N 个窗口
[Ctrl +b] + %创建水平窗格
[Ctrl +b] + “创建垂直窗格
[Ctrl +b] + 空格键切换当前窗格的布局
[Ctrl +b] + z放大当前窗格
[Ctrl +b] + x杀死当前窗格

Tmux cheatsheet 使用 tmux 的键盘快捷键 tmux-cheatsheet.png 475 KB

下载圈

结论

感谢您关注我们对 tmux 的介绍。 如您所见,应用程序种类繁多。 我希望这个基本概述能给你一些关于如何使用 tmux 来改进你的工作流程的想法。

与往常一样,如果您有任何问题,请在下面的评论部分留下。