Tmux(-yank,-cssh,-xpanes)使用指南
简介:
Tmux(terminal multiplexer)
目前的终端模拟软件无法在多集群的环境下实现终端复用.于是在Github上找到了这款终端复用神器.简单来说就是在一个session(会话)下可以开多个window(窗口),一个window下可以开多个panes(窗格).在多台服务器上使用Tmux(踢马克斯)查看日志排查问题简直起飞!
适用于类Unix系统
Tmux操作界面
声明:在Tmux工作环境下,组合键Ctrl - b为Tmux命令激活键又称为prefix 按下该键后对Tmux进行操作.
使用命令 tmux new -s session2
创建一个名为session2的会话
命令 Ctrl - b 松手后按下 %垂直分割 "水平分割
进行创建相同的panes
命令Ctrl - b s
在Tmux会话内展示所有会话并进行切换(在会话外使用命令tmux ls
)
命令Ctrl - b d
detach出当前窗口,回到Teminal界面(称为退出会话,或会话外)
以上为Tmux基础命令,更多命令参照 balabala
安装:
安装没有太多的东西,参照 Github地址-Readme
配置(mac环境下):
Tmux默认不支持鼠标滚动及简单的复制操作
mac版安装的Tmux默认copy mode过于复杂,后期需用插件增强或者使用 `iterm2`
1.开启鼠标滚动允许鼠标选择窗格panes
vi ~/.tmux.conf
添加 set -g mouse on
2.使用Tmux插件Tmux-yank改善复制粘贴体验(或使用iterm2)
安装完成后默认使用鼠标选中后,松开鼠标左键即为复制(建议mac用户安装剪切板工具paste)
PS:Tmux插件市场
3.多终端命令同步 ★
应用场景:A B C D四台服务集群查找日志
fgrep -inC 2 searchWord /root/a.log
之前的Shell终端中需要开四个tab进行登录–>输入密码–>查看日志,并且不同的tab页不能同时显示.
Tmux中是要开4个panes进行登录–>输入密码–>查看日志,虽然可以同时查看,但还是麻烦一些.
下面这两个插件可以完美实现
3.1 Tmux-cssh :
这是用shell写的一款shell程序,依赖于Tmux
在/usr/local/bin下创建tmux-ssh的软连接即可食用
例: `ln -s /Users/helloworld/developeSoftware/tmux-plugins/tmux-cssh-master/tmux-cssh /usr/local/bin/tssh`
输入命令 `tssh -u root -sc 10.200.2.9 -sc 10.200.2.10 -sc 10.200.2.11 -sc 10.200.2.14`
-u表示用户名 -sc表示ip地址
更多参数见readme
Tmux命令Ctrl -b :set syn...(tab补全)
表示开/关窗格同步
操作界面(缺点是不显示窗格标题):
3.2 Tmux-xpanes ★:
使用包管理工具直接安装
安装后配置窗格的标题位置,默认为底部.个人觉得在顶部好看,可以这样修改
`vi ~/.zshrc(bashrc)
export TMUX_XPANES_PANE_BORDER_STATUS="top"`
配置完成后使用命令:
`xpanes -t -c "ssh root@{}" 10.200.2.9 10.200.2.10 10.200.2.11`
-t表示显示窗格标题 -c 表示命令
更多参数见readme
PS:可以修改xpanes脚本实现功能自定义
操作界面: