使用 tmux 获得更强大的终端

一些 Fedora 用户将大部分或全部时间花在 命令行 终端。 该终端使您可以访问整个系统以及数以千计的强大实用程序。 但是,它默认一次只显示一个命令行会话。 即使终端窗口很大,整个窗口也只显示一个会话。 这会浪费空间,尤其是在大型显示器和高分辨率笔记本电脑屏幕上。 但是,如果您可以将该终端拆分为多个会话呢? 这正是 tmux 派上用场的地方——有人说是必不可少的。

安装并启动 tmux

tmux 实用程序的名称来自终端多路复用器或多路复用器。 换句话说,它可以将您的单个终端会话分成多个会话。 它同时管理窗口和窗格:

  • 一个窗口是一个单一的视图——也就是说,你的终端中显示的各种各样的东西。
  • 窗格是该视图的一部分,通常是终端会话。

首先,在您的系统上安装 tmux 实用程序。 你需要有 sudo 为您的用户帐户设置(如果需要,请查看本文以获取说明)。

sudo dnf -y install tmux

运行该实用程序以开始:

多路复用器

状态栏

起初,除了出现在终端底部的状态栏之外,似乎什么都没有发生:

底部栏向您显示:

  • [0] – 您处于 tmux 服务器创建的第一个会话中。 编号从 0 开始。服务器跟踪所有会话,无论它们是否还活着。
  • 0:username@host:~ – 关于该会话的第一个窗口的信息。 编号从 0 开始。窗口活动窗格中的终端由主机名 host 的用户名拥有。 当前目录是~(主目录)。
  • * – 表明您当前在此窗口中。
  • “hostname”——你正在使用的 tmux 服务器的主机名。
  • 此外,还会显示该特定主机上的日期和时间。

当您向会话中添加更多窗口和窗格时,信息栏将发生变化。

tmux 基础知识

拉伸终端窗口以使其更大。 现在让我们尝试一些简单的命令来创建额外的窗格。 默认情况下,所有命令都以 Ctrl+b 开头。

  • 按 Ctrl+b、“ 水平拆分当前单个窗格。 现在您在窗口中有两个命令行窗格,一个在顶部,一个在底部。 请注意,新的底部窗格是您的活动窗格。
  • 按 Ctrl+b、% 以垂直拆分当前窗格。 现在您在窗口中有三个命令行窗格。 新的右下窗格是您的活动窗格。

请注意当前窗格周围突出显示的边框。 要在窗格中导航,请执行以下任一操作:

  • 按 Ctrl+b,然后按箭头键。
  • 按 Ctrl+b、q。 数字会短暂出现在窗格中。 在此期间,您可以点击所需窗格的编号。

现在,尝试使用窗格运行不同的命令。 例如,试试这个:

  • 使用 ls 在顶部窗格中显示目录内容。
  • 在左下窗格中启动 vi 以编辑文本文件。
  • 在右下窗格中运行 top 以监视系统上的进程。

显示将如下所示:

tmux 会话,三个窗格运行不同的命令

到目前为止,这 example 只使用了一个带有多个窗格的窗口。 您还可以在会话中运行多个窗口。

  • 要创建一个新窗口,请按 Ctrl+b、c。 请注意,状态栏现在显示两个正在运行的窗口。 (敏锐的读者会在上面的截图中看到这一点。)
  • 要移动到上一个窗口,请按 Ctrl+b,p。
  • 如果要移动到下一个窗口,请按 Ctrl+b、n。
  • 要立即移动到特定窗口 (0-9),请按 Ctrl+b,然后按窗口编号。

如果你想知道如何 close 一个窗格,只需使用 exit、logout 或 Ctrl+d 退出该特定命令行 shell。 一旦您 close 窗口中的所有窗格,该窗口也会消失。

拆卸和连接

tmux 最强大的功能之一是能够分离和重新连接到会话。 分离时,您可以让窗口和窗格保持运行。 此外,您甚至可以完全退出系统。 然后稍后您可以登录到同一系统,重新连接到 tmux 会话,然后查看您离开它们的所有窗口和窗格。 当您分离时,您正在运行的命令会继续运行。

要从会话中分离,请按 Ctrl+b、d。 会话消失,您将回到标准的单外壳。 要重新连接到会话,请使用以下命令:

tmux attach-session

当您与主机的网络连接不稳定时,此功能也是救命稻草。 如果您的连接失败,会话中的所有进程将继续运行。 连接恢复后,您可以像什么都没发生一样继续工作。

如果这还不够,除了每个会话的多个窗口和窗格之外,您还可以运行多个会话。 您可以列出这些,然后按编号或名称附加到正确的一个:

tmux list-sessions

进一步阅读

本文仅涉及 tmux 功能的皮毛。 您可以通过许多其他方式操纵会话:

  • 将一个窗格与另一个交换
  • 将窗格移动到另一个窗口(在相同或不同的会话中!)
  • 设置自动执行您喜欢的命令的键绑定
  • 默认情况下,使用您喜欢的设置配置一个 ~/.tmux.conf 文件,以便每个新会话看起来都是您喜欢的方式

有关所有命令的完整说明,请查看以下参考资料:

图片由 雷吉纳尔 – 最初发布到 不飞溅.