<a target=_blank target="_blank" class="postTitle2" href="http://www.cnblogs.com/cbscan/articles/2888595.html" style="margin:0px; padding:0px; font-size:24px; color:rgb(0,0,0); text-decoration:none">
</a>
[转]tmux使用(程序员适用)
<a target=_blank target="_blank" class="postTitle2" href="http://www.cnblogs.com/cbscan/articles/2888595.html" style="margin:0px; padding:0px; font-size:24px; color:rgb(0,0,0); text-decoration:none">
</a>
原文:http://jack-boy.iteye.com/blog/1586908
tmux基本使用
tmux是一个优秀的终端复用软件,即使非正常掉线,也能保证当前的任务运行,这一点对于远程SSH访问特别有用,网络不好的情况下仍然能保证工作现场不丢失!
tmux完全使用键盘控制窗口,实现窗口的切换,像是Chrome的方式管理shell,使用起来很方便,byubo也有同样的功能。 id="iframe_0.8315152358713922" src="data:text/html;charset=utf8,%3Cimg%20id=%22img%22%20src=%22http://tmux.sourceforge.net/small-tmux3.png?_=2888595%22%20style=%22border:none;max-width:989px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.8315152358713922',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no" style="margin: 0px; padding: 0px; border-width: initial; border-style: none; width: 20px; height: 20px;">
tmux命令都具有一个前缀命令(PREFIX),默认的是CTRL+b,可以自己修改,改为CTRL+a。
在~/.tmux.conf中加入如下行,没有~/.tmux.conf文件自己建立一个即可。
set -g prefix C-a
unbind C-b
此时并没有生效,重启tmux或者在命令模式(按PREFIX : )输入
source-file ~/.tmux.conf
任何命令前都需要CTRL+a,然后再按其他的键发出具体的操作命令,更多命令请看tmux参考手册
1 建立命名会话
- # tmux new -s session
进入tmux。
PREFIX c 创建新的窗口
PREFIX d 退出tmux窗口,tmux仍在后台运行,可以通过tmux attach进入到指定的会话
# tmux new -s session -d #在后台建立会话
# tmux ls #列出会话
# tmux attach -t session #进入某个会话
2 复制模式copy-mode
a.PREFIX [ 进入复制模式
b.按 space 开始复制,移动光标选择复制区域
c.按 Enter 复制并退出copy-mode。
d.将光标移动到指定位置,按 PREIFX ] 粘贴
如果不在配置文件中进行如下配置,在VIM中复制模式无法完成操作
在~/.tmux.conf中加入如下行
setw -g mode-keys vi
3 Remaping key
讲Caps Lock键映射为Ctrl,更改键映射后反而有点不习惯,就用默认的键盘控制也很方便,习惯就好。
windows环境下载安装AUTOHOTKEY,修改AutoHotKey.ahk文件为
- ;;; Default script settings
- #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
- SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
- SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
- ;;; Remap CapsLock to Control. Move CapsLock to Right Control.
- CapsLock::Control
- RControl::CapsLock
运行AutoHotKey,如已运行可以reload。更多修改CapsLock到CTRL的方法,请参考文章MovingTheCtrlKey
4 配置
- #设置PREFIX为Ctrl-a
- set -g prefix C-a
- #解除Ctrl-b与PREFIX的对应关系
- unbind C-b
- #copy-mode将快捷键设置为vi模式
- setw -g mode-keys vi
- #将r键设置为加载配置文件,并显示"reloaded!"信息
- bind r source-file ~/.tmux.conf \; display "Reloaded!"
- #设置终端颜色为256色
- set -g default-terminal "screen-256color"
- #开启status-bar uft-8支持
- set -g status-utf8 on
- #设置pan前景色
- set -g pane-border-fg green
- #设置pane背景色
- set -g pane-border-bg black
- #设置活跃pane前景色
- set -g pane-active-border-fg white
- #设置活跃pane背景色
- set -g pane-active-border-bg yellow
- #设置消息前景色
- set -g message-fg white
- #设置消息背景色
- set -g message-bg black
- #设置消息高亮显示
- set -g message-attr bright
- #设置status-bar颜色
- set -g status-fg white
- set -g status-bg black
- #设置窗口列表颜色
- setw -g window-status-fg cyan
- setw -g window-status-bg default
- setw -g window-status-attr dim
- #设置当前窗口在status bar中的颜色
- setw -g window-status-current-fg white
- setw -g window-status-current-bg red
- setw -g window-status-current-attr bright
- #设置status bar格式
- set -g status-left-length 40
- set -g status-left "#[fg=green]Session: #S #[fg=yellow]#I #[fg=cyan]#P"
- set -g status-right "#[fg=cyan]%d %b %R"
- set -g status-interval 60
- set -g status-justify centre
- #开启window事件提示
- setw -g monitor-activity on
- set -g visual-activity on
5 滚屏
滚屏要进入copy-mode,即PREFIX+[,然后就可以用上下键来滚动屏幕,配置了vi快捷键模式,就可以像操作vi一样来滚动屏幕,非常的方便。
退出直接按‘q’键即可。
以下补充下常用的指令:
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进入 到指定的回话。