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.-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:终端复用神器的更多相关文章
- Tmux终端复用神器使用心得
tmux在连接远程服务器做实验时很有帮助,可以为每一个项目设置一个Session,在Session中设置不同的Window同时跑多个实验,Window本身还可以分割为多个Pane,在一个视野内利用多个 ...
- [linux] tmux终端复用神器 [转载]
转载https://www.cnblogs.com/kevingrace/p/6496899.html Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授 ...
- tmux终端复用神器简单使用
创建命名Tmux会话(tmux new -s session_name)tmux new -s session_name chongchong 暂退Tmux会话(Ctrl + a d)直接关窗口 返回 ...
- (转载)Linux终端复用神器-Tmux使用
Linux终端复用神器-Tmux使用 转载地址:https://blog.51cto.com/652465/2094738 Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于Open ...
- Linux终端复用神器-Tmux使用梳理
Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权.使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“ ...
- [Linux] tmux 终端复用命令行工具
tmux 终端复用命令行工具 tmux 是一款终端复用命令行工具,通常用于 Terminal 的窗口管理.可以在终端软件重启后通过命令行恢复上次的 session. 安装运行 macOS 上使用 Ho ...
- tmux终端复用/tmate终端共享
目录 tmux tmate tmux 一种终端复用工具,是终端中的窗口管理器.常见的一种用途是在关闭父shell时保持程序运行(常用于ssh访问断开连接后保持运行).linux上可通过包管理器进行安装 ...
- 优雅地使用命令行:Tmux 终端复用
转自:http://harttle.com/2015/11/06/tmux-startup.html 你是否曾经开过一大堆的Terminal?有没有把它们都保存下来的冲动?Tmux 的Session就 ...
- tmux 终端复用详解
tmux是什么 我们在linux服务器上的工作一般都是通过一个远程的终端连接软件连接到远端系统进行操作,例如使用xshell或者SecureCRT工具通过ssh进行远程连接.在使用过程中,如果要做比较 ...
随机推荐
- jQuery从零开始(三)-----ajax
jq当中的ajax技术 $.ajax $.get() $.post() $.load() $.ajax({ url:'请求文件的地址', type:'请求文件使用的方法', data:'向请求的api ...
- kali安装vmtool后依旧无法拖拽文件,复制粘贴,解决办法
本文链接:https://blog.csdn.net/Key_book/article/details/80310235命令行下 执行 apt-get install open-vm-tools-de ...
- IDEA中GitLab的使用
首先安装git https://git-scm.com/downloads/ 下载对应的版本 下载好了,安装打开 Windows. 打开之后2步走,与git连接 首先选择仓库,进行git init本地 ...
- redis的缓存雪崩、缓存穿透和缓存击穿
缓存雪崩: 比如给缓存中的key设置了统一的过期时间,而在过期时间点,有大量的请求进来,这个时候redis中没有用户请求的资源,所以所有的请求会全部拥到数据库,如果数据库有报警监测的话,可能会报一下警 ...
- [PHP] pmap可以查看进程占用内存的详细情况
pmap后面跟进程id,就可以查看进程的详细情况了,例如下面php的进程 可以看到php扩展占用内存的情况,方便进行查询问题 00007fb3fa4bf000 44K r-x-- /usr/lib64 ...
- Codeforces Round #598 (Div. 3)
传送门 A. Payment Without Change 签到. Code /* * Author: heyuhhh * Created Time: 2019/11/4 21:19:19 */ #i ...
- AcWing 77. 翻转单词顺序
习题地址 https://www.acwing.com/problem/content/description/73/ 题目描述输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变. 为简单 ...
- Sigma Function (LightOJ - 1336)【简单数论】【算术基本定理】【思维】
Sigma Function (LightOJ - 1336)[简单数论][算术基本定理][思维] 标签: 入门讲座题解 数论 题目描述 Sigma function is an interestin ...
- __setattr__和__delattr__和__getattr__
目录 一.__setattr__ 二.__delattr__ 三. __getattr__ class Foo: x = 1 def __init__(self, y): self.y = y def ...
- React: 研究React的组件化
一.简介大概 在以往的Web开发中,会把web页面所有的复杂控件作为一个单一的整体进行开发,由于控件之间需要进行通信,因此不同的组件之间的耦合度会很多,由于开发一个控件的时候要考虑到控件与控件之间的联 ...