tmux使用笔记

youncyb 发布于 22 天前 183 次阅读 linux


tmux 使用的详细笔记,包括鼠标设置、命令历史绑定、从源码编译、安装 tmux-resurrecttmux-continuum 插件以实现会话持久化的步骤。同时还介绍了常见问题解决方法,如更改配置后重启 tmux 服务,以及 trzsz 工具的安装,方便在 tmux 中进行文件安全传输。

1. 设置鼠标操作

tmux2.1之前版本:

tmux set-option -g mouse-select-pane on
tmux set-option -g mouse-resize-pane on
tmux set-option -g mouse-select-window on
tmux set-window-option -g mode-mouse on

开启鼠标模式后,复制文本需要按住shit进行选择。

tmux 2.1 之后

tmux set-option -g mouse on

2. bash绑定历史命令

~/.inputrc文件写入如下内容:

"\e[A": history-search-backward
"\e[B": history-search-forward
set show-all-if-ambiguous on
set completion-ignore-case on


## 或者一步到位
echo IlxlW0EiOiBoaXN0b3J5LXNlYXJjaC1iYWNrd2FyZAoiXGVbQiI6IGhpc3Rvcnktc2VhcmNoLWZvcndhcmQKc2V0IHNob3ctYWxsLWlmLWFtYmlndW91cyBvbgpzZXQgY29tcGxldGlvbi1pZ25vcmUtY2FzZSBvbgo=|base64 -d > ~/.inputrc && bind -f ~/.inputrc

接着运行:bind -f ~/.inputrc

3. tmux编译

1. 安装依赖

yum -y install libtermcap-devel ncurses-devel libevent-devel readline-devel
yum -y install gcc automake byacc

2. 安装

git clone https://github.com/tmux/tmux.git
cd tmux
./autogen.sh
./configure
make && make install

4. tmux 插件

1. TPM

tmux plugin manager 是专门用于管理tmux插件。

1. vim ~/.tmux.conf

添加3个插件: set的部分,会在安装好TPM后通过tmux session中快捷键安装

set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'

run '~/.tmux/plugins/tpm/tpm'

2. 安装tpm

1. git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
2. 按`<Prefix> + I` 进行上速set -g指定的插件安装(Prefix指代ctrl+b)

3. 查看目录

如果安装成功,可以在tmux目录下看到下述3个插件

<img src=“tmux.assets/image-20210827140042460.png” alt=“image-20210827140042460” style=“zoom:50%;” />

2. 设置tmux-resurrect

tmux-resurrect插件用于恢复session,比如服务器重启。

1. vim ~/.tmux.conf

开启保存bash历史,保存panel布局和vim状态。

set -g @resurrect-save-bash-history 'on'
set -g @resurrect-capture-pane-contents 'on'
set -g @resurrect-strategy-vim 'session'

2. 使用方法

Ctrl+b Ctrl+s 保存
Ctrl+b Ctrl+r 恢复

5.tmux new conf

当环境存在多个tmux session,为了不对原有的tmux做出破坏行为,所以新建一个配置 ~/.tmux/hcl/tmux.conf

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back && \
curl -o /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo && \
yum makecache && \
yum -y install epel-release && \
yum -y install libtermcap-devel ncurses-devel libevent-devel readline-devel unzip && \
yum -y install gcc automake byacc&& \
unzip -q tmux.zip && \
cd tmux/ && ./autogen.sh &&\
./configure --prefix=/usr/local/tmux3 && \
ln -sf /usr/local/tmux3/bin/tmux /usr/local/bin/tmux && \
make && make install && \
mkdir -p ~/.tmux/hcl/ && \
mkdir -p ~/.tmux/hcl/plugins && \
cd ../ && mv tpm tmux-continuum tmux-resurrect ~/.tmux/hcl/plugins/ && \
cat <<EOF > ~/.tmux/hcl/tmux.conf
set-option -g mouse on
set-environment -g TMUX_PLUGIN_MANAGER_PATH '~/.tmux/hcl/plugins'

set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'

set -g @resurrect-strategy-vim 'session'
set -g @resurrect-capture-pane-contents 'on'
set -g @resurrect-save-bash-history 'on'

set -g @continuum-restore 'on'
set -g @continuum-save-interval '15'
set -g status-right 'Continuum status: #{continuum_status}'

run  '~/.tmux/hcl/plugins/tpm/tpm'
run-shell '~/.tmux/hcl/plugins/tmux-resurrect/resurrect.tmux'
run-shell '~/.tmux/hcl/plugins/tmux-continuum/continuum.tmux'
EOF

运行方式:

tmux3 -f ~/.tmux/hcl/tmux.conf -L hcl new -s xxxx

问题

改变配置文件 ~/.tmux.conf后,重启tmux,发现无效。

原来tmux有个服务进程,客户进程重启时不会解析配置。

可以:

tmux kill-server

或者:

tmux source-file ~/.tmux.conf

或者在tmux中:

Ctrl+b :source-file ~/.tmux.conf

安装 trzsz

centos

echo '[trzsz]
name=Trzsz Repo
baseurl=https://yum.fury.io/trzsz/
enabled=1
gpgcheck=0' | sudo tee /etc/yum.repos.d/trzsz.repo

sudo yum install trzsz -y

ubuntu

sudo apt update && sudo apt install software-properties-common
sudo add-apt-repository ppa:trzsz/ppa && sudo apt update

sudo apt install trzsz