最近看到一个介绍关于tmux,有了它,就能在Linux机器上为所欲为了,哦不,是更有效率的工作了。
简介
tmux是一个优秀的终端复用软件,即使非正常掉线,也能保证当前的任务运行,这一点对于 远程SSH访问特别有用,网络不好的情况下仍然能保证工作现场不丢失!此外,tmux完全使用键盘 控制窗口,实现窗口的切换功能。
简单地说,tmux对于编程人员来说主要有两个功能(这应该也是tmux的主要功能):
split窗口。可以在一个terminal下打开多个终端,也可以对当前屏幕进行各种split,即可以 同时打开多个显示范围更小的终端。
在使用SSH的环境下,避免网络不稳定,导致工作现场的丢失。想象以下场景, 你在执行一条命令的过程中,由于网络不稳定,SSH连接断开了。这个时候,你就不知道之前 的那条命令是否执行成功。如果此时你打开了很多文件,进入了较深层次的目录,由于网络 不稳定,SSH连接断开。重新连接以后,你又不得不重新打开那些文件,进入那个深层次的 目录。如果使用了tmux,重新连接以后,就可以直接回到原来的工作环境,不但提高了工作 效率,还降低了风险,增加了安全性。
安装
ubuntu类:
sudo apt-get install tmux
RedHat类:
yum install -y tmux
注如果CentOs 6.x 的软件库里没有 tmux,输入下列命令,下载安装 epel 源,再去执行上面命令
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
使用
这里需要说明一点的是,tmux的任何指令,都包含一个前缀,也就是说,你按了前缀(组合键:默认是Ctrl+b),以后,系统才知道你接下来的指令是发送给tmux的。正确按法:按完组合键松手,然后按其他按键。我常用户的是Ctrl-a “ 模向分隔窗口以及Ctrl-a % 纵向分隔窗口~
下面列出常用的按键:
Ctrl-b ? 显示快捷键帮助
Ctrl-b C-o 调换窗口位置,类似与vim 里的C-w
Ctrl-b 空格键 采用下一个内置布局
Ctrl-b ! 把当前窗口变为新窗口
Ctrl-b " 模向分隔窗口
Ctrl-b % 纵向分隔窗口
Ctrl-b q 显示分隔窗口的编号
Ctrl-b o 跳到下一个分隔窗口
Ctrl-b 上下键 上一个及下一个分隔窗口
Ctrl-b C-方向键 调整分隔窗口大小
Ctrl-b c 创建新窗口
Ctrl-b 0~9 选择几号窗口
Ctrl-b c 创建新窗口
Ctrl-b n 选择下一个窗口
Ctrl-b l 切换到最后使用的窗口
Ctrl-b p 选择前一个窗口
Ctrl-b w 以菜单方式显示及选择窗口
Ctrl-b t 显示时钟
Ctrl-b ; 切换到最后一个使用的面板
Ctrl-b x 关闭面板
Ctrl-b & 关闭窗口
Ctrl-b s 以菜单方式显示和选择会话
Ctrl-b d 退出tumx,并保存当前会话,这时,tmux仍在后台运行,可以通过tmux attach进入 到指定的会话