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

相关文章

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

Java String字符串的常用使用方法

《JavaString字符串的常用使用方法》String是JDK提供的一个类,是引用类型,并不是基本的数据类型,String用于字符串操作,在之前学习c语言的时候,对于一些字符串,会初始化字符数组表... 目录一、什么是String二、如何定义一个String1. 用双引号定义2. 通过构造函数定义三、St

Python Faker库基本用法详解

《PythonFaker库基本用法详解》Faker是一个非常强大的库,适用于生成各种类型的伪随机数据,可以帮助开发者在测试、数据生成、或其他需要随机数据的场景中提高效率,本文给大家介绍PythonF... 目录安装基本用法主要功能示例代码语言和地区生成多条假数据自定义字段小结Faker 是一个 python

Pydantic中Optional 和Union类型的使用

《Pydantic中Optional和Union类型的使用》本文主要介绍了Pydantic中Optional和Union类型的使用,这两者在处理可选字段和多类型字段时尤为重要,文中通过示例代码介绍的... 目录简介Optional 类型Union 类型Optional 和 Union 的组合总结简介Pyd

Vue3使用router,params传参为空问题

《Vue3使用router,params传参为空问题》:本文主要介绍Vue3使用router,params传参为空问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录vue3使用China编程router,params传参为空1.使用query方式传参2.使用 Histo

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java