作者 : darcy   时间 : 2016-03-17   浏览 : ...

tmux 是一个优秀的终端复用软件,类似 GNU Screen ,但来自于 OpenBSD,采用 BSD 授权。由于 tmux 允许随时随地断开或重新接入会话(Session),所以最大的作用就是在远程服务器上持久地保存工作状态。

tmux 使用 C/S 模型构建,主要包括以下单元模块:
  • server       :    服务器。输入 tmux 命令时就开启了一个服务器。
  • session      :     会话。一个服务器可以包含多个会话。
  • window      :     窗口。一个会话可以包含多个窗口。
  • pane         :     面板。一个窗口可以包含多个面板。


tmux 的安装:

yum -y install tmux


若要创建一个新的会话,只需要在终端运行如下的命令:

tmux new -s <name-of-my-session>
tmux 管理 sessions 的常用命令:
tmux list-session                                #获取 session 列表,可以简写为:ls
tmux new-session -s <name-of-my-session>         #创建一个会话,可以简写为:new
tmux attach-session -t <name-of-my-session>      #链接一个会话,可以简写为:attach
tmux rename-session -t <name-of-my-session>      #重命名,可以简写为:rename
tmux kill-session -t <name-of-my-session>        #杀死一个会话
tmux source-file ~/.tmux.conf                    #使用~/.tmux.conf的配置

为了使自身的快捷键和其他软件的快捷键互不干扰,Tmux 提供了一个快捷键前缀。当想要使用快捷键时,需要先按下快捷键前缀,然后再按下快捷键。Tmux 所使用的快捷键前缀默认是组合键 Ctrl-b(同时按下 Ctrl 键和 b 键)。例如,假如你想通过快捷键列出当前 Tmux 中的会话(对应的快捷键是 s),那么你只需要做以下几步:
  •     按下组合键 Ctrl-b (Tmux 快捷键前缀)
  •     放开组合键 Ctrl-b
  •     按下 s 键
输入 CTRL-b d 从此会话脱离,想要重新连接此会话,需输入:
tmux attach-session -t name-of-my-session


你可以水平或者竖直分割一个窗口,水平分割输入:

CRTL-b "

现在你就拥有两个面板,现在我们竖直分割:

CRTL-b %
想要快速跳转到其余窗口:

CTRL-b <窗口号>
如果我们给窗口起了名字,我们可以使用下面的命令找到它们:
CTRL-b f
也可以列出所有窗口:
CTRL-b w
按照顺序切换到不同的窗口:
CTRL-b n(到达下一个窗口) CTRL-b p(到达上一个窗口)

tmux 的快捷键:

Ctrl+b  #激活控制台;此时以下按键生效
 
系统操作   
    ?   #列出所有快捷键;按q返回   
    d   #脱离当前会话;这样可以暂时返回 Shell 界面,输入 tmux attach 能够重新进入之前的会话   
    D   #选择要脱离的会话;在同时开启了多个会话时使用   
    Ctrl+z  #挂起当前会话   
    r   #强制重绘未脱离的会话   
    s   #选择并切换会话;在同时开启了多个会话时使用   
    :   #进入命令行模式;此时可以输入支持的命令,例如 kill-server 可以关闭服务器   
    [   #进入复制模式;此时的操作与 vi/emacs 相同,按 q/Esc 退出   
    ~   #列出提示信息缓存;其中包含了之前 tmux 返回的各种提示信息   
窗口操作   
    c   #创建新窗口   
    &   #关闭当前窗口   
    数字键 #切换至指定窗口   
    p   #切换至上一窗口   
    n   #切换至下一窗口   
    l   #在前后两个窗口间互相切换   
    w   #通过窗口列表切换窗口   
    ,   #重命名当前窗口;这样便于识别   
    .   #修改当前窗口编号;相当于窗口重新排序   
    f   #在所有窗口中查找指定文本   
面板操作   
    ”   #将当前面板平分为上下两块   
    %   #将当前面板平分为左右两块   
    x   #关闭当前面板   
    !   #将当前面板置于新窗口;即新建一个窗口,其中仅包含当前面板   
    Ctrl+方向键    #以1个单元格为单位移动边缘以调整当前面板大小   
    Alt+方向键     #以5个单元格为单位移动边缘以调整当前面板大小   
    Space          #在预置的面板布局中循环切换;依次包括 even-horizontal、even-vertical、main-horizontal、main-vertical、tiled   
    q   #显示面板编号   
    o   #在当前窗口中选择下一面板   
    方向键 #移动光标以选择面板   
    {   #向前置换当前面板   
    }   #向后置换当前面板   
    Alt+o   #逆时针旋转当前窗口的面板   
    Ctrl+o  #顺时针旋转当前窗口的面板      
    t       #很酷的一个时钟。


自定义 tmux 的状态栏:
把编辑 ~/.tmux.conf 文件,下面是我的配置:

# 颜色
set -g status-bg black
set -g status-fg white
  
# 对齐方式
set-option -g status-justify centre

# 左下角
set-option -g status-left '#[bg=black,fg=green][#[fg=cyan]#S#[fg=green]]'
set-option -g status-left-length 20
 
# 窗口列表
setw -g automatic-rename on
set-window-option -g window-status-format '#[dim]#I:#[default]#W#[fg=grey,dim]'
set-window-option -g window-status-current-format '#[fg=cyan,bold]#I#[fg=blue]:#[fg=cyan]#W#[fg=dim]'

# 右下角
set -g status-right '#[fg=green][#[fg=cyan]%Y-%m-%d#[fg=green]]'



原创文章如转载,请注明本文链接: http://www.seaxiang.com/blog/tmux_indroduce
seaxiang  All Rights Reserved   粤ICP备15083047号-1