linux中终端复用工具tmux的介绍

1.tmux简介

         tmux是终端复用工具,类似的工具有screen,但tmux比screen的功能要强大许多,比如说tmux可以将窗口拆成多个pane,而screen不支持窗口拆分。

         tmux是典型的C/S架构。当我们使用tmux new-session -s session-name时,就会在机器上运行一个tmux的进程(可以使用ps aux | grep tmux来查看),这个就是tmux的server,它管理了所有的session。而客户端就是我们用tmux attach-session detach到指定session后以及基于该session的一系列操作都是tmux客户端的范畴了。


         tmux有如下几个元素:
(1)session 
一组窗口的集合,通常用来概括同一个任务。session可以有自己的名字便于任务之间的切换。
(2)window 
单个可见窗口。Windows有自己的编号,也可以认为和ITerm2中的Tab类似。
(3)pane
将window划分成小块的面板,类似于Vim中 C-w +v 后的效果。


2.使用tmux的好处

(1)复用终端

可以在一个terminal下打开多个终端,也可以在当前window进行各种split,即可以同时打开多个显示范围更小的终端。

(2)保持工作现场

在使用SSH的环境下,由于网络不稳定等原因,ssh断连从而导致工作现场的丢失。而tmux即使是终端退出,人能将会话保存在后台中。可以使用tmux再次attach到之前的会话,直接回到原来的工作环境,不但提高了工作 效率,还降低了风险,增加了安全性。

(3)后台执行继续执行未完成工作

例如我们使用scp工具向一台远程主机拷贝数据。当我们退出tmux session,并人为关闭终端(或者ssh客户端和tmux寄存的机器异常断连),scp任务将继续执行传输数据。screen能够达到同样的效果。这个功能相当于nohup后台执行耶!


3.tmux的安装

(1)在官网上http://tmux.github.io/上下载tmux的tarball,以及tmux依赖的libevent和ncurses的tarball。

(2)源码安装ncurses、libevent

(3)设置CFLAGS变量,形如:

CFLAGS="-I libevent安装目录/include" LDFLAGS="-L/usr/local/libevent安装目录/lib" ./configure --prefix=tmux安装目录
#eg:  CFLAGS="-I/usr/pro/libevent2/include" LDFLAGS="-L/usr/pro/libevent2/lib"
(4)源码安装tmux

(5)将libevent的动态库,cp到指定目录,操作如下:

#如果是32位linux
sudo cp /usr/pro/libevent2/lib/libevent-2.0.so.5 /usr/lib
#如果是64位linux
sudo cp /usr/pro/libevent2/lib/libevent-2.0.so.5 /usr/lib64
(6)将tmux的bin加入环境变量PATH中
#在/etc/profile中添加如下内容
export TMUX_HOME=tmux的安装目录
export PATH=$TMUX_HOME/bin:$PATH

#然后用source执行/etc/profile文件
source /etc/profile

4.tmux的常用操作

tmux new-session -s session-name   #创建名称为session-name的session。亦可简写成tmux new -s session-name
tmux list-sessions #列出当前有哪些session,亦可简写成tmux ls
tmux attach-session -t target-session #attach到名称为target-session的session上,亦可简写成tmux attach -t target-session
tmux kill-session -t target-session #kill到名称为target-session的session
tmux kill-session -a #kill掉所有的sessions
tmux  #如果直接执行tmux,后面不附带任何的参数,那么默认下带上了new-session命令,表示创建一个新的session,由于没有-t参数,新session的名字为数字

5.tmux工具内部的操作快捷键

在tmux中有一个前置操作,tmux默认的前置操作是CTRL+b(亦可以修改)。在tmux使用任何快捷按键时,都首先需要执行这个前置操作。tmux工具在收到前置操作命令时,才会知道接下来的操作是和tmux进行快捷键的操作交互。tmux的常用的快捷操作如下:

#基本的操作
prefix ?  ->>列出所有快捷键;按q返回

#和session相关的操作
prefix d  ->>离开当前会话,可暂时返回shell界面,输入tmux attach能够重新进入之前会话
prefix s  ->>查看所有会话并可以进行会话的切换
prefix $  ->>重命名当前Session

#和window相关的操作
prefix c  ->>新建窗口
prefix &  ->>关闭窗口
prefix w  ->>显示当前session中所有window并可以进行窗口的切换
prefix 窗口号   ->>窗口切换
prefix space    ->>切换到上一个活动的窗口
prefix ,	    ->>重命名当前窗口

#和pane相关操作
prefix “    ->>将当前面板上下分屏
prefix %    ->>将当前面板左右分屏
prefix x    ->>关闭当前分屏
prefix 方向键	    ->>移动光标选择对应面板
prefix o    ->>切换到下一个panel
prefix q    ->>查看所有窗格的编号
prefix z    ->>暂时把一个窗体放到最大,再次prefix z会还原(在tmux 1.8及以后版本中才支持)

6.

tmux的配置文件是 ~/.tmux.conf,这个文件可能不存在,可以自己创建。我们可以在该配置文件中添加定制化的配置,比如将默认的前置操作Ctrl+b修改为其他的操作。


参考资料来源于:

http://unkeltao.com/blog/2014/04/29/intsall-tmux/

http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/tmux.1?query=tmux&sec=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值