Tmux教程

会话(session)、窗口(window)、窗格(panel)的概念

参考资料:Tmux 使用教程 - 阮一峰的网络日志 (ruanyifeng.com)

命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令。用户与计算机的这种临时的交互,称为一次"会话"(session)

会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。

一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。

为了解决这个问题,会话与窗口可以"解绑"窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口。

一个窗口中,可以继续划分为多个窗格,在多个窗格中执行命令。效果类似于Terminator。

Tmux和Oh my tmux介绍与安装

Tmux 是一个终端复用器(terminal multiplexer),可以将会话与窗口"解绑"。
(1)它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。

(2) 它可以让新窗口"接入"已经存在的会话。

(3)它允许每个会话有多个连接窗口,因此可以多人实时共享会话。

(4)它还支持窗口任意的垂直和水平拆分。

Oh my tmux用于美化并降低Tmux的配置难度,和Tmux的关系就像oh-my-zsh和zsh的关系一样。

安装Tmux

sudo apt install tmux

安装Oh my tmux
命令来自仓库:GitHub - gpakosz/.tmux: 🇫🇷 Oh my tmux! My self-contained, pretty & versatile tmux configuration made with ❤️

cd && git clone https://github.com/gpakosz/.tmux.git \
&& ln -s -f .tmux/.tmux.conf \
&& cp .tmux/.tmux.conf.local .

Tmux用法

命令与快捷键

Oh my tmux自带的所有快捷键见bindings

默认前缀快捷键<prefix>是 Ctrl + aCtrl + b。有些快捷键是安装Oh my tmux后才有的。

下面列出常用的几个命令和快捷键。

常见操作

  1. 打开tmux(如果是ssh到服务器,想要在服务器后台运行,就要打开服务器的tmux)
tmux
  1. 执行需要后台运行的命令
xxxxxxx
  1. 使用快捷键<prefix> d切换到后台运行。或使用快捷键<prefix> c新建一个窗口,然后执行命令:
tmux detach
  1. 下次想要回到正在运行命令的窗口时,执行命令
tmux attach

若正在运行的命令不在当前打开的窗口,使用快捷键(Oh my tmux的快捷键)<prefix> C-h切换到上一个窗口,或<prefix> C-l切换到下一个窗口。或执行命令:

tmux selectw -t 窗口编号

底线命令

正在执行命令时,想要执行tmux的命令,可以新建窗口再执行,或按下快捷键<prefix> :

鼠标模式

  • <prefix> m 打开或关闭鼠标模式

像平时使用终端那样复制终端内容的时候,需要关闭鼠标模式。

打开鼠标模式的时候,左键窗口可以切换,右键可以操作。

清除历史记录和屏幕

  • C-l 是Oh my tmux的快捷键,可以清除tmux history同时清屏

会话

创建会话
  • <prefix> C-c 创建一个新会话(C-c表示Ctrl + c)。用于已经打开tmux后,再次创建新会话。

  • 创建会话,名称由tmux自动命名为数字。不能在tmux中执行。
tmux

可以在底线命令下执行

new-session
  • 创建名为session_name的会话。不能在tmux中执行。
tmux new-session -s session_name

可以在底线命令下执行

new-session -s session_name
切换会话
  • <prefix> s 打开会话预览窗口,方向键切换会话,回车进入会话

  • <prefix> C-f 按名称切换到另一个会话

  • 通过编号或名称切换会话
tmux switch -t 0
tmux switch -t <session-name>
重命名会话
  • <prefix> $ 重命名会话

  • 重命名为new_name
tmux rename-session new_name
关闭会话
  • 关闭指定会话
tmux kill-session -t 会话名称
  • 关闭除指定会话外的所有会话
tmux kill-session -t 会话名称 -a
  • 关闭tmux的客户端、会话、服务器
tmux kill-server
分离会话

分离会话后,命令就会在后台运行。

  • <prefix> d 分离会话

  • 分离会话
tmux detach
列出会话
tmux ls

窗口

创建窗口
  • <prefix> c 创建一个窗口

  • 创建窗口
tmux new-window
切换窗口
  • <prefix> C-h 切换到上一个窗口
  • <prefix> C-l 切换到下一个窗口

  • <prefix> w 打开预览窗口,方向键切换会话,回车进入会话
重命名窗口
  • <prefix> , 重命名窗口

  • 重命名窗口
tmux rename-window new-name
关闭窗口
  • C-d 或命令exit都可以关闭窗口。当一个会话的所有窗口都关闭后,这个会话也会关闭。

快捷键

列出所有快捷键
  • <prefix> ? 列出快捷键。按q可以退出。

配置文件

安装Oh my tmux之后,修改配置文件时就要按照说明,修改Oh my tmux创建的配置文件,而不是直接修改tmux的配置文件:configuration

  • <prefix> e 打开配置文件
  • <prefix> r 重新加载配置文件

在脚本中使用tmux

例如创建一个名称为session的会话,在这个会话中创建名称为window的窗口,然后在这个窗口中执行echo和tail命令。
需要使用:

  • 参数-s设置会话名称
  • -n设置窗口名称
  • -d来让tmux后台运行
  • send用于发送命令到tmux
  • -t指定会话和窗口
  • “”双引号中是要发送的命令
  • ENTER表示执行命令
tmux new -s "session" -n "window" -d && tmux send -t "session:window" "echo 'hello world' && tail -f /dev/null" ENTER

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

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

相关文章

MySQL的安装和部署

2.0 描述 仅仅是一个产品&#xff0c;Oracle旗下的小型数据库。广泛应用在中小型项目中&#xff0c;特征体积小速度快整体成本低。尤其是开源&#xff0c;所以很多中小型项目为了降低成本纷纷选用MySql作为数控存储介质。 2.1 MySql的特征 底层语言使用C、C编写的。并且使用多…

Acrel-1000DP分布式光伏系统在某重工企业18MW分布式光伏中应用

摘 要&#xff1a;分布式光伏发电特指在用户场地附近建设&#xff0c;运行方式以用户侧自发自用、余电上网&#xff0c;且在配电系统平衡调节为特征的光伏发电设施&#xff0c;是一种新型的、具有广阔发展前景的发电和能源综合利用方式&#xff0c;它倡导就近发电&#xff0c;就…

一张图描述Http常用状态码(301、302、305、404、408等等)

301—永久移动。被请求的资源已被永久移动位置&#xff1b; 302—请求的资源现在临时从不同的 URI 响应请求&#xff1b; 305—使用代理。被请求的资源必须通过指定的代理才能被访问&#xff1b; 307—临时跳转。被请求的资源在临时从不同的URL响应请求&#xff1b; 40…

抖音VR直播新玩法,凸显各行业领域商业价值

抖音近期新推出了VR直播新玩法&#xff0c;用户不需要佩戴专业的显示头盔&#xff0c;只需要左右摇晃旋转手机&#xff0c;即可通过手机看到主播的全景直播。其实&#xff0c;VR直播并不是一个新东西&#xff0c;几年前&#xff0c;明星演唱会也用过VR直播拍摄技术&#xff0c;…

网站会遇到的几种攻击类型,及如何防御

随着互联网的普及和人们对网络使用的增加&#xff0c;网站安全问题变得越来越突出。无论是个人还是企业&#xff0c;都需要了解并采取措施来保护自己的网站和用户数据的安全。本文介绍了几种常见的网站安全攻击方式、潜在危害及其预防措施&#xff0c;帮助全面了解网站安全的各…

达梦数据库增删改查常用操作及-2723: 仅当指定列列表,且SET IDENTITY_INSERT为ON时,才能对自增列赋值问题修复

创建表 CREATE TABLE DICT ( "ID" INT IDENTITY(1, 1) NOT NULL, "TYPE" VARCHAR(30), "CODE" BIGINT, "NAME" VARCHAR(300), "VALUE" VARCHAR(200), "DESCRIPTION" VARCHAR(255), "OPERATOR"…

AI在检验数据方面的应用场景-九五小庞

AI在检验数据方面有广泛的应用前景&#xff0c;主要体现在以下几个方面&#xff1a; 自动化数据收集和分析&#xff1a;AI可以通过自动化技术&#xff0c;收集各种检验数据&#xff0c;如血液、尿液、生化指标等&#xff0c;并进行快速、准确的分析&#xff0c;提高检验效率。…

canvas绘制图形

目录 1、canvas绘制矩形 2、canvas绘制线 3、canvas绘制圆 4、canvas绘制多圈动画圆 HTML5<canvas>元素用于图形的绘制&#xff0c;Canvas API主要聚焦于2D图形。 1、canvas绘制矩形 canvas是一个二维网格&#xff0c;左上角坐标为(0,0)&#xff0c;横轴为x轴&…

【笔记】KaiOS OTA APN 方案(OMADM)

一、【需求】功能逻辑 OMADM 机制根据节点信息修改对应的APN&#xff0c;因此代码也通过Node消息管控实现。 _listenOpApnSettingsopCheckIsInProgressAndSaveNodeValuesaveAndUpdateApnValue this.operatorVariantHandlers[simslot.index].applySettings(mcc, mnc/*, false*…

C#,入门教程(38)——大型工程软件中类(class)修饰词partial的使用方法

上一篇&#xff1a; C#&#xff0c;入门教程(37)——优秀程序员的修炼之道https://blog.csdn.net/beijinghorn/article/details/125011644 一、大型&#xff08;工程应用&#xff09;软件倚重 partial 先说说大型&#xff08;工程应用&#xff09;软件对源代码的文件及函数“…

用 Python 制作可视化 GUI 界面,一键实现证件照背景颜色的替换

今天&#xff0c;我们来分享一下如何通过Python的十来行代码来替换证件照的背景颜色&#xff0c;那么在最后&#xff0c;小编也会将上述的流程制作成一个GUI界面来方便大家使用。关于界面的大致模样其实和先前的相差不大&#xff0c;大家应该都看过上一篇的内容 界面大体的样子…

实战-ApacheSuperset未授权访问漏洞(CVE-2023-27524)

声明&#xff1a; 该文章仅供网络安全领域的学习使用&#xff0c;请勿利用文章内的相关技术从事任何非法行为。 测试资产为国外 IP&#xff0c;存在漏洞的 IP 地址已做打码处理。 我们只进行 poc&#xff0c;请勿进行任何非法入侵和攻击。 知攻善防&#xff0c;遇强则强。 开发…

MYSQL索引实例

1.用SQL语句创建学生表student&#xff0c;定义主键&#xff0c;姓名不能重名&#xff0c;性别只能输入男或女&#xff0c;所在系的默认值是“计算机”。 mysql> create table student(-> Sno int primary key auto_increment,-> Sname varchar(255) not null unique…

MacOS受欢迎的数据库开发工具 Navicat Premium 15 中文版

Navicat Premium 15 Mac是一款数据库管理工具&#xff0c;提供了一个全面的解决方案&#xff0c;用于连接、管理和维护各种数据库系统。以下是Navicat Premium 15 Mac的一些主要功能和特点&#xff1a; 软件下载&#xff1a;Navicat Premium 15 中文版下载 多平台支持&#xff…

kettle 同步gbase8t数据到mysql时clob类型乱码

一、问题 使用kettle 同步gbase8t数据到mysql时clob类型乱码。 varchar类型不乱码。 环境&#xff1a;win10 kettle:9.x 二、解决 1 &#xff08;有效&#xff09;修改kettle编码格式 打开kettle的安装目录&#xff0c;进入data-integration目录记事本编辑spoon.bat搜索PE…

【PyTorch】PyTorch之Tensors索引切片篇

文章目录 前言一、ARGWHERE二、CAT、CONCAT、CONCATENATE三、CHUNK四、GATHER五、MOVEDIM和MOVEAXIS六、PERMUTE七、RESHAPE八、SELECT九、SPLIT十、SQUEEZE十一、T十二、TAKE十三、TILE十四、TRANSPOSE十五、UNBIND十六、UNSQUEEZE十七、WHERE 前言 介绍常用的PyTorch之Tenso…

软件工程研究生后期总结

写这篇随笔的时候&#xff0c;我已经处于研究生阶段的后期&#xff0c;只剩下一个硕论答辩即可结束研究生生涯。趁有闲暇时间&#xff0c;我希望可以从实习、兼职、论文和求职等几个角度重新整理一下研究生后期的工作和收获&#xff0c;以及对未来工作和生活做出展望。 首先简…

【VUE】记录一次 VUE中配置生产环境和开发环境方法

前言 我这里 使用Vue CLI&#xff08;Vue Command Line Interface&#xff09;创建Vue.js项目是一种简单的方式&#xff0c;它提供了一个交互式的命令行工具来帮助你初始化和管理Vue.js项目。 并且我这个项目需要区分生产环境和开发环境。这里具体完整记录下&#xff0c;整个…

第15届蓝桥杯嵌入式省赛准备第二天总结笔记(使用STM32cubeMX创建hal库工程+按键输入)

一.查看电路图 按键是使用的PB0,PB1,PB2,PA0四个引脚&#xff0c;然后使用CubeMX配置引脚&#xff0c;4个脚都配置为输入模式和上拉。 程序生成之后把不用的删掉&#xff0c;需要的留下&#xff0c;这里我把函数名改了。 然后写按键扫描读取程序&#xff0c;这里参考的正点原子…

Vue中ElementUI结合transform使用时,修复el-select弹框定位不准确问题

在大屏开发中&#xff0c;比如将1920*1080放到更大像素&#xff08;3500*2400&#xff09;大屏上演示&#xff0c;此时需要使用到transform来对页面进行缩放&#xff0c;但是此时发现弹框定位出错问题&#xff0c;无法准备定位到实际位置。之前写过一篇讲解的是ElementUI中的&l…