Tmux:终端复用器的基本使用(一)

2023-10-17 18:20

本文主要是介绍Tmux:终端复用器的基本使用(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        tmux(也称为终端多路复用器)是一个强大的终端工具,旨在提高终端用户的工作效率。它允许用户在一个终端窗口内创建多个会话和窗格,从而轻松地在一个屏幕上同时运行多个终端应用程序。tmux 的目标是将多个终端会话和任务组织在一个简单的界面中,以便用户可以更高效地管理和切换它们,而不必打开多个终端窗口。

        tmux内有多个层级,分别是tmux服务器(server)、tmux客户端(client)、会话(session)、窗口(window)、窗格(pane)。客户端即相当于linux中的终端、用户可以通过客户端连接到服务器(更具体地来说,是连接到服务器上的会话)。

        使用以下任意一种命令可以创建一个新的会话并将当前客户端连接到这个会话,下面的在tmux内部和外部指的是是否连接到了tmux服务器。

创建一个默认命名的会话,里面附带一个默认的窗口和窗格并连接到它们
$tmux                 //在tmux外部使用
$tmux new             //在tmux外部使用
$tmux new-session     //在tmux外部使用
:new                  //在tmux内部使用[ctrl]+b+:进入命令模式

        使用上述命令后,可以看到如下图所示的界面。

        可以看到除了下面多了一行状态信息,其他与普通的shell没有差别,这就是tmux作为终端复用器的由来。其中的[1]表示当前连接到的会话名(创建会话不指定名时,默认从0开始依次递增),0:表示当前在窗口0内,zsh表示当前窗格的进程名称,最后的*标志了当前处于的窗口和窗格。

        在tmux内,有些命令有特定的快捷键,由前缀键+命令键组成,前缀键默认为[ctlr]+b。比如上面谈到的:new就是使用[ctlr]+b+:进入命令模式并输入new完成的。

        下面的命令用于创建一个名字是mysession的会话并连接到它。

创建一个指定命名的会话,里面附带一个默认的窗口和窗格并连接到它们
$tmux new -s mysession     //在tmux外部使用
:new -s mysession          //在tmux内部使用[ctrl]+b+:进入命令模式
[ctrl]+b+s                 //在tmux内部使用

        例如,我可以创建一个名字叫test的会话并连接到它,如下图所示。

        显示服务器上的所有会话是很重要的,它可以用以下命令完成。

$tmux ls                //在tmux内部和外部均可使用
$tmux list-sessions     //在tmux内部和外部均可使用

       继续之前的例子,我们使用命令可以看到有两个会话,并且每个会话有几个窗口,以及会话的创建时间,如下图所示。

 

        那么如果我不想要一个会话了,如何删除它呢?以下是几种方法,但需要注意的是,如果删除了一个会话,那么所有连接到该会话的用户都会退出。

$tmux kill-session                 //在tmux内部使用则删除当前连接的会话,在tmux外部使用则删除最后连接的会话
$tmux kill-ses                     //在tmux内部使用则删除当前连接的会话,在tmux外部使用则删除最后连接的会话
$tmux kill-ses -t mysession        //在tmux内部和外部均可使用,指定删除名字为mysession的会话
$tmux kill-session -t mysession    //在tmux内部和外部均可使用,指定删除名字为mysession的会话
$tmux kill-session -a              //在tmux内部使用则删除除当前连接的会话外的所有会话,在tmux外部使用则删除除最后连接的会话外的所有会话
$tmux kill-session -a -t mysession //在tmux内部和外部均可使用,删除除名字为mysession的会话外所有会话

        如果创建会话时是默认名字,后面依旧可以重命名,如下所示。需要注意的是更改后的会话名不能与现有名字冲突。

$tmux rename-session -t old_session_name new_session_name //在tmux内部和外部均可使用
[ctrl]+b+$                                                //在tmux内部使用

        如果我不想删除会话,只是想暂时把其放回后台即断开连接,此时使用的命令如下所示。注意,这不会影响会话中进程的执行。

$tmux detach-client      //在tmux内部使用,断开与当前会话的连接
[ctrl]+b+d               //在tmux内部使用,断开与当前会话的连接
[ctrl]+b+D               //在tmux内部使用,选择一个客户,断开其连接的会话

        当你想重新连接会话时,也有几种命令可以使用,如下所示。

$tmux a                    //在tmux外部使用,连接最后连接的会话
$tmux at                   //在tmux外部使用,连接最后连接的会话
$tmux attach               //在tmux外部使用,连接最后连接的会话
$tmux attach-session       //在tmux外部使用,连接最后连接的会话$tmux a -t mysession                    //在tmux外部使用,连接名字为mysession的会话
$tmux at -t mysession                   //在tmux外部使用,连接名字为mysession的会话
$tmux attach -t mysession               //在tmux外部使用,连接名字为mysession的会话
$tmux attach-session -t mysession       //在tmux外部使用,连接名字为mysession的会话

        当你想在不同的会话之间切换,可以使用以下的命令。

[ctrl]+b+(                                //在tmux内部使用,连接到上一个会话
[ctrl]+b+)                                //在tmux内部使用,连接到下一个会话
tmux switch-client -t target_session_name //在tmux内部使用,连接到名字为target_session_name的会话

        以上就是tmux中常用的和会话有关的使用说明 ,关于tmux的更多操作,后续会有相关文章。

这篇关于Tmux:终端复用器的基本使用(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/227161

相关文章

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图

Springboot如何正确使用AOP问题

《Springboot如何正确使用AOP问题》:本文主要介绍Springboot如何正确使用AOP问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录​一、AOP概念二、切点表达式​execution表达式案例三、AOP通知四、springboot中使用AOP导出

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左