引言
为什么用Tmux? 平时工作时,经常需要通过远程连接到Linux服务器进行操作,但是这样很是不方便。如果运行需要耗时的程序,是不可以中断连接的,但是通过tmux可以实现中断连接后程序继续运行,并且可以在任何其他电脑上重新连接,类似的软件还有GNU screen等。
安装
因为没有root权限,所以先下载源码,然后运行文章最后的脚本进行安装, 此时tmux将被安装到$HOME/tmux/bin文件夹下,最后根据提示添加环境变量,这种方式也可以避免安装tmux时提示libevent not found的问题。
使用
1、输入‘tmux’进入,或者‘tmux new -s SessionName’进入有名称的会话
2、ctrl+b d 退出会话,回到shell的终端环境
3、 tmux attach 返回会话
4、 tmux ls 终端环境查看会话列表
5、tmux a -t session1 从终端环境返回指定会话
6、ctrl+b % 垂直分屏
7、ctrl+b " 水平分屏
8、ctrl+b z 最大化当前pane。再按一次后恢复。
9、ctrl+b x 关闭当前使用中的pane,操作之后会给出是否关闭的提示,按y确认即关闭。
10、ctrl+b Up|Down|Left|Right 根据按箭方向选择切换到某个pane。
11、ctrl+b Space (空格键) 对当前窗口下的所有pane重新排列布局,每按一次,换一种样式。
用鼠标滚轮来卷动窗口内容
默认情况下,需要用C-b [ 进入copy-mode,然后才能用PgUp/PgDn/光标/Ctrl-S等键在copy-mode中移动。
我们想使用鼠标进行滚动,需要在~/.tmux.conf中添加set -g mouse on
前缀修改为ctrl+x,需要在~/.tmux.conf中添加set -g prefix C-x
其他常用组合键
参考文献:
[3] tmux 终端复用详解
脚本:
#!/bin/bash
# Script for installing tmux on systems where you don't have root access.
# tmux will be installed in $HOME/tmux/bin.
# It's assumed that wget and a C/C++ compiler are installed.
# exit on error
set -e
# create our directories
mkdir -p $HOME/tmux $HOME/tmux_tmp
# move source files for tmux, libevent, and ncurses to tmp dir
mv tmux-2.7.tar.gz $HOME/tmux_tmp
mv ncurses-6.1.tar.gz $HOME/tmux_tmp
mv libevent-2.1.8-stable.tar.gz $HOME/tmux_tmp
cd $HOME/tmux_tmp
# extract files, configure, and compile
############
# libevent #
############
tar xvzf libevent-2.1.8-stable.tar.gz
cd libevent-2.1.8-stable
./configure --prefix=$HOME/tmux --disable-shared
make
make install
cd ..
############
# ncurses #
############
tar xvzf ncurses-6.1.tar.gz
cd ncurses-6.1
./configure --prefix=$HOME/tmux
make
make install
cd ..
############
# tmux #
############
tar xvzf tmux-2.7.tar.gz
cd tmux-2.7
./configure CFLAGS="-I$HOME/tmux/include -I$HOME/tmux/include/ncurses" LDFLAGS="-L$HOME/tmux/lib -L$HOME/tmux/include/ncurses -L$HOME/tmux/include" CPPFLAGS="-I$HOME/tmux/include -I$HOME/tmux/include/ncurses" LDFLAGS="-static -L$HOME/tmux/include -L$HOME/tmux/include/ncurses -L$HOME/tmux/lib"
make
cp tmux $HOME/tmux/bin
cd ..
# cleanup
rm -rf $HOME/tmux_tmp
echo "$HOME/tmux/bin/tmux is now available. You can optionally add $HOME/tmux/bin to your PATH. i.e. export PATH=$PATH:$HOME/tmux/bin"