linux-tmux使用
linux-tmux使用
前篇
- Tmux使用手册 - https://louiszhai.github.io/2017/09/30/tmux/
概念说明
tmux 可以新建多个 会话 (session), 每个会话又可以创建多个 窗口 (Windows), 每个窗口又可以分离出 多个 面板 (panel)
一般情况下, 一个 会话 就够了, 剩下的就多开 窗口 和 面板就行了
安装
Ubuntu
1
$ apt install tmux
定义别名
方便使用
1
2
3
4
5
6
7
8$ vim ~/.bash_profile
alias tnew='tmux new -s'
alias tls='tmux ls'
alias td='tmux detach'
#alias ta='tmux attach -t'
alias ta='tmux a'
alias tkill='tmux kill-session -t'
配置
常用配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14$ vim ~/.tmux.conf
set -g history-file ~/.tmux_history
set-option -g allow-rename off
set-option -g mouse on
set -g base-index 1
set -g pane-base-index 1
set -g escape-time 0
setw -g mode-keys vi
# 关闭鼠标右键弹出菜单
unbind-key -n MouseDown3Pane
unbind-key -n MouseDown3Status
unbind-key -n MouseDown3StatusLeft
重载配置
修改 tmux 的配置文件
1
$ vim ~/.tmux.conf
使之生效可以通过重启 tmux 服务, 或者 tmux 里使用重载命令
- 在 tmux 会话中, 使用
Ctrl b + :
进入到 命令模式 - 然后使用重载命令
1
source-file ~/.tmux.conf
- 在 tmux 会话中, 使用
踩坑
面板卡死
- 偶尔出现面板卡死的情况, 直接
Ctrl b + x
kill 掉面板, 新建一个面板
常用命令
进入选择模式时, 按 q 都可以退出选择
会话
创建会话
1
$ tmux new -s [session_name] // 推荐指定名字的会话
离开会话 (不是退出, 后台继续运行)
1
$ tmux detach
- 或者 Ctrl b + d
进入会话
1
2$ tmux a # 默认进入上一次离开的回话
$ tmux a -t [demo] # 进入到名称为 demo 的会话列出所有会话
1
2
3
4
5$ tmux ls
0: 1 windows (created Tue Aug 13 17:08:47 2024)
3: 4 windows (created Wed Aug 14 16:26:25 2024)
hello: 2 windows (created Wed Aug 14 16:55:42 2024)- 这个命令可以在 会话 里/外 都可以运行
会话跳转, 使用 Ctrl b + s
1
2
3(0) + 0: 1 windows
(1) + 3: 4 windows (attached)
(2) + hello: 2 windows关闭会话
- 关闭指定会话
1
$ tmux kill-session -t [session_name]
- 关闭所有会话
1
$ tmux kill-server
- 关闭指定会话
重命名会话
不在会话中
1
$ tmux rename-session -t [old_name] [new_name]
已经在会话中
1
$ tmux rename-session [new_name]
重载会话: Ctrl b + r
系统
- Ctrl b + [ : 进入复制模式 (也就是用鼠标随便框选),按
q
退出 - Ctrl b + ] : 粘贴复制模式中复制的文本
- Ctrl b + d : 离开会话 (不是退出, 后台继续运行)
窗口
分离
- Ctrl b + c : 创建窗口
- Ctrl b + & : 关闭窗口
切换
- Ctrl b + 0~9 : 切换到 指定 窗口
- Ctrl b + p : 切换到 上一个 窗口
- Ctrl b + n : 切换到 下一个 窗口
其他
- Ctrl b + , : 重命名当前窗口
选择
- Ctrl b + w : 列出所有 会话 及其 窗口
- Ctrl b + f : 快速定位到窗口(输入关键字匹配窗口名称, 找不到 或 不输入 则会列出所有 会话 及其 窗口, 等价于 Ctrl b + w 一样)
面板
- 分离
- Ctrl b + “ : 当前面板上下一分为二,下侧新建面板
- Ctrl b + % : 当前面板左右一分为二,右侧新建面板
- Ctrl b + x : 关闭当前面板(关闭前需输入
y
orn
确认) - Ctrl b + ! : 将当前面板移动到新的窗口打开(原窗口中存在两个及以上面板有效)
- 置换 (调换面板位置, 并不是移动光标)
- Ctrl b + { : 向前 置换当前面板
- Ctrl b + } : 向后 置换当前面板
- 切换 (移动光标)
- Ctrl b + q : 显示面板编号,在编号消失前输入对应的数字可切换到相应的面板
- Ctrl b + ; : 在最后使用的两个面板间来回切换
- Ctrl b + 方向键 : 切换到目标方向的面板
- Ctrl b + o : 选择下一面板
- 其他
- Ctrl b + z : 最大化当前面板,再重复一次按键后恢复正常(v1.8版本新增)
- Ctrl b + t : 显示时钟
- Ctrl b + : 命令模式后输入
respawn-pane -k
: 重启面板
- 布局
- Ctrl b + 空格键 : 在自带的面板布局中循环切换
- Ctrl b + Ctrl o : 顺时针旋转当前窗口中的所有面板
- Ctrl b + Alt 方向键 : 以 5 个单元格为单位调整当前面板边缘
- Ctrl b + Ctrl 方向键 : 以 1 个单元格为单位调整当前面板边缘(Mac下被系统快捷键覆盖)