tmux 使用
为什么使用 tmux
在操作 linux 的使用,使用 ssh 连接终端是很常见的事情,但是有几个问题
- 无法切换。比如 ssh 上去一台机器,然后执行正常操作,因为要查看目录,或者其他操作,需要频繁的切换到其他目录然后切换回来。一般的解决方式是开启多个终端。
- 如果在 ssh 远程执行一个耗时长的命令,容易因为 ssh 断开而中断。
- 断开 ssh 后,下次再连接又得重新 cd 到之前的目录,打开之前的文件。
tmux 就可以解决这些问题。ssh 上一台服务器,在上面开启 tmux,然后正常像平时 ssh 操作一样。需要查看其它目录,直接通过 tmux 建立一个新的窗口,操作完再切回当前窗口即可。ssh 断开后,tmux 会帮你在服务器上继续维护当前的会话状态,下次 ssh 上来打开 tmux,所有的窗口,文件都和上次关不一样。同理,长时间的命令也不会受 ssh 断开影响。
安装
直接安装
sudo apt-get install tmux
编译安装新版
sudo apt-get update
sudo apt-get install -y libevent-dev libncurses-dev make
cd /tmp
wget https://github.com/tmux/tmux/releases/download/2.7/tmux-2.7.tar.gz
tar xvzf tmux-2.7.tar.gz
cd tmux-2.7/
./configure && make
sudo make install
cd ..
rm -rf ./tmux-2.7*
有时需要手动在当前目录下复制 tmux 二进制文件。
基本概念
session:会话,可以理解一个 tmux 实例。
window:窗口,一个 tmux session 可以有多个窗口,tmux 的窗口类似常见的 tab 页。
pane:面板,默认创建窗口之后有一个面板,如果分屏之后则窗口有了多个面板。
基本操作
创建一个 session
// 直接 tmux 也可以创建一个 session,但是名字是默认的。
tmux new -s <session_name>
暂存 session
可以将 session 临时保存,只要不重启机器,session 就会保存着
tmux detach
打开 session
tmux a -t <session_name>
操作速查表
tmux 配置文件
tmux 的配置文件在 ~/.tmux.conf
在 tmux 中更新配置,先按下Ctrl+b
指令前缀,然后按下系统指令:
,进入到命令模式后输入source-file ~/.tmux.conf
,回车后生效。
// 快速选择面板
// -r 表示可以重复按键。比如 prefix r r 就代表 prefix r prefix r
// 其中按键延时可以通过 repeat-time 来设置。一般为 500ms
bind -r h select-pane -L
bind -r l select-pane -R
bind -r h select-pane -U
bind -r j select-pane -D
// 向终端发送 prefix-key
// send-prefix
// 关闭自动重命名
set -wg automatic-rename off
// 使用当前 pane 路径创建新的 window,pane
bind -c new-window -c "#{pane_current_path}"
bind % split-window -c "#{pane_current_path}"
bind '"' split-window -c "#{pane_current_path}"
// 设置文本复制模式
setw -g mode-keys vi
Tmux resurrect
Tmux resurrect 可以支持在电脑重启之后恢复 tmux 的状态。
安装过程如下
cd ~/.tmux
mkdir plugins
cd plugins
git clone https://github.com/tmux-plugins/tmux-resurrect.git
安装后在 ~/.tmux.conf 中增加一行配置
run-shell ~/.tmux/plugins/tmux-resurrect/resurrect.tmux
至此安装成功,按下 prefix + r
重载tmux配置。
Tmux Resurrec提供如下两个操作:
- 保存,快捷指令是
prefix
+Ctrl + s
,tmux状态栏在保存开始,保存后分别提示”Saving…”,”Tmux environment saved !”。 - 恢复,快捷指令是
prefix
+Ctrl + r
,tmux状态栏在恢复开始,恢复后分别提示”Restoring…”,”Tmux restore complete !”。
保存时,tmux会话的详细信息会以文本文件的格式保存到~/.tmux/resurrect
目录,恢复时则从此处读取,由于数据文件是明文的,因此你完全可以自由管理或者编辑这些会话状态文件(如果备份频繁,记得定期清除历史备份)。
不使用配置启动 tmux
用的时候用户目录下已经有别人配置了的 .tmux.conf,但是与自己的使用习惯不一样,可以自己另外指定配置启动。
tmux -f my.conf new -s mysession
# 或者使用默认配置
tmux -f /dev/null new -s mysession
真彩色开启
移动窗口
进入命令模式(默认 ctrl+b :)
# 将 3 号窗口和 1 号窗口交换位置
swap-window -s 3 -t 1
# 将当前窗口和 0 号窗口交换位置
swap-window -t 0
支持鼠标复制
#开启鼠标支持
set-option -g mouse on
参考
Read other posts