一文了解终端神器tmux
本文总结一下tmux常用技巧,方便自己查阅。
1 简介
tmux 是一个终端复用器,非常有用,有如下两个最明显的优点:
- 分屏
- 允许断开Terminal连接后,继续运行进程。(这样网络断开重连后,可以重新登录之前的工作界面)
这段引用阮一峰《Tmux 使用教程》,链接见参考。
Tmux 就是会话与窗口的"解绑"工具,将它们彻底分离。
(1)它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。
(2) 它可以让新窗口"接入"已经存在的会话。
(3)它允许每个会话有多个连接窗口,因此可以多人实时共享会话。
(4)它还支持窗口任意的垂直和水平拆分。
2 tmux的安装及使用
2.1 tmux的安装
Ubuntu上:
sudo apt-get install tmux
2.2 tmux的几个组件
tmux使用C/S模型构建,主要包含这几个模块:
模块 | 含义 |
---|---|
server | 服务器,输入tmux命令时就开启了一个服务器。 |
session | 会话,一个服务器可以包含多个会话,可理解为任务。 |
window | 窗口,一个会话可以包含多个窗口。 |
panel | 面板,一个窗口可以包含多个面板。 |
这几个组件形成了树状关系,如下图所示:
server
/ \
session
/
window
/
panel
这样就实现了复杂的终端复用器,其各个组件的操作如下:
(基本是一条命令与一个快捷键对应,掌握常用的几个命令即可)
server操作:
删掉server:
tmux kill-server # 相当于删掉所有session
session操作:
作用 | 命令 | 快捷键 |
---|---|---|
启动 | tmux # 会自动生成一个id为0的session 或: tmux new -s your-session-name # 建立时显式地说明session的名字 注意:不能嵌套创建session |
|
删除session | tmux kill-session -t your-session-name | ctrl+d |
解绑 | tmux detach | ctrl+b d |
接入会话 | tmux attach -t your-session-name | |
切换session | tmux switch -t your-session-name | |
重命名session | tmux rename-session -t old-session new-session | Ctrl+b $ |
列出session | tmux ls 或: tmux list-session |
ctrl+b s |
window操作:
作用 | 命令 | 快捷键 |
---|---|---|
新建window | tmux new-window 或: tmux new-window -n your-window-name |
ctrl+b c |
刪除window | tmux kill-window -t window-number | ctrl+b & |
切换窗口 | tmux select-window -t |
ctrl+b p # 切换到上一个窗口 ctrl+b n # 切换到下一个窗口 ctrl+b w # 从列表中选择窗口 |
重命名窗口 | tmux rename-window -t old_name new_name | ctrl+b , |
panel操作:
作用 | 命令 | 快捷键 |
---|---|---|
划分为左右两个窗格 | tmux split-window | ctrl+b % |
划分为上下两个窗格 | tmux split-window -h | ctrl+b “ |
关闭panel | tmux kill-pane | Ctrl+b x |
移动光标 | tmux select-pane -U 光标切换到上方窗格 tmux select-pane -D 光标切换到下方窗格 tmux select-pane -L 光标切换到左边窗格 tmux select-pane -R 光标切换到右边窗格 |
Ctrl+b 上下左右键,鼠标见第3节 |
上下翻屏 | ctrl+b [ 上下键 pageUp pageDown |
2.3 tmux的一般操作流程
一般的使用流程:
- 新建会话tmux new -s my_session
- 在 Tmux 窗口运行所需的程序
- 按下快捷键Ctrl+b d将会话分离
- 下次使用时,重新连接到会话tmux attach-session -t my_session。
3 tmux的快捷键
Tmux 窗口有大量的快捷键,所有快捷键都要通过前缀键唤起。默认的前缀键是Ctrl+b,即先按下Ctrl+b,快捷键才会生效。
列出所有快捷键,及其对应的 tmux 命令:
tmux list-keys
3.1 怎么修改前缀键?
使用Ctrl+b并不是很顺手,可以自定义前缀键,如将ctrl+b修改为ctrl+x可进行如下操作:
方法1: 在命令行下输入如下命令
$ tmux set -g prefix C-x
方法2:修改配置文件
$ vi ~/.tmux.conf
set -g prefix C-x
unbind C-b
bind C-x send-prefix
$ tmux source ~/.tmux.conf
3.2 启用鼠标控制
tmux2.1 之后版本可以这么设置,这样就可以用鼠标选择panel了
$ vi ~/.tmux.conf
set-option -g mouse on
$ tmux source ~/.tmux.conf
开启了鼠标控制后,会发现---无法直接通过鼠标来选择复制文字了
可以用Shift+鼠标选择,多panel情况下,Shift+Alt+鼠标选择
4 一些问题的解决办法
问题1:有时候 tmux 突然中断之后,再次进入时,会发现屏幕被限制在了一个很小的范围内,其他的地方全部变成了点 “.”, 或者“烫”
解决办法:进入时使用 -d 参数
问题2:Ubuntu的tmux环境,复制东西到tmux上,鼠标右键粘贴不了
解决办法: 按住shift键,然后鼠标右键粘贴
参考: