tmux is a terminal multiplexer built around one core idea: keep your work running and organized across multiple sessions, windows, and panes. If you use the terminal heavily, these are the commands and shortcuts that cover the most common day-to-day tasks.
The most important thing to remember is that Ctrl + b is tmux’s prefix key. Most keyboard shortcuts start with that combination, followed by another key.
Session management
Everything in tmux starts with a session, so this is the part worth learning first.
Create a session
# 创建默认名称的会话(会话名自动为 0、1、2...)
tmux
# 创建指定名称的会话(推荐,便于管理)
tmux new -s <会话名> # 例:tmux new -s dev
Creating named sessions is usually the better option, especially when you regularly juggle several projects.
List existing sessions
tmux ls # 或 tmux list-sessions
# 输出示例:dev: 1 windows (created Mon Dec 8 10:00:00 2025) [80x24]
Detach from a session without closing it
This is one of tmux’s most useful features: you can leave a session running and come back later.
# 在 tmux 会话内执行:快捷键 Ctrl + b + d(推荐)
# 或命令行执行(会话内/外均可)
tmux detach -t <会话名> # 例:tmux detach -t dev
Reattach to a session
# 接入指定名称的会话
tmux attach -t <会话名> # 例:tmux attach -t dev
# 若只有一个会话,可简化
tmux a
Rename a session
# 会话内执行
tmux rename-session -t <旧名> <新名> # 例:tmux rename-session -t dev prod
# 快捷键:Ctrl + b + $(会话内直接重命名)
Kill a session
# 杀死指定会话
tmux kill-session -t <会话名> # 例:tmux kill-session -t dev
# 杀死所有会话
tmux kill-server
# 会话内直接退出(关闭当前会话):exit 或 Ctrl + d
Switch between sessions
# 在不同会话间切换
tmux switch -t <会话名> # 例:tmux switch -t test
# 快捷键:Ctrl + b + s(会话列表交互式切换)
Window management
A single session can contain multiple windows. You can think of them as tabs inside that session.
Create a new window
# 会话内执行命令
tmux new-window -n <窗口名> # 例:tmux new-window -n log
# 快捷键(推荐):Ctrl + b + c(创建默认名称窗口)
List windows in the current session
tmux list-windows # 或 tmux lsw
Switch windows
# 按窗口编号切换(编号从 0 开始)
tmux select-window -t <窗口编号> # 例:tmux select-window -t 1
# 快捷键:
# Ctrl + b + <编号>(直接切换到对应编号窗口,如 Ctrl+b+1)
# Ctrl + b + n(切换到下一个窗口)
# Ctrl + b + p(切换到上一个窗口)
# Ctrl + b + w(窗口列表交互式切换)
Rename a window
tmux rename-window -t <窗口编号> <新名> # 例:tmux rename-window -t 0 mysql
# 快捷键:Ctrl + b + ,(会话内直接重命名当前窗口)
Close a window
tmux kill-window -t <窗口编号> # 例:tmux kill-window -t 1
# 快捷键:Ctrl + b + &(会话内关闭当前窗口,需确认)
# 窗口内执行 exit 也可关闭当前窗口
Pane management
Panes are where tmux becomes especially efficient. One window can be split into multiple panes so you can watch logs, edit files, and run commands side by side.
Split panes
# 水平拆分(上下)
tmux split-window # 或 tmux splitw
# 垂直拆分(左右)
tmux split-window -h
# 快捷键:
# Ctrl + b + "(水平拆分)
# Ctrl + b + %(垂直拆分)
Move between panes
tmux select-pane -t <窗格编号> # 例:tmux select-pane -t 1
# 快捷键:
# Ctrl + b + 方向键(上下左右切换)
# Ctrl + b + o(按顺序切换下一个窗格)
Resize panes
# 调整当前窗格高度(上下),数字为行数
tmux resize-pane -U <数字> # 向上,例:tmux resize-pane -U 5
tmux resize-pane -D <数字> # 向下
# 调整当前窗格宽度(左右),数字为列数
tmux resize-pane -L <数字> # 向左
tmux resize-pane -R <数字> # 向右
# 快捷键:Ctrl + b + 按住 Ctrl + 方向键(微调窗格大小)
Close a pane
tmux kill-pane -t <窗格编号> # 例:tmux kill-pane -t 1
# 快捷键:Ctrl + b + x(关闭当前窗格,需确认)
# 窗格内执行 exit 也可关闭当前窗格
Toggle pane zoom
If you temporarily want one pane to fill the whole window, tmux can zoom it and restore it later.
# 快捷键:Ctrl + b + z(当前窗格全屏,再按一次还原)
Other commands worth keeping handy
View the built-in key binding help
# 快捷键:Ctrl + b + ?(弹出帮助列表,按 q 退出)
Copy and paste with tmux copy mode
# 1. 进入复制模式:Ctrl + b + [
# 2. 移动光标到复制起始位置,按 Space 开始选择
# 3. 移动光标到复制结束位置,按 Enter 复制
# 4. 粘贴:Ctrl + b + ]
Refresh terminal size
This is useful when the terminal display gets out of sync after resizing your window.
# 快捷键:Ctrl + b + Ctrl + r(刷新终端大小)
Practical usage examples
Quickly start a development session
tmux new -s dev -n editor # 创建名为 dev 的会话,默认窗口名 editor
Split panes and work in both at once
Ctrl + b + % # 垂直拆分窗格
Ctrl + b + 右方向键 # 切换到右侧窗格
vim . # 右侧编辑代码
Ctrl + b + 左方向键 # 切回左侧窗格
npm run dev # 左侧启动服务
Keep remote server work alive after disconnecting
ssh user@server # 登录远程服务器
tmux new -s server-dev # 创建会话
# 执行耗时任务(如部署、日志监控)
Ctrl + b + d # 分离会话,断开 ssh 连接
# 重新登录后恢复
ssh user@server
tmux a -t server-dev
High-frequency shortcut reference
<table> <thead> <tr> <th>Shortcut</th> <th>Action</th> </tr> </thead> <tbody> <tr> <td>Ctrl + b + d</td> <td>Detach session</td> </tr> <tr> <td>Ctrl + b + s</td> <td>Switch sessions</td> </tr> <tr> <td>Ctrl + b + c</td> <td>Create a new window</td> </tr> <tr> <td>Ctrl + b + n/p</td> <td>Next/previous window</td> </tr> <tr> <td>Ctrl + b + %</td> <td>Split pane vertically</td> </tr> <tr> <td>Ctrl + b + "</td> <td>Split pane horizontally</td> </tr> <tr> <td>Ctrl + b + Arrow keys</td> <td>Move between panes</td> </tr> <tr> <td>Ctrl + b + z</td> <td>Zoom/restore pane</td> </tr> <tr> <td>Ctrl + b + ?</td> <td>Show shortcut help</td> </tr> <tr> <td>Ctrl + b + [ / ]</td> <td>Enter copy mode / paste</td> </tr> </tbody> </table>Once you are comfortable with the basic operations for sessions, windows, and panes, tmux becomes much easier to use efficiently. In practice, those three layers are the foundation of almost everything you do inside it.