首页 > 代码库 > tmux: 终端复用

tmux: 终端复用

安装

不必多说: sudo apt-get install tmux

使用

在终端输入 tmux 回车即可打开tmux. 
tmux 有三个概念: session(会话), window(窗口), pane(窗格/面板).
在屏幕的最下面有一行显示tmux的状态, 
最左边是 Session: x y z, 表示在第几个会话, 第几个窗口, 第几个面板.
 
一个tmux命令执行后启动一个tmux服务
一个tmux服务可以拥有多个session,一个session可以看作是tmux管理下的伪终端的一个集合
一个session可能会有多个window与之关联,每个window都是一个伪终端,会占据整个屏幕
一个window可以被分割成多个pane

常用命令

tmux ls :显示已有会话
tmux attach -t x :可以加载某一个会话. (简写 tmux a -t 0)
tmux new -s session :建立新的会话
tmux new -s session -d :在后台建立会话 

快捷键

默认情况下, tmux所有快捷键都要以ctrl+b开始, 当然了, 可以修改配置文件, 绑定到其他按键上.
比如我将其修改为ctrl+a

系统/会话操作

    ?   // 列出所有快捷键;按q返回   
    d   // 脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话   
    D   // 选择要脱离的会话;在同时开启了多个会话时使用   
    Ctrl+z  // 挂起当前会话   
    r   // 强制重绘未脱离的会话   
    s   // 选择并切换会话;在同时开启了多个会话时使用   
    :   // 进入命令行模式;此时可以输入支持的命令,例如kill-server可以关闭服务器    
    ~   // 列出提示信息缓存;其中包含了之前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  // 顺时针旋转当前窗口的面板

复制模式

esc: 进入复制模式 ,hjkl移动
按 space 开始复制,移动光标选择复制区域 
按 Enter 复制并退出copy-mode 
将光标移动到指定位置,ctrl+a + ] 粘贴 
 

配置

tmux配置文件在~/.tmux.conf和/etc/tmux.conf中,配置文件中可以修改默认绑定的快捷键.
最省事的配置就是找网上配好的, 网上搜tmux配置, 一艘一堆. 我用的就是从我们老大那里拷的, 当然我们老大也可能是从别人那里复制的...
我的配置: http://git.oschina.net/gaoyuan/myvimrc