tmux:终端复用神器
一、简介与安装
今天无意间从同事那里知道有 tmux 这种神器,tmux(terminal multiplexer)是Linux上的终端复用神器,可从一个屏幕上管理多个终端(准确说是伪终端)。使用该工具,用户可以连接或断开会话,而保持终端在后台运行。类似的工具还有screen,今天只介绍tmux相关操作。
tmux的结构包括会话(session)、窗口(window)、窗格(pane)三部分,会话实质是伪终端的集合,每个窗格表示一个伪终端,多个窗格展现在一个屏幕上,这一屏幕就叫窗口。
session(会话):一个服务器可以包含多个会话。
window(窗口):一个会话可以包含多个窗口。
pane(窗格):一个窗口可以包含多个面板[强悍的分屏]。
1、CenOs下安装tmux
方式一(yum安装):
yum install tmux -y
方式二(源码安装):
源码方式安装有依赖,需要先安装libevent,且版本在2.0以上
# 安装libevent wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz tar xzvf libevent-2.0.22-stable.tar.gz cd libevent-2.0.22-stable ./configure make && make install
# tmux安装 git clone https://github.com/tmux/tmux.git cd tmux/ sh autogen.sh ./configure make && make install
2、源码安装可能出现的问题
(1)问题一:
期间可能会遇到执行autogen.sh 报错,原因是没有安装automake。这个直接yum install automake
就简单解决了。
(2)问题二:
执行的时候遇到如下报错:
libevent-2.0.so.5: cannot open shared object file: No such file or directory
解决方法:
ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5 # 32位系统 ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5 # 64位系统
二、基本操作
基本的操作无非就是对会话、窗口、窗格进行管理,包括创建、关闭、重命名、连接、分离、选择等等。
一般使用命令和快捷键进行操作,可在系统shell终端和tmux命令模式(类似vim的命令模式)下使用命令,或者在tmux终端使用快捷键。
tmux默认的快捷键前缀是Ctrl+b(下文用prefix指代),按下前缀组合键后松开,再按下命令键进行快捷操作,比如使用prefix d分离会话(应该写作prefix d而不是prefix+d,因为d键不需要与prefix同时按下)。
1、会话管理
常用命令 tmux new 创建默认名称的会话(在tmux命令模式使用new命令可实现同样的功能,其他命令同理,后文不再列出tmux终端命令) tmux new -s mysession 创建名为mysession的会话 tmux new -s mysession -d 在后台建立名为mysession的会话 tmux ls 显示会话列表 tmux a 连接上一个会话 tmux a -t mysession 连接名为mysession的会话 tmux rename -t s1 s2 重命名会话s1为s2 tmux kill-session 关闭上次打开的会话 tmux kill-session -t s1 关闭会话s1 tmux kill-session -a -t s1 关闭除s1外的所有会话 tmux kill-server 关闭所有会话
常用快捷键
prefix s 列出会话,可进行切换
prefix $ 重命名会话
prefix d 断开当前会话
prefix D 选择要脱离的会话,同时开启多个会话时使用
prefix t 显示当前时间,按 q/Esc 退出
prefix [ 复制模式,光标移动到复制内容位置,空格键开始,方向键选择复制,回车确认,按 q/Esc 退出
prefix ] 粘贴之前复制的内容,按 q/Esc 退出
2、窗口管理
prefix c 创建一个新窗口 prefix , 重命名当前窗口 prefix w 列出所有窗口,可进行切换 prefix n 进入下一个窗口 prefix p 进入上一个窗口 prefix l 进入之前操作的窗口 prefix 0~9 选择编号0~9对应的窗口 prefix . 修改当前窗口索引编号 prefix ' 切换至指定编号(可大于9)的窗口 prefix f 根据显示的内容搜索窗格 prefix & 关闭当前窗口
3、窗格管理
prefix % 水平方向创建窗格 prefix " 垂直方向创建窗格 prefix Up|Down|Left|Right 根据箭头方向切换窗格 prefix q 显示窗格编号 prefix o 顺时针切换窗格 prefix } 与下一个窗格交换位置 prefix { 与上一个窗格交换位置 prefix x 关闭当前窗格 prefix space(空格键) 重新排列当前窗口下的所有窗格 prefix ! 将当前窗格置于新窗口 prefix Ctrl+o 逆时针旋转当前窗口的窗格 prefix t 在当前窗格显示时间 prefix z 放大当前窗格(再次按下将还原) prefix i 显示当前窗格信息
4、其他命令
tmux list-key 列出所有绑定的键,等同于prefix ?
tmux list-command 列出所有命令
三、参考资料
https://blog.51cto.com/svsky/1929509