一、这是个啥东东
tmux 是指通过一个终端登录远程主机并运行后,在其中可以开启多个控制台的终端复用软件。那他有什么过人之处,可以展露头角?
- split窗口。可以在一个terminal下打开多个终端,也可以对当前屏幕进行各种split,即可以 同时打开多个显示范围更小的终端。
- 在使用SSH的环境下,避免网络不稳定,导致工作现场的丢失。想象以下场景, 你在执行一条命令的过程中,由于网络不稳定,SSH连接断开了。这个时候,你就不知道之前 的那条命令是否执行成功。如果此时你打开了很多文件,进入了较深层次的目录,由于网络 不稳定,SSH连接断开。重新连接以后,你又不得不重新打开那些文件,进入那个深层次的 目录。如果使用了tmux,重新连接以后,就可以直接回到原来的工作环境,不但提高了工作 效率,还降低了风险,增加了安全性。
二、安装(ubuntu环境)
sudo apt install tmux
三、基础概念(回话、窗口、面板)
根据tmux的定义,在开启了tmux服务器后,会首先创建一个会话,而这个会话则会首先创建一个窗口,其中仅包含一个面板;也就是说,这里看到的所谓终端控制台应该称作tmux的一个面板,虽然其使用方法与终端控制台完全相同。
tmux使用C/S模型构建,主要包括以下单元模块:
- server服务器。输入tmux命令时就开启了一个服务器。
- session会话。一个服务器可以包含多个会话
- window窗口。一个会话可以包含多个窗口。
- pane面板。一个窗口可以包含多个面板。
四、常规使用
五、定制自己的tmux
5.1 解决tmux终端没有配色
在~/.tmux.conf文件中添加如下代码,如果没有这个文件就自己创建一个。
#Display color
set -g default-terminal “screen-256color”
然后重启tmux服务器,或者直接在回话中先输入ctrl + b
,然后输入:source-file ~/.tmux.conf
启用配置
5.2 更改默认的prefix(ctrl + b
)
这个看个人喜好,我个人感觉ctrl键和b键间距有点远,感觉ctrl + x
更加方便,所以在配置文件中添加如下代码
#设置前缀为Ctrl + a
set -g prefix C-a
#与此同时,取消默认的前缀按键:
#解除Ctrl+b 与前缀的对应关系
unbind C-b
然后在终端输入ctrl+b
,再输入:source-file ~/.tmux.conf
使配置生效。
每次为了让改动生效,输入这么长一行,感觉很麻烦,有没有!可以直接绑定一个快捷键,配置语句如下:
#将r 设置为加载配置文件,并显示"reloaded!"信息
bind r source-file ~/.tmux.conf ; display “Reloaded!”
更改完以后,只需要按 prefix + r
就可以使配置生效。
5.3 更改切换面板(pane)的快捷键设置
为了使用vim的习惯无缝对接,改成了使用h、j、k、l
来切换窗口,配置命令如下:
#up
bind-key k select-pane -U
#down
bind-key j select-pane -D
#left
bind-key h select-pane -L
#right
bind-key l select-pane -R
键入prefix + r
使配置生效
5.4 复制模式
- 输入
prefix + [
进入复制模式; - 按
space
开始复制,移动光标选择复制区域 - 按
Enter
复制并退出copy-mode。 - 将光标移动到指定位置,按
PREIFX + ]
粘贴
复制的时候像vim一样移动,只需要在配置文件(~/.tmux.conf)中如下语句
setw -g mode-keys vi
更改后有没有感觉有点像vim的可视模式。
5.5 其他更高级的配置
可以参考这个 repository.
参考文献
[1] tmux的使用方法和个性化配置
[2] ubuntu 18.04中使用tmux教程