【linux】一文掌握 Tmux 的各种指令(Tmux备忘清单)
文章目录
- 一、Tmux概述
- 1.1 Tmux介绍
- 1.2 Tmux 安装
- 1.3 基本概念
 
- 二、基本使用
- 2.1 会话操作
- 2.2 窗口操作
- 2.3 窗格操作
 
- 三、高级功能
- 3.1 复制模式
- 3.2 会话共享
- 3.3 自定义配置 (~/.tmux.conf)
- 3.4 实用技巧
 
- 四、常见问题解决
 
一、Tmux概述
1.1 Tmux介绍
Tmux (Terminal Multiplexer) 是一个强大的终端复用工具,允许用户在单个终端窗口中创建、访问和控制多个终端会话。以下是 Tmux 的全面详解:
1.2 Tmux 安装
Ubuntu/Debian
sudo apt-get install tmux
CentOS/RHEL
sudo yum install tmux
macOS (Homebrew)
brew install tmux
1.3 基本概念
- 会话(Session):一组窗口的集合,可以随时断开和重新连接
- 窗口(Window):相当于一个标签页,包含一个或多个窗格
- 窗格(Pane):窗口中的实际终端区域,可以水平或垂直分割
二、基本使用
2.1 会话操作
| 命令/快捷键 | 说明 | 
|---|---|
| tmux | 启动新会话 | 
| tmux new -s <name> | 创建命名会话 | 
| tmux ls | 列出所有会话 | 
| tmux attach -t <name> | 重新连接会话 | 
| tmux kill-session -t <name> | 终止指定会话 | 
| Ctrl+b d | 分离当前会话(保持后台运行) | 
2.2 窗口操作
| 快捷键 | 说明 | 
|---|---|
| Ctrl+b c | 创建新窗口 | 
| Ctrl+b & | 关闭当前窗口 | 
| Ctrl+b n | 切换到下一个窗口 | 
| Ctrl+b p | 切换到上一个窗口 | 
| Ctrl+b <number> | 切换到指定编号窗口 | 
| Ctrl+b , | 重命名当前窗口 | 
2.3 窗格操作
| 快捷键 | 说明 | 
|---|---|
| Ctrl+b % | 垂直分割窗格 | 
| Ctrl+b " | 水平分割窗格 | 
| Ctrl+b <arrow> | 在窗格间移动 | 
| Ctrl+b x | 关闭当前窗格 | 
| Ctrl+b z | 放大/缩小当前窗格 | 
| Ctrl+b Space | 切换窗格布局 | 
| Ctrl+b Alt+<arrow> | 调整窗格大小 | 
三、高级功能
3.1 复制模式
- 进入复制模式:Ctrl+b [
- 使用方向键移动光标
- 按 Space开始选择,Enter复制
- 粘贴:Ctrl+b ]
3.2 会话共享
# 用户A创建会话
tmux new -s shared# 用户B连接到同一会话
tmux attach -t shared
3.3 自定义配置 (~/.tmux.conf)
# 设置前缀键为Ctrl+a
unbind C-b
set -g prefix C-a
bind C-a send-prefix# 启用鼠标支持
set -g mouse on# 设置状态栏
set -g status-bg blue
set -g status-fg white# 重新加载配置
bind r source-file ~/.tmux.conf \; display "Reloaded!"
3.4 实用技巧
-  快速创建开发环境: tmux new -s dev -n editor \; \send-keys 'vim' C-m \; \split-window -v \; \send-keys 'htop' C-m \; \split-window -h \; \send-keys 'watch -n 1 df -h' C-m
-  保存和恢复会话: # 保存 tmux list-windows -a -F "#S:#W:#{pane_current_path}" > ~/tmux-sessions.txt# 恢复 while IFS=: read -r session window dir; dotmux new-window -d -t "$session" -n "$window" -c "$dir" done < ~/tmux-sessions.txt
-  批量执行命令: tmux list-panes -s -F '#{pane_id}' | xargs -I {} tmux send-keys -t {} 'command' C-m
四、常见问题解决
-  鼠标滚动问题: 
 在.tmux.conf中添加:set -g terminal-overrides 'xterm*:smcup@:rmcup@'
-  颜色显示异常: 
 确保终端支持256色:set -g default-terminal "screen-256color"
-  SSH断开后会话丢失: 
 使用tmux或screen保持会话:ssh user@host -t 'tmux attach || tmux new'
Tmux 的学习曲线可能有点陡峭,但一旦掌握,它能极大提高终端工作效率。建议从基本会话管理开始,逐步尝试窗格分割和自定义配置。
