Tmux
1、Tmux简介
Tmux 就是会话与窗口的”解绑/绑定”工具。会话是用户与计算机之间的临时交互,与进程对应。窗口是接收/反馈输入输出的界面,例如一个terminal窗口,可以输入指令和显示指令执行结果。如果会话和窗口绑定了,那么关闭窗口,会话及其对应的进程都将被关闭。反之解绑后,即使窗口被误关闭,会话及其进程依然继续存在运行。
安装:
# Ubuntu 或 Debian
$ sudo apt-get install tmux
# CentOS 或 Fedora
$ sudo yum install tmux
# Mac
$ brew install tmux
启动和退出:
# 自动新建一个会话和窗口并进入
$ tmux
# 退出当前窗口并删除窗口和会话,或Ctrl+d
$ exit
前缀键(prefix):
默认前缀键为Ctrl+b,可以修改
Tmux 的一些特点:
- 允许单个terminal中管理和访问多个会话,即可以同时运行和管理多个命令行程序 在列出的会话中选择一个接入,即会创建一个新的窗口和所选择的会话绑定。
- 允许一个会话同时被多个terminal访问,允许一个会话包含多个窗口。前者可以实现多人实时共享会话,后者可以扩充一个会话的可操作范围
- 允许一个窗口被任意水平和垂直拆分为多个窗格,每个窗格都可作为一个独立的终端执行指令。
2、会话(session)
# 新建会话
$ tmux new -s <session-name> # tmux外使用
$ tmux # tmux外使用,默认名称0、1、2,依次递推
# 分离会话,退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行
$ tmux detach # tmux内使用
Ctrl+b d # tmux内使用
# 显示所有会话
$ tmux ls #或者 tmux list-session,tmux外使用
Ctrl+b s # tmux内使用,可以快速切换会话
# 接入会话
$ tmux attach -t <session-name> # tmux外使用
$ tmux a -t <session-name> # tmux外使用
# 杀死会话
$ tmux kill-session -t <session-name> # tmux外使用
# 切换会话
$ tmux switch -t <session-name> # tmux内使用
# 重命名会话
$ tmux rename-session -t 0 <new-name> # 将0号会话重命名。tmux外使用
Ctrl+b $ # tmux内使用
3、窗口(window)
# 新建窗口
$ tmux new-window -n <window-name> # tmux内使用
# 切换窗口
$ tmux select-window -t <window-name> # tmux 内使用
# 重命名窗口
$ tmux rename-window <new-name> # tmux 内使用
# 窗口快捷键,tmux内使用
Ctrl+b c:创建一个新窗口,状态栏会显示多个窗口的信息。
Ctrl+b p:切换到上一个窗口(按照状态栏上的顺序)。
Ctrl+b n:切换到下一个窗口。
Ctrl+b <number>:切换到指定编号的窗口,其中的<number>是状态栏上的窗口编号。
Ctrl+b w:显示所有窗口的列表,可从中选择进入某个窗口。
Ctrl+b ,:重命名当前窗口。
4、窗格(pane)
# 划分窗格
--- 划分上下两个窗格
$ tmux split-window [-v] # 快捷键 Ctrl+b "
--- 划分左右两个窗格
$ tmux split-window -h # 快捷键 Ctrl+b %
# 移动光标
$ tmux select-pane -U # 光标切换到上方窗格
$ tmux select-pane -D # 光标切换到下方窗格
$ tmux select-pane -L # 光标切换到左边窗格
$ tmux select-pane -R # 光标切换到右边窗格
Ctrl+b <arrow key> # 快捷键
# 交换窗格位置
--- 当前窗格上移(和上一个窗格交换)
$ tmux swap-pane -U # 快捷键 Ctrl+b {
--- 当前窗格下移(和下一个窗格交换)
$ tmux swap-pane -D # 快捷键 Ctrl+b }
# 窗格快捷键
Ctrl+b Ctrl+o:所有窗格向前移动一个位置,第一个窗格变成最后一个窗格。
Ctrl+b Alt+o:所有窗格向后移动一个位置,最后一个窗格变成第一个窗格。
Ctrl+b x:关闭当前窗格。
Ctrl+b !:将当前窗格拆分为一个独立窗口。
Ctrl+b z:当前窗格全屏显示,再使用一次会变回原来大小。
Ctrl+b Ctrl+<arrow key>:按箭头方向调整窗格大小。
Ctrl+b q:显示窗格编号。
5、其他命令
# 列出所有快捷键,及其对应的 Tmux 命令
$ tmux list-keys
# 列出所有 Tmux 命令及其参数
$ tmux list-commands
# 列出当前所有 Tmux 会话的信息,tmux内使用
$ tmux info
# 查看Tmux版本
$ tmux -V
# 重新加载当前的 Tmux 配置,tmux外使用
$ tmux source-file ~/.tmux.conf
# 鼠标翻页
--- 方式一
Ctrl+b [: 进入翻页状态,滚动鼠标翻页,q 退出翻页状态。xshell中 shift+鼠标滚轮 即可直接翻页
--- 方式二,更改后右键粘贴有问题,复制粘贴需使用 ctrl+shift+c/v
$ echo "set-option -g mouse on" >> ~/.tmux.conf # >>为追加,>为覆盖
$ tmux source-file ~/.tmux.conf
5、保存和加载会话
-
安装插件:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
-
添加配置到~/.tmux.conf文件:
set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-resurrect' set -g @plugin 'tmux-plugins/tmux-continuum' set -g @continuum-save-interval '15' set -g @continuum-restore 'on' set -g @resurrect-capture-pane-contents 'on' # Other config ... run -b '~/.tmux/plugins/tpm/tpm'
-
重新加载配置文件:
tmux source ~/.tmux.conf
-
安装插件:
# 在tmux内使用快捷键安装插件,安装后可以即可使用保存和加载会话功能 Ctrl+b I
-
保存和加载会话快捷键
# 保存会话 Ctrl+b Ctrl+s # 加载会话 Ctrl+b Ctrl+r