一、简介与安装

  今天无意间从同事那里知道有 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.-stable.tar.gz
cd libevent-2.0.-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.: cannot open shared object file: No such file or directory

  解决方法:

ln -s /usr/local/lib/libevent-2.0.so. /usr/lib/libevent-2.0.so.     # 32位系统
ln -s /usr/local/lib/libevent-2.0.so. /usr/lib64/libevent-2.0.so. # 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对应的窗口

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

tmux:终端复用神器的更多相关文章

  1. Tmux终端复用神器使用心得

    tmux在连接远程服务器做实验时很有帮助,可以为每一个项目设置一个Session,在Session中设置不同的Window同时跑多个实验,Window本身还可以分割为多个Pane,在一个视野内利用多个 ...

  2. [linux] tmux终端复用神器 [转载]

    转载https://www.cnblogs.com/kevingrace/p/6496899.html Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授 ...

  3. tmux终端复用神器简单使用

    创建命名Tmux会话(tmux new -s session_name)tmux new -s session_name chongchong 暂退Tmux会话(Ctrl + a d)直接关窗口 返回 ...

  4. (转载)Linux终端复用神器-Tmux使用

    Linux终端复用神器-Tmux使用 转载地址:https://blog.51cto.com/652465/2094738 Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于Open ...

  5. Linux终端复用神器-Tmux使用梳理

    Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权.使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“ ...

  6. [Linux] tmux 终端复用命令行工具

    tmux 终端复用命令行工具 tmux 是一款终端复用命令行工具,通常用于 Terminal 的窗口管理.可以在终端软件重启后通过命令行恢复上次的 session. 安装运行 macOS 上使用 Ho ...

  7. tmux终端复用/tmate终端共享

    目录 tmux tmate tmux 一种终端复用工具,是终端中的窗口管理器.常见的一种用途是在关闭父shell时保持程序运行(常用于ssh访问断开连接后保持运行).linux上可通过包管理器进行安装 ...

  8. 优雅地使用命令行:Tmux 终端复用

    转自:http://harttle.com/2015/11/06/tmux-startup.html 你是否曾经开过一大堆的Terminal?有没有把它们都保存下来的冲动?Tmux 的Session就 ...

  9. tmux 终端复用详解

    tmux是什么 我们在linux服务器上的工作一般都是通过一个远程的终端连接软件连接到远端系统进行操作,例如使用xshell或者SecureCRT工具通过ssh进行远程连接.在使用过程中,如果要做比较 ...

随机推荐

  1. [Go] 时序数据库influxdb的安装

    日志类的数据时候存储在时序数据库中,下面就是时序数据库influxdb的安装 curl -sL https://repos.influxdata.com/influxdb.key | apt-key ...

  2. Linux系统学习 六、网络基础—Linux的IP地址的配置

    1.ifconfig命令临时配置IP地址 2.setup工具永久配置IP地址 3.修改网络配置文件 4.图形界面配置IP地址 ifconfig命令临时配置IP地址 主要的作用是查看网络信息,也可以临时 ...

  3. 自定义v-color指令

    在自定义指令的时候,和js行为有关的,最好就写在inserted中去,防止js代码不生效.和样似有关的操作放在bind中去Vue.direactive [d儿 Rai K T V] 没有s哈 < ...

  4. Day3 - Python基础3 函数基本、递归函数、内置函数

    本节内容 1. 函数基本语法及特性 2. 参数与局部变量 2.2. 函数变量作用域 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 1. 函数基本语法及 ...

  5. QT debug执行exe文件 应用程序无法正常启动0xc000007b

    遇到这种错,发现并不是因为缺失dll文件,因为我把需要的DLL都放到Debug文件下了,但还是有这问题: 解决方法: 右键点击-- >我的电脑--属性-->高级系统设置-->环境变量 ...

  6. Go 字节 (byte) & 文字符号 (rune)

    byte 通过 byte 定义一个字节,字节必须使用单引号包起来,直接打印字节输出的是 ascii 码,需要通过格式化输出 byte 是 uint8 的别称,使用 byte 主要是为了区分字节和无符号 ...

  7. Paper | Residual Attention Network for Image Classification

    目录 1. 相关工作 2. Residual Attention Network 2.1 Attention残差学习 2.2 自上而下和自下而上 2.3 正则化Attention 最近看了些关于att ...

  8. isinstance和issubclass

    目录 一.isinstance与type 二.issubclass 一.isinstance与type 在游戏项目中,我们会在每个接口验证客户端传过来的参数类型,如果验证不通过,返回给客户端" ...

  9. JVM基础详解

    JVM基础解析(一) Java里面有 JDK ,JRE, JVM ,这三者的关系是怎么样的呢? JDK是编译时环境: 整个Java的核心,包括了Java运行环境JRE.Java工具和Java基础类库 ...

  10. IT兄弟连 Java语法教程 流程控制语句 分支结构语句5

    5  switch-case条件语句 Java中的第二种分支控制语句时switch语句,switch语句提供了多路支持,因此可以使程序在多个选项中进行选择.尽管一系列嵌套if语句可以执行多路测试,然而 ...