TMUX

这篇文章是阮一峰编写的 Tmux 使用教程,旨在介绍这款强大的终端复用器(terminal multiplexer)的基本概念和常用操作。以下是文章的主要内容总结: https://www.ruanyifeng.com/blog/2019/10/tmux.html

1. Tmux 是什么?

  • 核心功能:Tmux 实现了“会话”(session)与“窗口”(window)的解绑。
  • 解决痛点:传统终端中,关闭窗口会导致会话结束、进程终止(例如 SSH 断线后任务丢失)。Tmux 允许会话在后台持续运行,用户可以随时重新连接(attach)到之前的会话,恢复工作状态。
  • 主要优势
    • 单个窗口访问多个会话。
    • 新窗口可接入已有会话。
    • 支持多人实时共享会话。
    • 支持窗口的任意垂直和水平拆分。

2. 基本用法

  • 安装:支持 Ubuntu/Debian (apt-get)、CentOS/Fedora (yum) 和 Mac (brew)。
  • 启动与退出:输入 tmux 启动;输入 exit 或按 Ctrl+d 退出当前窗口。
  • 前缀键(Prefix Key):所有快捷键需先按前缀键触发,默认为 Ctrl+b(即先按 Ctrl+b,松开后再按功能键)。

3. 核心操作指南

A. 会话管理 (Session)

  • 新建tmux new -s <名称>
  • 分离(后台运行):快捷键 Ctrl+b d 或命令 tmux detach。这是最常用的操作,用于暂时离开但保持程序运行。
  • 重连tmux attach -t <名称或编号>
  • 查看列表tmux ls
  • 其他:支持切换 (switch)、重命名 (rename-session) 和杀死 (kill-session) 会话。

B. 窗格操作 (Pane) - 分屏功能

Tmux 可以将一个窗口分割成多个窗格,每个窗格独立运行命令。

  • 划分
    • Ctrl+b %:左右划分。
    • Ctrl+b ":上下划分。
  • 切换光标Ctrl+b + 方向键(↑↓←→)。
  • 调整大小Ctrl+b + Ctrl + 方向键(或 Alt + 方向键,视配置而定)。
  • 关闭窗格Ctrl+b x
  • 全屏/还原Ctrl+b z

C. 窗口管理 (Window)

除了分屏,Tmux 还支持在一个会话内创建多个类似浏览器标签页的“窗口”。

  • 新建Ctrl+b c
  • 切换Ctrl+b n (下一个), Ctrl+b p (上一个), 或 Ctrl+b <数字> (直接跳转)。
  • 重命名Ctrl+b ,

4. 最简工作流程

文章推荐了一个最简单的使用闭环:

  1. 新建会话:tmux new -s my_session
  2. 运行程序。
  3. 暂时离开:按 Ctrl+b d 分离会话。
  4. 下次回来:tmux attach -t my_session 恢复现场。

5. 其他提示

  • 可以通过 tmux list-keys 查看所有快捷键。
  • 可以通过修改配置文件 ~/.tmux.conf 来自定义行为(如修改前缀键、开启鼠标支持等)。
  • 文章底部评论区包含大量用户实战经验,如解决 SSH 断线问题、鼠标模式开启方法 (set -g mouse on) 以及常用快捷键的补充。

总的来说,这是一篇非常适合开发者的入门指南,强调了 Tmux 在保持长时间运行任务和高效管理多个终端任务方面的价值。