几个月前开始使用tmux,当时只是入门级的使用。经过这么长的时间,现在开始进一步学习tmux的使用。相关介绍就略过了。
1、安装运行tmux
以debian系发行版为例:
1 2 3 |
$ sudo apt-get install tmux $ tmux # 对,就是这么无脑 |
2、基本概念
1)server
tmux第一次运行时,会启动一个server以及一个session,server负责维护所有会话。之后每次再运行tmux这个命令的时候,只会建立新的会话。
2)session
一个session就是一个tmux会话。说白了就是你必须加入会话才算进了tmux的工作环境。无参数运行tmux命令会建立一个新的会话,并自动加入这个会话。
3)window
window,就是窗口了。在一个tmux会话里面可以建立很多window。刚进入tmux环境下的时候,默认显示 0 号window,然后可以用快捷键新建新的window以及切换window。
4)pane
pane,窗格(请注意不是panel ! panel是面板的意思,不要问我为什么特地点出这个,因为我自己搞错了好久好久 ⊙﹏⊙b汗 )。这个是tmux使用过程中接触最多的概念了,就是将终端窗口拆分为多个部分,每一块就是一个pane
3、基本使用
下面只介绍我最常用的功能:
1)server和session的管理
1 2 3 4 5 6 7 8 9 10 11 |
$ tmux ls # 查看已经打开的session $ tmux attach -t 0 # 进入0号session,也可以-t后面跟上session的名称进入session,怎么命名就略过了 $ tmux kill-session -t 0 # 关闭session,多了不说 $ tmux kill-server # 关闭server,那么所有session都挂了 |
2)窗格pane和window的管理
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# 首先tmux默认的功能键是ctrl-b,可以在配置文件里修改 ctrl-b + c 新建window + w 查看window,切换window + n 切换到下一个window + p 切换到前一个window + ↑/↓/←/→ 切换pane + “ 垂直分割窗格 + % 水平分割窗格 + d detach, 退出tmux会话窗口,会话在后台继续运行 + D 用来管理参与当前会话的主机,可以选择踢掉用户 + & 关闭window(当然,我一般喜欢exit或者ctrl-d退出终端,这个window也就相应退出了) + $ 重命名session + , 重命名window |
3)输出翻页、文本复制
a. ctrl-b + [ 进入文本选择模式,定位光标到开始位置
(上下箭头键、翻页键以及vi风格的 h/j/k/l 都可用)
b. 按下空格键 (space) ,开始选定文本了,移动光标即可
c. 按下回车键 (enter) ,结束选择并复制
d. ctrl-b + ] 粘贴文本
4)tmux的命令模式
依然默认采用的是类vi快捷键的设定
ctrl-b + : 就进入了命令模式。(具体哪些指令请看man手册)
比如加载配置文件:
1 |
:source-file ~/.tmux.conf |
4、自定义快捷键
下面就以最简单的方式给出自定义快捷键的方式
1)新建默认配置文件 .tmux.conf(tmux启动自动加载该文件)
1 2 3 4 5 6 7 8 9 |
$ vim .tmux.conf # 可以自定义很多项目,我们简单地添加以下内容 bind h split-window -h # 比如上面这个就是绑定了新的快捷键h,功能就是水平分割,使用时就是ctrl-b + h bind b source-file ~/.tmux.my # 这里快捷键b的内容由于多于一行指令,将其写在了一个文件中,然后此处加载此文件 # 各种尝试写在这个主配置文件里,失败。有思路的同学欢迎留言。 |
2)多于一行的快捷键附属配置文件
其实我这里做的是一个综合的监控快捷键,使用一个快捷键即可自动完成多个监控窗格的建立。应该根据特定需求修改。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
$ vim .tmux.my # 编辑新的文件,比如如下内容 # # filename: ~/.tmux.my # Author: King's Way <[email protected]> # Date: 2015.07.31 # Introduction: a simple scripts for monitoring with using tmux # select-pane -t 0 # 选定第一个窗格 split-window -h -p 50 "watch -d -n 0.5 sensors" # 水平分割50%窗口大小,新窗口中运行watch命令监控温度 split-window -v -p 85 "watch -d -n 1 'cpufreq-info | grep -w is'" # 垂直分割85%窗口大小,新窗口中运行watch命令监控cpu频率 split-window -v -p 16 "ifstat -i eth0" # 垂直分割16%窗口大小,新窗口中运行ifstat命令监控网络接口速率 split-window -h -p 65 # 水平分割65%窗口大小 clock-mode # 当前窗口进入数字时钟模式 select-pane -t 2 # 选定2号窗格 split-window -v -p 84 "top" # 垂直分割84%窗口大小,新窗口中运行top命令 select-pane -t 0 # 选定0号窗格 split-window -v -p 50 # 垂直分割50%的窗口大小 |
这样之后,我就可以用 ctrl-b + b 的方式快速建立多个监控窗格,效果如图1。
5、其他说明
1、请明白 ctrl-b + % 的意思是你需要按下ctrl不放,然后按下b,接着放开两个按键。然后输入%,也就是shift+5 。
(至于为什么特地说一下这个问题,因为我曾有一次忘了这个细节,按了半天ctrl->b->%这样的键序。。。差点折腾到重装系统 ⊙﹏⊙b汗。而且有个朋友也曾问过我同样的问题。。。)
2、大部分东西没必要刻意去背,用的时候翻一下man手册即可。看多了就记着了,不用很快还是会忘掉了,请冷静对待。
6、参考资料: