Linux神器 - tmux

#程序员的丰满生活

  • 我要查log,好吧开个ssh客户端;我要看代码,好吧我再开一个;我要调代码,我再开一个;我要…

  • 一边哼着曲儿,一边敲代码,好不惬意。突然,网络断了,死敲键盘的你,是否有着如同李泰祥大师写的这种心境:

当我走在凄清的路上
天空正漂着濛濛细雨
在这寂寞暗淡的暮色里
想起我们相别在雨中
不禁悲从心中生

  • 正在用gdb断点调试,女友一通电话,一顿臭骂,一撂狠话:再不回来xxx。一关机所有context都没有了,真是当断不断,欲哭无泪啊!

  • 小女子雪地跪求:这个代码调不通,哪位大哥哥可以手把手教我?

作为程序员的救星,*nix怎么可能视而不见,袖手旁观,任尔等悲从心中生呢。于是神器tmux出现了

tmux部件

  • tmux命令启动一个服务
  • 一个服务可以有多个session
  • 一个session有以多个窗口
  • 一个窗口有多个pane

还等什么,赶紧安装后启动tmux吧

pane

如果用过VIM,命令sp / vsp一定用的顺风顺水吧,没事就把窗口大卸八块。tmux的pane做类似的事情,试试下面的命令看看?

**ctrl+b+其它键:先按ctrl+b一下,然后再按其它键 **

ctrl+b " 水平分割
% 竖直分割
x 关闭面板
方向键 选择面板
ctrl+方向键 1个单元格调整面板大小
Alt+方向键 5个单元格调整面板大小
q 显示面板编号

窗口

还记得痛苦的不停开ssh客户端做不同事情吗?干嘛不用窗口呢。所谓窗口就是tab啦,浏览器的tab,VIM的tab,很熟悉吧。赶紧按下面的命令来亲切一下吧

ctrl+b c 创建新窗口
& 关闭窗口
, 改变窗口名字
数字键 选择窗口
w 按窗口列表选择窗口
f 在所有窗口中查找指定文本

session

session是一个什么概念了,可以认为是一个工作环境的上下文。官方概念是窗口就是一个伪终端,而session就是一组窗口(伪终端)。

session的好处是
1.如果客户端掉线了,session仍然保持着
2.多个客户端可以连到同一个session

如果你还对程序员丰满生活的2、3、4记忆犹新的话,那么session就派上用场了

tmux new -s session-id  #建立session
tmux ls  #列出session  
tmux attach -t session-d  #attach session
ctrl+b+d  #detach session

对问题4来说,小女子开个session,然后告诉大哥哥session-id。大哥哥attach一下session-id,这样,大哥哥的任何操作,小女子都可以看到了,既环保又高效,也就不用雪地求救了

配置

tmux好是好,可是那个ctrl+b也太距离产生美了,难道要留长指甲,练习一下九阴白骨爪?放心,既然是神器,怎么不可以配置呢?

配置文件是先读取 ~/.tmux.conf,如果没有找到,然后读取 /etc/tmux.conf。一般自定义的话,都是放在~/.tmux.conf,至于如何配置,就不浪费大家时间了,自行Google吧

reload配置文件可以通过下面命令,进入tmux session后

1. ctrl+b+: 
2. 输入source-file ~/.tmux.conf

帮助

如何获取帮助呢?

  1. man tmux
  2. 进入session后, ctrl+b+? 会列出所有命令