Abel'Blog

我干了什么?究竟拿了时间换了什么?

0%

当然,这是一份为新手准备的 tmux 使用说明文档。

layout: post
title: “tmux用法”
subtitle: ‘tmux用法’
date: 2025-09-29
author: “Abel”
header-style: text
categories:

    • 1-基础
    • tmux
      tags:
  • AI

简介


Tmux 新手入门指南

Tmux(Terminal Multiplexer)是一个强大的终端复用工具,可以让你在一个终端窗口中创建、管理和切换多个终端会话。它最大的好处是,即使你关闭了终端或者断开了 SSH 连接,后台的会话和程序仍然会继续运行。

这份文档将教会你如何开始使用 Tmux,以及掌握一些最核心的概念和命令。

核心概念

在使用 Tmux 前,你需要理解三个基本概念:

  • Session (会话): 类似于一个独立的工作空间,可以包含多个窗口。你可以给会话命名,方便以后重新连接。
  • Window (窗口): 每个会话可以有多个窗口,就像浏览器里的多个标签页。
  • Pane (窗格): 每个窗口可以被分割成多个窗格,每个窗格都是一个独立的终端。

启动和退出

1. 启动一个新的 Tmux 会话

这是你开始使用 Tmux 的第一步。最简单的方式是直接输入 tmux

1
tmux

这会创建一个默认名称的新会话,并立即进入。

如果你想创建一个带有特定名称的会话(强烈推荐),可以使用 -s 参数:

1
tmux new-session -s my-project

这会创建一个名为 my-project 的会话。

2. 退出并分离会话

当你完成了工作,或者需要暂时离开时,你可以分离 (detach) 当前会话。这会让会话在后台继续运行,而你则回到常规的终端。

  • 按下快捷键: Ctrl-b 然后按 d

3. 重新连接到会话

当你需要返回 Tmux 会话继续工作时,你可以使用 attach 命令。

  • 重新连接到最近的会话:
    1
    tmux attach
  • 重新连接到指定名称的会话:
    1
    tmux attach -t my-project

4. 彻底终止会话

当你完全不再需要某个会话时,可以终止它:

1
tmux kill-session -t my-project

常用快捷键

Tmux 的所有快捷键都以一个前缀键开始,默认是 Ctrl-b。这意味着你必须先按下 Ctrl-b,松开,然后再按下一个键来执行操作。

快捷键 (按下 Ctrl-b 后) 描述
c 创建新窗口 (Create)
p 切换到上一个窗口 (Previous)
n 切换到下一个窗口 (Next)
, 重命名当前窗口
% 垂直分割窗格
" 水平分割窗格
Arrow Keys 在窗格之间移动
x 关闭当前窗格

快速参考

  • 查看所有会话: tmux ls
  • 查看所有快捷键: Ctrl-b ?

实践建议

  • 项目化管理: 为每个项目创建一个独立的 Tmux 会话。例如,开发 Web 应用时,可以有一个 web-app 会话,里面包含用于运行服务器、查看日志和编辑代码的多个窗口。
  • 学会分离: 养成在完成工作后分离会话的习惯,而不是直接关闭终端。这样,当你重新连接时,所有工作状态都还在。

希望这份指南能帮助你顺利踏上 Tmux 的旅程!

您可以通过两种方式重命名 tmux 窗口:使用快捷键或使用命令行。


方法一:使用快捷键(最常用)

这是最简单、最快捷的方式。

  1. 首先,按下 tmux 的前缀键,默认是 Ctrl-b
  2. 然后,松开前缀键,按下 , (逗号)。
  3. 这时,在终端底部会弹出一个提示,允许你输入新的窗口名称。输入你想好的名称,然后按回车键确认即可。

方法二:使用命令行

你也可以在 tmux 会话内部执行命令行来重命名窗口。这通常用于脚本或自动化操作中。

  1. 进入 tmux 会话后,按下前缀键 (Ctrl-b)。

  2. 然后,松开前缀键,按下 :

  3. 在底部弹出的命令行中,输入以下命令并按回车:

    1
    rename-window new-name

new-name 替换成你想要的窗口名称。


额外提示

  • 你可以在 tmux.conf 配置文件中修改前缀键,如果你觉得默认的 Ctrl-b 不顺手的话。
  • 给窗口命名可以帮助你更好地组织工作,尤其是在一个会话中打开了多个窗口时。
    • 你也可以使用 rename-window 命令的缩写 renamew

你说的“解除 tmux 窗口”在 tmux 里对应的术语其实叫 detach——就是把当前会话从当前终端“脱开”,但不关闭它,程序还在后台跑。

在 tmux 里有几个常见的“解除”动作👇

1️⃣ 脱离当前 tmux 会话(detach)

在 tmux 里面按:

Ctrl-b d

就会提示:

[detached (from session dev)]

这时 tmux 会话 dev 还在后台跑,你的 shell回到普通终端。
等你下次再想回去:

tmux attach -t dev

2️⃣ 把当前窗口拆到新会话(break window)

如果你想把某个 window 单独拆成一个新 session(相当于“解除绑定”):
• 先 Ctrl-b 然后按 : 进入 tmux 命令行,输入:

break-window

•    或者直接快捷键:

Ctrl-b !

这样当前窗口就会变成一个新的 session。

3️⃣ 关闭窗口(kill window)

如果你不是“解除”,而是想彻底关掉当前窗口:

Ctrl-b &

会问你是否要 kill 掉这个 window。

4️⃣ 彻底退出 tmux 会话(kill session)

在 tmux 外面直接:

tmux kill-session -t dev

💡 所以:
• “解除 tmux 窗口” = Ctrl-b d(脱离整个会话)。
• “把窗口拆成新会话” = Ctrl-b !。
• “关掉窗口” = Ctrl-b &。

你想要的是哪种?(后台运行不退出,还是拆出来新 session?)

1️⃣ 进入复制模式(scroll 模式)
• 默认快捷键:
Ctrl+b 然后按 [
(按完就可以用方向键上下滚动、翻页)

按键
作用
↑ / ↓
按行上/下滚动
PageUp
向上翻一页
PageDown
向下翻一页
Space
也可向下翻一屏(取决于配置)
g
跳到缓冲区顶部
G
跳到缓冲区底部

3️⃣ 退出复制模式

按 q 或 Enter 退出。

mac 键盘上:
• Fn + ↑ = PageUp(向上翻一页)
• Fn + ↓ = PageDown(向下翻一页)