如何使用tmux会话管理远程连接
Linux管理员经常需要同时处理多项任务,例如维护多台服务器的连接以管理服务、维护软件、更新配置和查看日志文件。与反复建立和关闭连接相比,从单个工作站的shell建立多个终端更加便捷高效。
终端复用器(tmux)应用程序使管理员能够连接和断开多个会话而无需关闭终端(否则会终止其中运行的进程)。本文将为管理员介绍tmux的基础知识,包括安装过程、基本用法、配置选项以及使tmux成为实用工具的核心快捷键绑定。
tmux的主要优势与功能
将tmux集成到标准Linux系统管理 workflow 中可带来多项主要优势:
- 保持断开连接后仍持续运行的持久会话,使软件编译或脚本执行等长时间运行任务能够继续
- 提供垂直和水平分屏窗格,用于在本地shell中查看多个会话
- 支持通过快捷键绑定实现高效任务切换
大多数管理员会先建立SSH连接再运行tmux。SSH提供安全性,而tmux则提供灵活性。
除了持久会话,tmux还支持许多其他用例:
- 将终端窗口拆分为多个窗格以同时运行多个应用程序(如系统管理任务和Python开发)
- 将多个用户连接到同一会话以实现协作、结对编程或故障排除
- 对多系统进行持续监控,包括各种日志文件和服务
如何安装tmux
Tmux为Linux和macOS提供了多种安装选项,因为当前大多数发行版通常不包含它。安装过程假设操作系统使用首选的包管理器。与许多Linux应用程序一样,tmux是开源的,用户可以下载源代码并自行编译程序。
基于Red Hat的Linux发行版 对于RHEL、Fedora、AlmaLinux和Rocky Linux等发行版,输入:
|
|
基于Debian的发行版 对于包括Ubuntu和Linux Mint在内的Debian系发行版,输入:
|
|
macOS Mac用户通常依赖Homebrew包管理器。安装Homebrew后,运行以下命令添加tmux:
|
|
Windows Windows用户必须依赖Windows Subsystem for Linux(WSL)。安装WSL后,使用apt包管理器安装tmux:
|
|
用户还可以在OpenBSD、FreeBSD和NetBSD上运行tmux。
tmux基本操作指南
输入tmux
命令运行应用程序。运行后,使用Ctrl+B组合键启动命令。在Linux系统上按下Ctrl+B会通知tmux接下来的按键是tmux本身的命令。
例如,断开tmux会话依赖于d
命令。确保先按下Ctrl+B,通知tmux后续命令(断开连接的D
命令)适用于它。
启动和分离会话
首先启动一个新的tmux会话。为其指定唯一的会话名称——最好是描述性的。会话运行后,它将在断开会话连接后继续执行脚本和命令。
输入以下命令创建名为backup-script的新会话:
|
|
启动tmux会话后,使用SSH连接远程系统。例如,tmux窗口中的命令可能类似于ssh damon@192.168.2.200
。
使用SSH会话启动备份脚本、执行系统管理任务或更新软件。
使用D
键从tmux会话分离。不要忘记使用Ctrl+B通知tmux下一个命令适用于它:
|
|
显示现有会话
使用tmux ls
命令显示现有会话,如下所示:
|
|
重新附加到会话
使用attach子命令并指定会话名称重新附加到运行中的会话:
|
|
此示例说明了描述性名称的重要性。
终止会话
使用以下命令终止现有会话:
|
|
如何在tmux中使用复制模式
Linux发行版中的标准本地命令历史功能在tmux中可能无法可靠工作。相反,应依赖tmux自身的复制模式。
复制模式允许用户从终端历史记录中选择和复制命令,并将其粘贴到tmux窗格中。
tmux复制模式过程遵循六个步骤:
- 按下Ctrl+B,然后按
[
键 - 使用导航键(通常是箭头键)移动到所需文本
- 按空格键开始文本选择过程
- 使用导航键选择文本
- 选择文本后按Enter键
- 使用
]
键粘贴文本
tmux快捷键绑定快速参考指南
使用以下快速参考列表充分利用可用的快捷键绑定:
Ctrl+B C
:创建新窗口Ctrl+B N
:切换到下一个窗口Ctrl+B P
:切换到上一个窗口Ctrl+B W
:列出所有窗口以供选择Ctrl+B %
:垂直拆分当前窗格Ctrl+B "
:水平拆分当前窗格Ctrl+B D
:从当前会话分离
Tmux包含大量额外的快捷键绑定,但这些足以入门。
基本自定义选项
Tmux依赖~/.tmux.conf
文件。由于它存储在用户的主文件夹中,因此不是全局配置,使管理员能够根据自己的偏好自定义tmux。Tmux不会自动创建该文件,但在启动时会检查它。如果用户想要个性化tmux,必须创建该文件并添加自定义设置。
一些常见的配置选项包括:
- 将tmux前缀命令从默认的Ctrl+B调整为Ctrl+A或类似组合
- 启用状态栏颜色、边框和样式以便于窗格识别
- 配置自定义快捷键绑定
- 启动新tmux会话时自动运行特定命令、脚本或程序
高级用户可以将Tmux Plugin Manager添加到他们的系统中。该实用程序支持使用社区开发的插件进行许多额外的自定义。
结合SSH使用tmux
SSH提供了安全连接远程系统的关键方法。Tmux通过支持多个运行的远程会话扩展了其灵活性。用户可以稍后重新附加到这些会话,甚至可以从不同的系统重新附加。例如,这使得可以从办公室的工作站在远程服务器上执行程序,然后从家庭计算机验证其状态。