tmux

  • 2017-07-01
  • 浏览 (1124)

Tmux 是一个工具,用于在一个终端窗口中运行多个终端会话。不仅如此,你还可以通过 Tmux 使终端会话运行于后台或是按需接入、断开会话,这个功能非常实用。

根据tmux的定义,在开启了tmux服务器后,会首先创建一个会话,而这个会话则会首先创建一个窗口,其中仅包含一个面板;也就是说,这里看到的所谓终端控制台应该称作tmux的一个面板,虽然其使用方法与终端控制台完全相同。

tmux使用C/S模型构建,主要包括以下单元模块:
    server服务器。输入tmux命令时就开启了一个服务器。
    session会话。一个服务器可以包含多个会话
    window窗口。一个会话可以包含多个窗口。
    pane面板。一个窗口可以包含多个面板。
    
这里需要说明一点的是,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.conf,这个文件可能不存在,可以自己新建。首先,有没有觉得tmux的前缀按起来太不方便了,ctrl与b键隔得太远,很多人把它映射成C+a,也就是在配置文件(~/.tmux.conf)中加入下面这条语句:

#设置前缀为Ctrl + a
set -g prefix C-a

与此同时,取消默认的前缀按键:

#解除Ctrl+b 与前缀的对应关系
unbind C-b

配置完以后,重启tmux起效,或者先按C+b,然后输入:,进入命令行模式,在命令行模式下输入:
source-file ~/.tmux.conf

复制模式copy-mode
    前缀 [ 进入复制模式
    按 space 开始复制,移动光标选择复制区域
    按 Enter 复制并退出copy-mode。
    将光标移动到指定位置,按 PREIFX ] 粘贴

如果把tmux比作vim的话,那么我们大部分时间都是处于编辑模式,我们复制的时候可不可以像vim一样移动呢?只需要在配置文件(~/.tmux.conf)中加入如下行即可。

#copy-mode 将快捷键设置为vi 模式
setw -g mode-keys vi

会话
    前缀 s 以菜单的方式查看并选择会话
    前缀 :new-session 新建一个会话
    前缀 d 退出并保存会话
    终端运行 tmux attach 返回会话

tmux new -s session  #创建一个新的会话
tmux new -s session -d #在后台建立会话
tmux ls #列出会话
tmux attach -t session #进入某个会话

使当前pane 最大化加入以下配置,前缀+z 就可以是当前面板最大或还原。

bind ^z run "tmux-zoom"

滚屏要进入copy-mode,即前缀+[,然后就可以用上下键来滚动屏幕,退出直接按‘q’键即可。
0  赞