Tmux
介绍
tmux是一个优秀的终端复用软件,即使非正常掉线,也能保证当前的任务运行,这一点对于 远程SSH访问特别有用,网络不好的情况下仍然能保证工作现场不丢失!此外,tmux完全使用键盘 控制窗口,实现窗口的切换功能。
简单地说,tmux对于我主要有两个功能(这应该也是tmux的主要功能):
split窗口。可以在一个terminal下打开多个终端,也可以对当前屏幕进行各种split,即可以 同时打开多个显示范围更小的终端。
在使用SSH的环境下,避免网络不稳定,导致工作现场的丢失。想象以下场景, 你在执行一条命令的过程中,由于网络不稳定,SSH连接断开了。这个时候,你就不知道之前 的那条命令是否执行成功。如果此时你打开了很多文件,进入了较深层次的目录,由于网络 不稳定,SSH连接断开。重新连接以后,你又不得不重新打开那些文件,进入那个深层次的 目录。如果使用了tmux,重新连接以后,就可以直接回到原来的工作环境,不但提高了工作 效率,还降低了风险,增加了安全性。
安装
yum install tmux
安装完成后输入命令tmux即可打开软件,界面十分简单,类似一个下方带有状态栏的终端控制台; 不出意外,这时候你会跟我第一次一样,觉得tmux没什么牛逼的。
主要功能会话,窗口,面板
根据tmux的定义,在开启了tmux服务器后,会首先创建一个会话,而这个会话则会首先创建一个 窗口,其中仅包含一个面板;也就是说,这里看到的所谓终端控制台应该称作tmux的一个面板, 虽然其使用方法与终端控制台完全相同。
tmux使用C/S模型构建,主要包括以下单元模块:
- server服务器。输入tmux命令时就开启了一个服务器。
- session会话。一个服务器可以包含多个会话
- window窗口。一个会话可以包含多个窗口。
- pane面板。一个窗口可以包含多个面板。
会话
- C-x s # 以菜单的方式查看并选择会话
- C-x :new-session # 新建一个会话
- C-x d # 退出并保存会话
- 终端运行 tmux attach # 返回会话
- tmux new -s session
- tmux new -s session -d # 在后台建立会话
- tmux ls # 列出会话
- tmux attach -t session # 进入某个会话
常用按键
这里需要说明一点的是,tmux的任何指令,都包含一个前缀,也就是说,你按了前缀(一组按键, 默认是Ctrl+b)以后,系统才知道你接下来的指令是发送给tmux的。
- C-b ? 显示快捷键帮助
- C-b C-o 调换窗口位置,类似与vim 里的C-w
- C-b 空格键 采用下一个内置布局
- C-b ! 把当前窗口变为新窗口
- C-b “ 横向分隔窗口
- C-b % 纵向分隔窗口
- C-b q 显示分隔窗口的编号
- C-b o 跳到下一个分隔窗口
- C-b 上下键 上一个及下一个分隔窗口
- C-b C-方向键 调整分隔窗口大小
- C-b c 创建新窗口
- C-b 0~9 选择几号窗口
- C-b c 创建新窗口
- C-b n 选择下一个窗口
- C-b l 切换到最后使用的窗口
- C-b p 选择前一个窗口
- C-b w 以菜单方式显示及选择窗口
- C-b t 显示时钟
- C-b ; 切换到最后一个使用的面板
- C-b x 关闭面板
- C-b & 关闭窗口
- C-b s 以菜单方式显示和选择会话
- C-b d 退出tumx,并保存当前会话,这时,tmux仍在后台运行,可以通过tmux attach进入 到指定的会话
配置
我们先来看一下几个配置,这些配置才是我离不开tmux的原因:-)。tmux的配置文件是 ~/.tmux.conf,这个文件可能不存在,你可以自己新建。下面开始配置,首先,有没有 觉得tmux的前缀按起来太不方便了,ctrl与b键隔得太远,很多人把它映射成C+a,也就 是在配置文件(~/.tmux.conf)中加入下面这条语句:
set -g prefix C-a # 设置前缀为Ctrl + a
与此同时,取消默认的前缀按键
unbind C-b # 解除Ctrl+b 与前缀的对应关系
配置完以后,重启tmux起效,或者先按C+b,然后输入:,进入命令行模式, 在命令行模式下输入:
source-file ~/.tmux.conf
你也可以跟我一样,在配置文件中加入下面这句话,以后改了只需要按前缀+r了。
bind r source-file ~/.tmux.conf ; display "Reloaded!"
将r 设置为加载配置文件,并显示"reloaded!"信息
非常感谢来自下面的指导: