tmux命令详解

article/2025/6/22 6:05:34

转载于:https://www.cnblogs.com/wangqiguo/p/8905081.html

目录

tmux是什么

tmux的会话

tmux的window

tmux的pane

tmux window中的历史输出查看

总结


 

tmux是什么

我们在linux服务器上的工作一般都是通过一个远程的终端连接软件连接到远端系统进行操作,例如使用xshell或者SecureCRT工具通过ssh进行远程连接。在使用过程中,如果要做比较耗时的操作,例如有时候进行编译,或者下载大文件需要比较长的时间,一般情况下是下班之后直接运行希望第二天早上过来运行完成,这样就不用耽误工作时间。但是网络有时候不稳定,可能在半夜会出现连接断掉的情况,一旦连接断掉,我们所执行的程序也就中断,我们当然可以写一个脚本后台运行,但是还是不方便。那么有没有一种工具可以解决这样的问题呢。这就是我们这里要提到的tmux了。其实类似tmux的工具还有很多。例如gnu screen等。tmux刚好可以解决我们描述的问题,当我们在tmux中工作的时候,即使关掉SecureCRT的连接窗口,再次连接,进入tmux的会话我们之前的工作仍然在继续。

tmux是一个linux下面的工具,在使用之前需要安装,就像安装linux下的其他工具一样方便。首先我们通过SecureCRT连接登入远程的linux机器,我们将此时的环境称为终端环境。如果这个机器上并没有安装tmux,我们需要安装。例如在CentOs上是yum install tmux,完成之后我们就可以使用tmux命令了。tmux中有3种概念,会话,窗口(window),窗格(pane)。会话有点像是tmux的服务,在后端运行,我们可以通过tmux命令创建这种服务,并且可以通过tmux命令查看,附加到后端运行的会话中。一个会话可以包含多个窗口,一个窗口可以被分割成多个窗格(pane)。首先我们来看一下tmux的会话。

tmux的会话

1. tmux new -s session1 新建会话

使用 tmux new -s 命令新建一个会话 -s (其实是session的头字母)。后面指定会话名即可。运行之后会从shell的终端环境进入到会话环境中,并停留在刚才新建的会话中。例如:

session

可以看到进入session之后的显示,在下面有一条绿色的状态指示栏,左边显示的是当前会话的名字,紧接着是会话中的窗口(window)序号以及窗口名字。关于窗口的概念我们后面再说,窗口名字后面有一个星号*表示是我们操作的当前窗口,一个会话中可以有多个窗口。当进入一个会话之后,会自动创建一个窗口。如上图所示,上面的环境在本章中称为会话环境。这样我们就已经开始了tmux的使用,如果此时关闭掉SecureCRT软件,下次在进入,该会话仍然在运行工。也就是说我们在刚刚进入的会话环境中使用wget下载一个超大的文件,或者是编译一个非常耗时的项目,我们关闭掉该SecureCRT的连接,下次再进入,这个会话依然存在,会话里面运行的编译命令或者wget下载命令仍然在运行,并不会因为关闭SecureCRT而终止,这正是我们需要的功能。不受SecureCRT网络连接的影响。甚至我们可以关掉整个SecureCRT程序。

2. ctrl+b d 退出会话,回到shell的终端环境

我们刚才是通过 tmux new -s 命令创建一个tmux会话并进入该会话的,如果要退出这个会话环境回到终端环境(会话里面的程序不会退出在后台保持继续运行)。应该如何操作呢,例如上图,当前我们在tmux的会话环境中,使用一个快捷键 ctrl+b d (按ctrl+b 之后再按一个字母d即可,字母d是detach的缩写)。操作之后的结果如下:

detach

可以看到绿色的状态栏消失了,而顶部出现一个[detached],表示已经脱离tmux会话,现在已经不在tmux的会话环境中回到shell终端环境中了。

这里有必要说一下在tmux会话环境中,我们经常会用到tmux的组合键,一般的组合键中都会加一个前缀也就是 ctrl+b 另外,在后面的描述中,我们说的终端环境是指使用SecureCRT进入远程linux之后但是没有进入tmux的会话环境的状态。

通过上面的操作 ctrl+b d 之后,回到终端环境,实际上现在tmux的会话还在后台运行,如何查看呢。

3. tmux ls 终端环境查看会话列表

在终端环境中,我们可以通过tmux ls 命令来查看后台运行中的tmux的会话列表,例如:

tmuxls

可以看到在列出的列表中,只有1行,说明只有一个session,其中左边的session1表示该session的名字,中间2 windows说明该session1会话中有2个window,右边表示该会话创建的时间。如果该机器中有多个tmux会话在后台运行,那么这里会列出多行。因为tmux会话在后台运行,我们猜测实际上肯定是有tmux的进程在后台运行来维持这些会话。我们可以ps看一下:

pstmux

可以看到我们之前创建会话的命令还在后端运行。

4. ctrl+b s 会话环境查看会话列表

上面的命令中我们已经退出了tmux的会话环境,在终端环境中通过tmux ls 来列出当前linux机器后台运行的tmux会话列表。那么假设我们当前环境已经在tmux的会话环境中,我们如何得到当前tmux的会话列表呢,如果每次都要退出当前会话,先回到shell终端环境再运行tmux ls 来查看就很不方便,那么在tmux的会话环境中,我们可以通过 ctrl+b s 来获取当前linux机器上tmux所有的后台会话列表,例如操作之后显示如下:

sessionls

此时可以通过方向键选择会话并回车,在会话间进行切换。

5. tmux a -t session1 从终端环境进入会话

如果在终端环境中运行 tmux ls 查看有tmux会话正在后台运行,如何进入到该正在后台中运行的会话呢,通过运行 tmux a -t session1 即可进入到该已存在的会话 session1 中。其中a字母是attach的头字母,表示附加, -t 指定要进入已存在的会话名,如果不存在则会报告 session not found 错误。

6. tmux kill-session -t session1 销毁会话

我们可以在终端环境和会话环境中销毁会话,例如在终端环境中运行 tmux kill-session -t session1 结束名字为session1的tmux会话。

在会话环境中运行 ctrl+b : (注意按组合键之后再按一个冒号键),状态栏变成黄色之后提示我们可以在会话环境中输入命令,此时输入 kill-session -t session1 回车即可。其中session1是要销毁的会话名。

会话销毁之后,在终端环境中运行tmux ls 或者在会话环境中运行 ctrl+b s 则被销毁的会话不会再出现在会话列表中。

7. tmux rename -t old_session_name  new_session_name  重命名会话

我们可以在终端环境中将会话重命名,如上面的命令,重命名之后通过 tmux ls 命令在终端环境中看到的列表中会显示会话的新名称。

8. ctrl + b $ 重命名会话 (在会话环境中)

在会话环境中,我们可以通过前缀命令加上 $ 的组合来重命名当前打开的会话的名字

tmux的window

一个tmux的会话中可以有多个窗口(window),每个窗口又可以分割成多个pane(窗格)。我们工作的最小单位其实是窗格。默认情况下在一个window中,只有一个大窗格,占满整个窗口区域。我们在这个区域工作。

本节我们讲解一下tmux窗口的相关操作,后面我们再说一下关于窗格(pane)的相关知识。首先在新创建的一个会话里面是会默认创建一个窗口的。正如我们上面提到过的图一样,如下所示:

session

新创建的会话中会默认创建一个窗口,该窗口名字一般是登陆终端的用户名@主机名,我们可以通过 crtl+b , (组合键之后按一个逗号)来修改当前窗口的名字,如上图所示的窗口名字myserver1就是修改之后的名字。该名字后面有一个*号,表示该窗口是活动窗口(键盘输入会输入到该窗口中)

1. 创建window

可以在当前会话窗口中创建多个窗口,例如 ctrl+b c 创建之后会多出一个窗口如下图所示:

create_window

默认情况下创建出来的窗口由窗口序号+窗口名字组成,窗口名字可以由上面提到的方法修改,可以看到新创建的窗口后面有*号,表示是当前窗口。

2. 切换window

在同一个会话的多个窗口之间可以通过如下快捷键进行切换:

ctrl+b p (previous的首字母) 切换到上一个window。

ctrl+b n (next的首字母) 切换到下一个window。

ctrl+b 0 切换到0号window,依次类推,可换成任意窗口序号

ctrl+b w (windows的首字母) 列出当前session所有window,通过上、下键切换窗口

ctrl+b l (字母L的小写)相邻的window切换

3. ctrl+b & 关闭window

ctrl+b & 关闭当前window,会给出提示是否关闭当前窗口,按下y确认即可。

tmux的pane

tmux的一个窗口可以被分成多个pane(窗格),可以做出分屏的效果。

1. ctrl+b % 垂直分屏(组合键之后按一个百分号),用一条垂线把当前窗口分成左右两屏。

pane_v

2. ctrl+b " 水平分屏(组合键之后按一个双引号),用一条水平线把当前窗口分成上下两屏。

pane_h

分屏之后光标停留在哪个pane上,表示该pane是活动的,另外一般情况下当前pane会被绿色的线条围起来。一般分屏之后当前窗口名字会重置为默认窗口名字。通过多次分屏操作,我们可以得到各种样子的分屏效果,例如下图显示的是一次垂直分屏之后,在右边pane中再次水平分屏的效果:

pane_multi

可以看到右下角的分屏是绿色框,说明是当前活动pane

3. 切换pane

ctrl+b o 依次切换当前窗口下的各个pane。

ctrl+b Up|Down|Left|Right 根据按箭方向选择切换到某个pane。

ctrl+b Space (空格键) 对当前窗口下的所有pane重新排列布局,每按一次,换一种样式。

ctrl+b z 最大化当前pane。再按一次后恢复。

4. 关闭pane

ctrl+b x 关闭当前使用中的pane,操作之后会给出是否关闭的提示,按y确认即关闭。

tmux window中的历史输出查看

在tmux里面,因为每个窗口(tmux window)的历史内容已经被tmux接管了,当我们在每个tmux的window之间进行来回切换,来回操作,那么我们没有办法看到一个window里面屏幕上的历史输出。没办法使用鼠标滚动(例如在SecureCRT中)查看之前的内容,在SecureCRT中通过鼠标滚动看到的输出一定是各个tmux的window的输出混乱夹杂在一起的,如果要看当前窗口的历史内容,那么应该怎么办呢,通过在当前的tmux window 按 ctrl-b 进入copy mode,然后就可以用PgUp/PgDn来浏览历史输出了,按q退出。

总结

tmux中的最重要的三个概念会话,窗口,pane的使用方法已经介绍完毕,其实这是我们操作tmux的最常用功能,如果掌握好,足以应付大多数工作。另外tmux还有一些高级用法,例如可以个性化的配置其组合键(官方默认的ctrl+b组合键按起来不太方便可以修改,UI设置,鼠标支持,复制粘贴等),但是我觉得这些高级功能基本不太用的到。如有需要大家可以自行查阅相关资料。


http://chatgpt.dhexx.cn/article/VmZ56962.shtml

相关文章

Tmux 使用教程

Tmux 是一个终端复用器(terminal multiplexer),非常有用,属于常用的开发工具。 本文介绍如何使用 Tmux。 一、Tmux 是什么? 1.1 会话与进程 命令行的典型使用方式是,打开一个终端窗口(termin…

uniapp 应用APP跳转微信小程序

最近APP项目开发完成,在评审会上老板提了一个需求,想在开发的APP上添加一个链接,可以跳转公司的小程序商城。 原以为会很复杂,结果只有短短的几行代码。 plus.share.getServices(function(res){ var sweix…

h5网页跳转微信小程序

H5网页跳转微信小程序 再次记录下, 通过使用微信开放标签,可便捷的跳转到微信小程序。 文章目录 H5网页跳转微信小程序效果图一、小程序跳转按钮二、开放标签使用步骤1. 绑定域名2. 引入js文件3. config权限配置及ready处理4. 调用方法 解决VUE中警告注意…

【微信】h5跳转微信小程序

h5静态页面跳转微信小程序 注意:只有发布过的小程序可以使用这个方案,不然无法获取 url schema 如果无法获取 url schema ,请检查小程序是否已发布 1 理论方案 主要有以下两种 1 云开发:静态页面在微信云上进行开发&托管&…

web页面跳转微信小程序

现在微信开放程度比较宽松了,所以web页面跳转小程序需求很大,先来预览一下: 接下来咱们看看怎么实现: 1、需要引入微信jssdk: http://res.wx.qq.com/open/js/jweixin-1.6.0.js(支持https) 需要使用到js-sdk-1.6.0的版…

uniapp h5跳转微信小程序(wx-open-launch-weapp)

目录 一、注意事项 二、使用步骤 三、调整样式 一、注意事项 微信版本要求为:7.0.12及以上系统版本要求为:iOS 10.3及以上、Android 5.0及以上已认证的服务号,服务号绑定“JS接口安全域名”下的网页可使用此标签跳转任意合法合规的小程序。…

Android App跳转微信小程序

最近,有一个App跳转小程序的需求,参考微信的官方文档,接入还是比较简单的,不过中途遇到了一个坑,所以记录一下。 首先,需要登录微信开放平台 微信开放平台,创建一个移动应用,然后系…

外部链接跳转到微信,以及外部跳转到微信小程序(精华)

外部链接跳转到微信,以及跳转到微信小程序(精华) 记录自己实现这个跳转的过程, 苦于网上没有找到一个自己想要的教程,要么是软件,要么是其他看不懂的,如果对你有帮助的话,给个点赞哈…

短信链接跳转微信小程序(URLSchema等)

文章目录 实现方案需下载二维码使用URL Schema微信云开发 实现方案对比实践出真知(URLSchema)获取微信access_token获取openlinkH5页面(模拟短信跳转,验证ok) 反馈问题ios和Android 对URLSchema兼容性开发者工具可直接…

H5跳转微信小程序教程

H5设计简单,功能齐全,使用范围较为普遍,深受推广者的欢迎。H5跳转到微信小程序、微信公众号、长摁添加微信好友等场景,是很多推广者热衷使用的功能。 如何实现H5中点击跳转到微信小程序呢?使用跳转链接即可达成效果&a…

h5-浏览器点击跳转微信小程序或微信内部广告页(微信浏览器)跳转小程序的实现方法。

一.微信内部浏览器使用<微信开放标签>唤起微信小程序 官方开发文档:[https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/url-scheme.html](%5Bhttps://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/url-scheme.html%5D%28…

H5跳转微信公众号解决方案

1.适用场景 适用H5跳转公众号的场景 2.跳转方案 微信内H5跳转 微信内可链接直接跳转公众号关注页。 登陆微信公众平台&#xff0c;F12打开浏览器控制台console输入wx.commonData.data.uin_base64 https://mp.weixin.qq.com/mp/profile_ext?actionhome&__biz上方步骤…

H5跳转微信小程序方案

开发中涉及到一个需求&#xff0c;就是从一个预约票购买的页面 需要跳转到 查看行程轨迹 的小程序。试过其他方法才知道微信h5或小程序中是无法直接跳转到小程序的。这里微信提供了一个开放标签&#xff0c;wx-open-launch-weapp&#xff0c;通过它可以满足需求。 开放对象&am…

ofo否认破产:目前运营正常 有关债务正在诉讼或协商中

【TechWeb】4月2日消息&#xff0c;近日&#xff0c;ofo运营主体之一北京拜克洛克科技有限公司现身全国企业破产重整案件信息网&#xff0c;对此&#xff0c;ofo发布声明回应称&#xff0c;“有关ofo破产的新闻严重失实。ofo目前运营一切正常&#xff0c;有关债务也在诉讼或者协…

破产清算对法定代表人的影响是什么

一、破产清算对法定代表人的影响是什么? 破产清算对法定代表人的影响是&#xff0c;很有可能在该企业破产清算完结之日起3年内不能做其他企业的法定代表人。 《企业法人法定代表人登记管理规定》 第四条 有下列情形之一的&#xff0c;不得担任法定代表人&#xff0c;企业登…

《企业破产法》

《企业破产法》之破产重整 基础概念 破产重整的企业&#xff0c;企业法人资格不注销&#xff0c;继续存续&#xff0c;不是让企业关门大吉、退出市场&#xff0c;而是通过对债务人企业实施债务、资产、业务、股权、管理等全方位的重组&#xff0c;找准企业出问题的原因并提出…

企业破产法6

重整程序 可能/已经具备破产原因 不能履行到期债务资产不足以清偿全部债务/明显缺乏偿债能力 明显丧失偿债能力可能的&#xff08;专用于重整&#xff09; 重整程序 取回权与破产不同 不能提前 重整计划通过 1/2人数2/3债权全部分组 法院强行批准 重整计划草案符合法定条…

破产清算与注册资金有关系吗

破产清算与注册资金有关系吗 首先要区分一下注册资本和公司财产的概念。注册资本是全体股东认缴的出资额&#xff0c;是公司资产的一部分;公司财产是包括注册资本及公司在生产经营过程中累计的所有财产的总和。破产清算时&#xff0c;清算的是公司的财产和债务&#xff0c;因此…

美国历史最大10宗破产保护

美国历史最大10宗破产保护 来源&#xff1a;http://www.ruanyifeng.com/blog/2008/09/biggest_chapter_11_cases.html 9月15日&#xff0c;美国最大的投资银行之一——雷曼兄弟公司——申请破产保护。 当天&#xff0c;CNBC就做了一个专题《美国历史上最大的10宗破产保护》&am…

PJzhang:贷款逾期与失信被执行人

猫宁&#xff01;&#xff01;&#xff01; 最近看到一家网贷机构在APP上的温馨提示&#xff0c;提到了网贷逾期与个人征信的关系以及向客户发放贷款的7项基本原则。 如下&#xff1a; 贷款申请及逾期告知 尊敬的客户&#xff0c;感谢您选择####股份有限公司为您提供贷款金融服…