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

  https://www.cnblogs.com/liuguanglin/p/9290345.html

  https://www.cnblogs.com/reboot51/p/9485911.html

原文地址:https://www.cnblogs.com/li-li/p/11212473.html