tmux 常用命令总结:从入门到稳定使用的一篇实战博客

tmux 常用命令总结:从入门到稳定使用的一篇实战博客

这篇文章不是"命令大全",而是基于真实使用场景,总结 tmux 在日常开发中的高频用法与坑位。适合刚开始用 tmux、以及"会用但不顺"的阶段。


一、为什么你应该用 tmux

如果你有以下任何一种情况,tmux 都非常值得:

  • 经常 SSH 到服务器
  • 需要同时跑服务、看日志、敲命令
  • 网络不稳定,但任务不能中断
  • 不想开一堆终端窗口

一句话概括 tmux:

tmux 是一个可以"保存现场"的终端管理器


二、tmux 的三个核心概念(必须搞清)

复制代码
session  → 项目 / 工作区
window   → 功能区(类似 Tab)
pane     → 分屏
  • session :一个项目,比如 dev
  • window:不同工作内容,如 claude / server / logs
  • pane:同一窗口内的并行视图

新手常见错误:

  • 一个 session 里堆一堆 pane
  • Claude / 服务 / 日志 全混在一起

三、最基础的 session 命令

bash 复制代码
tmux                  # 新建并进入一个 session
tmux new -s jw-dev     # 创建并命名 session
tmux ls               # 查看所有 session
tmux attach -t jw-dev # 进入指定 session
tmux detach           # 脱离 session(不中断程序)
tmux kill-session -t jw-dev

快捷键(在 tmux 内):

text 复制代码
Ctrl + b d    # detach

四、window:真正的工作分区

常用快捷键

text 复制代码
Ctrl+b c    新建 window
Ctrl+b n    下一个 window
Ctrl+b p    上一个 window
Ctrl+b w    window 列表(最常用)
Ctrl+b ,    重命名 window
Ctrl+b &    关闭 window

经验建议:

  • 一个 window 只做一类事情
  • Claude / Server / Logs 强烈建议分 window

五、pane:效率来源

创建 pane

text 复制代码
Ctrl+b %    左右分屏
Ctrl+b "    上下分屏

pane 操作

text 复制代码
Ctrl+b o        切换 pane
Ctrl+b ↑↓←→     按方向切换
Ctrl+b x        关闭 pane
Ctrl+b z        放大 / 还原 pane(非常好用)
Ctrl+b Space    切换布局

六、滚动与复制:tmux 的高频痛点

进入滚动模式(非全屏程序)

text 复制代码
Ctrl+b [

在 copy-mode(vi 模式)中:

  • j / k:上下滚动
  • /:搜索
  • Space:开始选择
  • Enter:复制
  • Ctrl+b ]:粘贴

七、mouse on 后的真实行为(很多人踩坑)

推荐配置

conf 复制代码
set -g mouse on
set -g history-limit 50000
setw -g mode-keys vi
set -s escape-time 10

常见疑问:

鼠标能滚了,但拖选文字一松手就没了?

这是 tmux 的正常行为

  • 鼠标事件已被 tmux 接管
  • 高亮只是"选择过程",不是系统选中

正确的复制方式

  • 系统复制(最推荐)

    text 复制代码
    Shift + 鼠标拖动

    然后使用 Cmd+C / Ctrl+C

  • tmux 内部复制

    • 鼠标拖选 → 松手
    • Ctrl+b ] 粘贴

记住一句话: 要系统复制,就按 Shift


八、Claude Code / Vim / htop 滚不动?不是你的问题

关键结论

tmux 无法滚动 全屏 TUI 程序的历史输出

原因:

  • TUI 使用 alternate screen
  • 输出不会进入 tmux scrollback

正确使用方式

  • Claude Code 单独一个 window

  • 日志输出:

    • 单独 pane
    • 或 redirect 到文件,用 less / tail -f

不要强行"让 tmux 滚 TUI"


九、一个稳定可用的 tmux 布局示例

复制代码
session: jw-dev

window 0: claude
  └─ Claude Code

window 1: server
  ├─ 启动服务
  └─ tail -f 日志

window 2: shell
  └─ git / 临时命令

这个结构的好处是:

  • 不互相干扰
  • tmux 的滚动能力用在该用的地方

十、最小 tmux.conf(新手友好)

conf 复制代码
set -g mouse on
set -g history-limit 50000
setw -g mode-keys vi
set -s escape-time 10

加载配置:

bash 复制代码
tmux source ~/.tmux.conf

结语

tmux 并不难,难的是:

  • 一开始没人告诉你 该怎么分 window / pane
  • TUI + mouse 的行为很反直觉

一旦理解这些原则:

tmux 负责会话和日志,TUI 负责交互,复制用 Shift

你会发现 tmux 会变成一个非常稳定、值得长期投入肌肉记忆的工具。


如果你已经看到这里,说明你已经超过 80% 的 tmux 用户了 🙂

相关推荐
想逃离铁厂的老铁2 小时前
Day55 >> 并查集理论基础 + 107、寻找存在的路线
java·服务器
小白跃升坊2 小时前
基于1Panel的AI运维
linux·运维·人工智能·ai大模型·教学·ai agent
跃渊Yuey2 小时前
【Linux】线程同步与互斥
linux·笔记
舰长1152 小时前
linux 实现文件共享的实现方式比较
linux·服务器·网络
学***54233 小时前
如何轻松避免网络负载过大
开发语言·网络·php
zmjjdank1ng3 小时前
Linux 输出重定向
linux·运维
路由侠内网穿透.3 小时前
本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)
linux·运维·服务器·网络协议·智能家居
树℡独3 小时前
ns-3仿真之应用层(三)
运维·服务器·ns3
VekiSon3 小时前
Linux内核驱动——基础概念与开发环境搭建
linux·运维·服务器·c语言·arm开发