【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 的学习曲线可能有点陡峭,但一旦掌握,它能极大提高终端工作效率。建议从基本会话管理开始,逐步尝试窗格分割和自定义配置。