tmux:适用于重度命令行 Linux 用户的终端复用器
创始人
2024-03-02 01:46:29
0

tmux 是 终端复用器 terminal multiplexer 的缩写,它允许用户在单个窗口中创建或启用多个终端(垂直或水平),当你处理不同的问题时,可以在单个窗口中轻松访问和控制它们。

它使用客户端-服务器模型,允许在用户之间共享会话,也可以将终端连接到 tmux 会话。我们可以根据需要轻松移动或重新排列虚拟控制台。终端会话可以从一个虚拟控制台自由切换到另一个。

tmux 依赖于 libeventncurses 库。tmux 在屏幕底部提供了一个状态行,它显示当前 tmux 会话的有关信息,例如当前窗口编号、窗口名称、用户名、主机名、当前时间和日期。

启动 tmux 时,它会在一个单独窗口上创建一个新的会话,并将其显示在屏幕上。它允许用户在同一个会话中创建任意数量的窗口。

许多人说它类似于 screen,但我不这么认为,因为它提供了许多配置选项。

注意: Ctrl+b 是 tmux 中的默认命令前缀,因此,要在 tmux 中执行任何操作,你必须先输入该前缀然后输入所需的选项。

tmux 特性

  • 创建任意数量的窗口
  • 在一个窗口中创建任意数量的窗格
  • 它允许垂直和水平分割
  • 分离并重新连接窗口
  • 客户端-服务器架构,这允许用户之间共享会话
  • tmux 提供许多配置技巧

建议阅读:

如何安装 tmux 命令

大多数 Linux 系统默认预安装 tmux 命令。如果没有,按照以下步骤安装。

对于 Debian/Ubuntu,使用 APT-GET 命令APT 命令来安装:

$ sudo apt install tmux

对于 RHEL/CentOS,使用 YUM 命令来安装:

$ sudo yum install tmux

对于 Fedora,使用 DNF 命令来安装:

$ sudo dnf install tmux

对于 Arch Linux,使用 Pacman 命令来安装:

$ sudo pacman -S tmux

对于 openSUSE,使用 Zypper 命令来安装:

$ sudo zypper in tmux

如何使用 tmux

在终端上运行以下命令来启动 tmux 会话。启动 tmux 后,它会在一个新窗口中创建新会话,并将使用你的用户账户自动登录到你的默认 shell。

$ tmux

你会得到类似于我们上面的截图。tmux 附带状态栏,显示有关当前会话详细信息、日期、时间等。

状态栏信息如下:

  • [0]:它表示由 tmux 服务器创建的会话号。默认情况下,它从 0 开始。
  • 0:bash:表示会话号、命令行提示符(这里的 bash 表示 shell 名称)。
  • *:这表示该窗口现在处于活动状态。
  • 主机名:显示服务器的完全主机名。
  • 日期与时间:显示当前日期和时间。

(LCTT 译注:tmux 的状态可以根据需要定制,也会因环境、版本的不同而不同。)

如何拆分窗口

tmux 允许用户垂直或水平分割窗口,称为窗格。每个窗格都包含自己独立运行的终端实例。我们来看看如何做到这一点。

按下 Ctrl+b, % 来垂直分割窗格。

按下 Ctrl+b, " 来水平分割窗格。

如何在窗格之间移动

假设,我们创建了一些窗格,希望在它们之间移动,这该怎么做?如果你不知道怎么做,那么使用 tmux 就没有意义了。使用以下控制键执行操作。在窗格之间移动有许多方法。

  • Ctrl+b, ← - 选择左边的窗格
  • Ctrl+b, → - 选择右边的窗格
  • Ctrl+b, ↑ - 选择上边的窗格
  • Ctrl+b, ↓ - 选择下边的窗格
  • Ctrl+b, { - 来向左交换窗格
  • Ctrl+b, } - 来向右交换窗格
  • Ctrl+b, o - 切换到下一个窗格(从左到右,从上到下)
  • Ctrl+b, ; - 移动到先前活动的窗格

出于测试目的,我们将在窗格之间移动。现在我们在 pane2 中,它展示了 lsb_release -a 命令的输出。

我们将移动到 pane0,它显示 uname -a 命令的输出。

如何打开/创建新窗口

你可以在一个终端内打开任意数量的窗口。

  • Ctrl+b, c 来创建一个新窗口。
  • Ctrl+b, n 移动到下一个窗口。
  • Ctrl+b, p 移动到上一个窗口。
  • Ctrl+b, 0 ~ Ctrl+b, 9 立即移动到特定窗口。
  • Ctrl+b, l 移动到先前选择的窗口。

我有两个窗口,第一个窗口有三个窗格,其中包含操作系统版本信息,top 命令输出和内核信息。

第二个窗口有两个窗格,其中包含 Linux 发行版 logo 信息。使用以下命令执行操作:

Ctrl+b, w 以交互方式选择当前窗口。

如何缩放窗格

你正在一些非常小的窗格中工作,并且你希望将其缩小以进行进一步的工作。要做到这一点,使用以下键绑定。

目前我们有三个窗格,我在 pane1 工作,它使用 top 命令显示系统活动信息,我将缩放它。

缩放窗格时,它将隐藏所有其它窗格,并只显示窗口中的缩放窗格。

Ctrl+b, z 缩放窗格,并再次按下它使缩放窗格恢复原状。

显示窗格信息

要了解窗格编号及其大小,运行以下命令。

Ctrl+b, q 可简单显示窗格索引。

显示窗口信息

要知道窗口编号、布局大小,与窗口关联的窗格数量及其大小等,运行以下命令。

只需运行 tmux list-windows 即可查看窗口信息。

如何调整窗格大小

你可能需要调整窗格大小来满足你的要求。你必须按下 Ctrl+b, :,然后在页面底部的黄色颜色条上输入以下详细信息。

在上一部分中,我们打印了窗格索引,它同时也显示了窗格大小。为了测试,我们要向增加 10 个单元。参考以下输出,该窗格将 pane1 和 pane2 的大小从 55x21 增加到 55x31

语法: Ctrl+b, : 然后输入 resize-pane [options] [cells size]

  • Ctrl+b, : 然后输入 resize-pane -D 10 将当前窗格大小向下调整 10 个单元。
  • Ctrl+b, : 然后输入 resize-pane -U 10 将当前窗格大小向上调整 10 个单元。
  • Ctrl+b, : 然后输入 resize-pane -L 10 将当前窗格大小向左调整 10 个单元。
  • Ctrl+b, : 然后输入 resize-pane -R 10 将当前窗格大小向右调整 10 个单元。

分离并重新连接 tmux 会话

tmux 最强大的功能之一是能够在需要时分离和重新连接会话。

运行一个长时间运行的进程,然后按下 Ctrl+b,接着按 d,通过离开正在运行的进程安全地分离你的 tmux 会话。

建议阅读: 如何在断开 SSH 会话后保持进程/命令继续运行

现在,运行一个长时间运行的进程。出于演示目的,我们将把此服务器备份移动到另一个远程服务器以进行灾难恢复(DR)。

$ rsync -avzhe ssh /backup root@192.168.0.161:/backups/week-1/

在分离 tmux 会话之后,你将获得类似下面的输出。

[detached (from session 0)]

运行以下命令以列出可用的 tmux 会话。

$ tmux ls
0: 3 windows (created Tue Jan 30 06:17:47 2018) [109x45]

现在,使用适当的会话 ID 重新连接 tmux 会话,如下所示:

$ tmux attach -t 0

如何关闭窗格和窗口

只需在相应的窗格中输入 exit 或按下 Ctrl-d 即可关闭它,和终端关闭类似。要关闭窗口,按下 Ctrl+b, &

好了,就到这里了,希望你喜欢上它。


via: https://www.2daygeek.com/tmux-a-powerful-terminal-multiplexer-emulator-for-linux/

作者:Magesh Maruthamuthu 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

协创数据(300857)新...
证券之星消息,根据市场公开信息整理,7月16日协创数据(30085...
2026-07-16 22:51:32
「AI新世代」首发大模型原...
本报(chinatimes.net.cn)记者石飞月 上海报道 这...
2026-07-14 23:02:53
阶跃星辰将发布AI智能体手...
阶跃星辰即将发布AI终端品牌、智能体系统及其首款AI智能体手机。此...
2026-07-09 14:34:36
AI手机助手如何引领智能设...
文 | 郭全中 张磊 韦薇 AI手机助手的快速发展不仅正在重塑现有...
2026-06-22 14:39:05
鸿蒙生态设备超13亿台,开...
PChome 5月28日消息,2026开源鸿蒙开发者大会正式召开,...
2026-05-30 05:44:37
秀AI产业硬核实力 华强北...
5月14日,深圳会展中心(福田)1号馆化身“斗秀场”——2026全...
2026-05-16 16:34:43

热门资讯

“Linux 中国” 开源社区... 这是一个艰难的决定 —— 这不是调侃,而是当你真正做出改变了你十几年生活轨迹的决定时,你就会明白这个...
硬核观察 #1263 德国铁路... #1 德国铁路公司招聘 Windows for Workgroups 3.11 管理员该职位要求了解...
人工智能教程(七):Sciki... 在本系列的 上一篇文章 中,我们用 TensorFlow 构建了第一个神经网络,然后还通过 Kera...
关闭 WSL 中正在运行的 L... 以下是使用 WSL 关闭在 Windows 内运行的 Linux 系统的不同方法。你使用 WSL 在...
MX Linux 23.2 “... 最新的 MX Linux 23.2 小版本更新带来了基本的改进和新增功能。MX Linux 推出了 ...
硬核观察 #1262 网络上最... #1 网络上最古老的软件存档库之一即将关闭美国新墨西哥州立大学(NMSU)最近宣布,即将于 2024...
如何在 RHEL 上通过绑定配... 在 Linux 中,你可以根据自己的需要创建高级网络设置,如 网络绑定 Network Bondin...
Linux Matrix 消息... Matrix 用户可以升级 Fractal 6 了!Fractal 是目前 最好的 Matrix 客...
如何通过 VLC 使用字幕 使用 VLC 媒体播放器播放和管理字幕的新手指南。我是一个超级动漫迷,如果你想观看最新的剧集,那么你...
硬核观察 #1261 X 计划... #1 X 计划在奥斯汀建立内容审核总部据报道,该部门将招聘 100 名全职员工,将主要关注 CSE ...