tmux安装及使用

news2025/1/16 15:29:54

tmux安装及使用

tmux是一款很好使用的终端工具,配合shell脚本使用非常方便。

一、tmux安装

终端输入命令:

sudo apt-get install tmux

二、tmux使用

首先需要对tmux使用的名词有一个基本了解:
session :会话
window : 窗口
pane:窗格

可以这样通俗的理解:当前界面的整个终端就是一个session(会话),一个session里面包含了很多个window(窗口),一个window可以被分成很多pane(窗格),关系可以表示如下:
session > window > pane

同时tmux还可以配合shell脚本一起使用,因此会在解算不同操作的终端命令、shell脚本命令以及快捷键等;

值得注意的是在使用tmux快捷键方式时,都需要使用前缀按键ctrl+b来唤醒,所以在使用快捷键需要先按ctrl+b,在按相应快捷键。

在这里插入图片描述

2.1 session的使用

2.1.1 创建session

创建一个新的session,在终端输入tmux,随后会创建一个默认名为0的且有一个windows的session

tmux

在这里插入图片描述通常在使用tmux的时候都需要指定操作的具体session、window和pane,因此为了方便使用需要对不同session、window、pane进行命名操作。

tmux new -s  <session-name> 
# 创建名称为test的session
tmux new -s test

在这里插入图片描述

2.1.2 离开session

有时候需要离开当前session进行其他操作,但是想要保留当前终端的程序继续运行,这时候就需要退出当前session

# 终端命令
tmux detach
# 快捷键
(ctrl + b )+ d

2.1.3 查看session

当我们打开好几个session时需要查看和操作不同session
ps:使用查看session的快捷键时需要在tmux的窗格中操作,同时可以选择操作不同session,退出按Esc

# 终端命令
tmux ls
# 快捷键
(ctrl+b) +s

2.1.4 进入session

进入指定名称session
ps:这里的进入session操作指的是在tmux之外终端选择session,在pane中输入终端命令无效,但是可以通过查看session的快捷方式选择进行指定名称session

# 终端命令
tmux attach -t  <session-name>
## 进入名为test的session
tmux attach -t test
tmux a -t test

2.1.5 选择session

在tmux终端中快速切换到其他session
ps:这里的选择session操作是在tmux终端下进行操作

# 终端命令
tmux switch -t <session-name>
## 选择并进入名为test2的session
tmux switch -t test2

2.1.6 关闭session

当你需要关闭部分session时,可以使用如下命令:
ps:在使用终端命令时当前session会被关闭,也就是说使用tmux ls命令查看session时,此时关闭的session已经不存在了;但是在tmux终端中使用快捷键时会回到你的电脑的终端,使用tmux ls查看session时,关闭的session还在,可以简单理解为快捷键是让当前session在后台挂机,不影响在当前session运行的程序

# 终端命令
tmux kill-session -t <session-name>
## 关闭名为test的session
tmux kill-session -t test

# 快捷键
(ctrl + b) + d

2.1.7 重命名session

对session进行重命令
ps:快捷键方式

#  终端命令
tmux rename-session -t <old-session-name> <new-session-name>
## 将名为 test 的session重命名为 test3
tmux rename-session -t test test3

# 快捷键
(ctrl+b) + $

在这里插入图片描述

2.2 windows的使用

有时候一个窗口不够用就需要重新窗口

2.2.1 创建窗口

# 终端命令
tmux new-window -n <window-name>
## 新建一个名为new_window的窗口
tmux new-window -n new_window

# 快捷键
(ctrl+b)+c

在这里插入图片描述

2.2.2 切换窗口

当一个session有很多window时需要进行窗口的切换

# 终端命令
tmux select-window -t <window-name>
## 切换到名为test的window下
tmux select-window -t test

# 快捷键
## 切换到下一个窗口: (ctrl+b) + n
## 切换到上一个窗口: (ctrl+b) + p
## 切换窗口列表并选择: (ctrl+b) + w
## 切换到指定窗口: (ctrl+b) + num   这里的num是每个窗口前的编号

2.2.3 重命名窗口

有时候需要对窗口进行重命名

# 终端命令
tmux rename-window <old-window-name> <new-window-name>
##  将test窗口重命名为 rename_window
tmux rename-window test rename_window

# 快捷键
(ctrl+b) + ,

2.2.4 关闭窗口

# 终端命令
tmux kill-window -t <window-name>
## <window-name> :可以是窗口名称,或者是窗口前面的数字

## 快捷键
(ctrl+b) + &
## 关闭当前窗口

2.3 pane的使用

在tmux中,窗格的使用是最频繁的。每个窗格可以干不同的事,不同的窗格之间是相互独立的。

2.3.1 切割窗口

# 水平切割成上下两部分
## 终端命令
tmux split-window

## 快捷键
(ctrl+b) + "

在这里插入图片描述

## 垂直切割成左右两部分
## 终端命令
tmux split-window -h
## 快捷键
(ctrl+b) + %

在这里插入图片描述

2.3.2 不同窗格间移动光标

光标移动到上/下/左/右
## 终端命令
tmux select-pane -U/-D/-L/-R

## 快捷键
(ctrl+b) + 上/下/左/右键 

2.3.3 关闭当前窗格

# 快捷键
(ctrl+b) + x

2.3.4 放大/缩小当前窗格

# 快捷键
(ctrl+b) + z

2.3.5 当前窗格显示时间

点击回车取消

# 终端命令
(ctrl+b) + t

以上就是tmux常用功能和命令

三、tmux搭配shell脚本的使用

在写shell脚本时搭配tmux的命令可以“多线程”的操作不同窗口进行不同任务的处理,非常方便和高效,接下来将通一个简单的shell脚本对tmux进行一个介绍

## Set Tmux session and window name
session_name="tmux_session"
window_node="tmux_window"

## Kill tmux session of same name if existed
# kill同名session的tumx任务
tmux kill-session -t ${session_name}		

# 创建一个名为“tmux_session"的任务,其中窗口名为”tmux_window"
tmux new -d -s ${session_name} -n ${window_node}   

# Establish and split a new session in the background
# 左右切割窗口并命名为0/1
tmux split-window -h -t ${session_name}:${window_node}
tmux split-window -v -t ${session_name}:${window_node}.0
tmux split-window -v -t ${session_name}:${window_node}.1

# 系统待机2s
sleep 2

# 在当前窗口输入命令"pwd" 并进入到/home/data/emmc路径下运行test.py文件
tmux send -t  ${session_name}:${window_node} "pwd && \
							cd /home/data/emmc &&  \
							python test.py" ENTER
# 在0号窗口输入命令"rostopic list"并启动launch文件
tumx send -t ${session_name}:${window_node} "rostopic list && \
						 roslaunch analysis_imu imu.node" ENTER
				
## Attach the session to front
tmux a -t ${session_name}		 

参考链接:

[1] 一文助你打通 tmux
[2] 终端工具tmux使用教程 — 脚本启动程序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/755476.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

职责链(Chain of responsibility)模式

目录 处理过程应用场景参与者协作效果实现相关模式应用与思考类图 职责链(Chain of responsibility)是一种对象行为模式&#xff0c;可以使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链&#xff0c;并沿着这条链传递…

快速配置 Rust 开发环境并编写一个小应用

安装: curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh 更新: Rust 的升级非常频繁. 如果安装 Rustup 后已有一段时间,那么很可能 Rust 版本已经过时, 运行 rustup update 获取最新版本的 Rust rustc&#xff1a;编译Rust程序 rustc只适合简单的Rust程序&#xf…

5G全网通工业三防平板Windows移动电脑

当今科技领域的快速发展为我们的生活带来了许多便利和高效性能。在这个数字化时代&#xff0c;移动设备已成为我们生活的重要组成部分。在这一领域&#xff0c;搭载全新第12代英特尔酷睿Mi5-1235U/i7-1255U处理器的工业三防平板Windows移动电脑无疑是一款引人注目的产品。 这款…

mysql获取附近的店并显示当前距离并由近到远显示

1、创建测试数据 CREATE TABLE store (id int(11) NOT NULL AUTO_INCREMENT,name varchar(50) NOT NULL COMMENT 商家名称,address varchar(200) NOT NULL COMMENT 商家地址,coordinates varchar(50) NOT NULL COMMENT 经纬度,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT…

阿卡西斯 USB4 雷电4 移动硬盘盒做Mac系统盘 体验

硬盘盒(USB4 JHL7440 RTL9210B) 无风扇版本(型号 TBU405 659RMB). 发热大 所以官方出了带风扇版本,我的是不带风扇的. 我是三星990pro组合. 我是把mac系统直接安装到硬盘盒的硬盘里面里面 这是刚买时候的速度 这是当系统重度使用(写代码 大数据环境) 4个月后的硬盘速度测试…

DBeaver设置主题

一、下载包 帮助-》Install new software Eclipse Update Site 勾选一直下一步&#xff0c;直到安装完&#xff0c;会提示重启&#xff0c;重启设置主题即可 二、设置主题 窗口-》首选项-》DevStyle

快速上手一个I2C传感器 | MAX6884

老老实实看DataSheet吧&#xff0c;查找手册有以下几种途径&#xff1a; 1&#xff09;到芯片厂商官网去下载资料&#xff1b; 2&#xff09;在芯片器件采购平台搜索&#xff0c;如立创商城、半导小芯&#xff1b; 有原厂或代理翻译的中文手册&#xff0c;或者国产芯片中文手…

leetcode 450. 删除二叉搜索树中的节点

2023.7.14 搜索二叉树相关的题一般都能用递归解决。 本体大致思路是&#xff1a;使用递归的方式&#xff0c;在树中查找目标节点&#xff0c;并根据节点的情况进行删除操作。如果目标节点是叶子节点&#xff0c;直接删除它&#xff1b;如果目标节点只有一个子树&#xff0c;将子…

H3C-Cloud Lab-实验-ACL实验

实验拓扑图&#xff1a; 网段分布情况&#xff1a; 实验需求&#xff1a; 1. 按照图示配置 IP 地址 2. 全网路由互通 3. 在 SERVER1 上配置开启 TELNET 和 FTP 服务 4. 配置 ACL 实现如下效果 1&#xff09;192.168.1.0/24 网段不允许访问 192.168.2.0/24 网段&#xff0c…

【雕爷学编程】Arduino动手做(162)---OPT101模拟光照传感器模块3

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

springboot整合eureka、config搭建注册中心和配置中心

目录 一 、springboot整合eureka实现注册中心 二、springboot整合config实现配置中心 三、从配置中心拉取配置 这篇文章详细介绍怎么通过eureka和config分别搭建一个注册中心和配置中心的服务。 一 、springboot整合eureka实现注册中心 1、创建一个springboot项目&#xff…

编译zlib库给IOS平台用

打开zlib官方网: zlib Home Site 找到github仓库地址: 复制zlib的github地址 执行下面脚本克隆zlib库 git clone https://github.com/madler/zlib.git 克隆成功 zlib自带CMakeLists.txt 所以用CMake-GUI来生成 选择zlib源码目录及输出目录,输入下图的CMAKE参数

Winform实现简历生成器(Excel版)

要点 1.项目中到COM类型库中添加Excel和Word的引用 2.大概思路&#xff1a;创建工作簿对象->将Excel简历框架加载到此工作簿->获取工作表->根据位置填入信息->显示工作簿对象Visible为可见->释放工作簿 GitHub - zzp229/WinForm_CreateExcelResume: 通过界面交…

小红书Java后端一面,被问麻了

今天分享一篇小红书 2 年社招 Java 后端一面的面经&#xff0c;面试的风格是从一个知识一层一层深入问到底层。 从 Java IO&#xff0c;问到 socket 底层。从 Java 内存&#xff0c;问到操作系统内存。所以学习知识的时候&#xff0c;不要只看八股文&#xff0c;还是需要从点到…

【算法 -- LeetCode】(019)删除链表的倒数第 N 个结点

1、题目 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5] 示例 2&#xff1a; 输入&#xff1a;head [1], n 1 输出&#xff1a;[] 示例 3…

excel常用操作备忘

excel操作&#xff1a; 1、快速填充多列公式&#xff1a;选中多列后&#xff0c;按ctrlD填 充。 2、快速删除空行&#xff1a;全选行&#xff0c;按ctrlG&#xff0c;空值项前边打上钩&#xff0c;点确定&#xff0c;针对选中的空行&#xff0c;鼠标右击&#xff0c;点删除&…

20230710~20230714周报

本次周报主要用于巩固和总结在DL-FWI培训中学到的知识。 基础知识 全波形反演&#xff08;FWI&#xff1a;Full waveform inversion&#xff09;&#xff1a;通过检测到的地震数据直接推测地下结构。 速度模型&#xff1a;由于波在不同介质中的传播速度不同&#xff0c;所以可…

计算联合体大小的测试demo

两个规则&#xff1a; 1.联合体大小必须能容纳联合体中最大的成员变量2.通过规则1 计算出的联合体大小必须是联合体中占内存大小最大的成员类型的整数倍 #include<stdio.h>typedef union {char a[7];int b; }test_union_1;typedef union {char a[6];char b; }test_un…

氢辉能源|[4GW]质子交换膜产线投产发布会暨[3MW]PEM电解槽正式交付

2023年7月12日下午&#xff0c;氢辉能源&#xff08;深圳&#xff09;有限公司&#xff08;以下简称氢辉能源&#xff09;质子交换膜产线投产发布会暨12台50标方3MW电解槽交付仪式在深圳市龙岗区国际低碳城成功举办。 此外&#xff0c;氢辉能源与远景能源、润世华集团、宏洲新能…

005-NULL和NOT NULL

通过desc命令获取数据表结构&#xff0c;当NULL column 字段为YES时&#xff0c;表示列表字段可以为空&#xff08;可以不插入数据&#xff09;&#xff0c;如&#xff1a; 可以设置Null 列表字段不能为空&#xff08;字段后面添加 not null&#xff09;&#xff0c;如&#xf…