终端神器:tmux

安装tmux+简单使用+自己的理解(小白专属)

在这里插入图片描述

使用的初衷
在Linux终端下,由于session(会话)和windows(窗口)是绑定一起的,你打开一个终端的黑窗口就是打开一个会话,如果你关闭了黑窗口,那么你所运行的程序也会关闭。我们在使用SSH远程连接时,希望关闭连接之后,程序仍然运行,等我们下次连接,进入这个会话,就可以继续看到程序的运行状态。因此,我们需要学会如何使用tmux这个工具。

一、基本概念

  • session(会话)
  • windows(窗口)
  • pane (窗格)

这三个名词是使用tmux之前,需要了解的。这里自己画了一张图,可以更清晰的解释三者之间的关系。

图中的意思就是说我们可以创建多个session,一个session可以创建多个窗口,而一个窗口可以打开多个窗格,每个窗格都可以做不同的事情,比如:安装软件,运行程序等等。

在这里插入图片描述

二、常用命令和快捷键

sudo apt-get install tmux    安装
ps aux | grep tmux   查看后台是否启动server进程
tmux   进入tmux中
exit   退出

1.会话

命令
tmux new -s "session name"   创建session
tmux ls   查看session列表
tmux attach -t "session name"   重新接入会话(已经分离过的)
tmux kill-session -t "session name"    杀死会话
tmux switch -t "session name"    切换会话
tmux detach   分离会话
tmux rename-session -t "old name" "new name"
快捷键
Ctrl+b d  分离当前会话
Ctrl+b s  列出所有会话
Ctrl+b $  重命名当前会话

2.窗口

命令
tmux new-window     新建一个窗口
tmux new-window -n "windowname"    新建一个指定名称的窗口
tmux select-window -t "window number"    切换到指定编号的窗口
tmux select-window -t "window name"      切换到指定名称的窗口
tmux rename-window "new name"     重命名窗口
快捷键
Ctrl+b c  创建一个新的窗口,状态栏会显示多个窗口的信息
Ctrl+b p  切换到上一个窗口(按照状态栏上的顺序)
Ctrl+b n  切换到下一个窗口
Ctrl+b <number>  切换到指定编号的窗口
Ctrl+b w  从列表中选择窗口,按上下键进行选择
Ctrl+b ,  窗口重命名

3.窗格

命令
tmux split-window       划分上下两个窗格
tmux split-window -h    划分左右两个窗格
tmux select-pane -U     光标切换到上方窗格
tmux select-pane -D     光标切换到下方窗格
tmux select-pane -L     光标切换到左边窗格
tmux select-pane -R     光标切换到右边窗格
tmux swap-pane -U       当前窗格上移
tmux swap-pane -D       当前窗格下移
快捷键
Ctrl+b %  划分左右两个窗格
Ctrl+b "  划分上下两个窗格
Ctrl+b ;  光标切换到上一个窗格
Ctrl+b o  光标切换到下一个窗格
Ctrl+b x  关闭当前窗格
Ctrl+b !  将当前窗格拆分为一个独立窗口
Ctrl+b z  将当前窗格全屏显示,再使用一次会变回原来的大小
Ctrl+b q  显示窗格编号
Ctrl+b ↑↓→←   切换窗格
在窗格中输入:exit  也可以结束这个窗格

4.其他

tmux list-keys       列出所有快捷键,及其对应的 Tmux 命令
tmux list-commands   列出所有 Tmux 命令及其参数
tmux info            列出当前所有 Tmux 会话的信息
tmux source-file ~/.tmux.conf 

三、简易操作流程

1.新建会话:tmux new -s session_1

2.在tmux窗口运行所需的程序

3.输入:tmux detach  将会话分离

4.下次使用时,重新连接到会话:tmux attach -t session_1

希望对各位朋友有所帮助,如果有错误的地方,请见谅。

如果需要这篇文章的pdf版本,请在公众号“冬天的李同学”中回复“2023.11.14”

四、参考

1.https://blog.csdn.net/CSSDCC/article/details/121231906

2.https://www.bilibili.com/video/BV1ML411h7tF?t=683.4

3.https://www.bilibili.com/video/BV1da4y1p7e1?t=240.0

4.https://www.ruanyifeng.com/blog/2019/10/tmux.html

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL中修改注释+报错1067错误时的解决方法

修改某字段的注释内容的mysql语句 ALTER TABLE consumption_table MODIFY COLUMN risk_level tinyint(1) NOT NULL DEFAULT 0 COMMENT 0-低 1-中 2-高;修改某字段的注释内容的mysql语句时报错1067的解决方法 首先执行MySQL语句&#xff1a;SET sql_mode ‘ALLOW_INVALID_DAT…

【C++】类和对象(3)--初始化列表(再谈构造函数)

目录 一 引入 二 初始化列表概念 三 初始化列表特性 1 引用和const 2 混合使用 3 自定义成员情况 四 初始化列表中的初始化顺序 五 总结 一 引入 构造函数体赋值 class Date { public:Date(int year, int month, int day){_year year;_month month;_day day;} priv…

Word软件手动安装Zotero插件

文章目录 Word软件手动安装Zotero插件方法一方法二 参考资料 Word软件手动安装Zotero插件 方法一 关闭word在zotero中依次点击编辑—首选项—引用—文字编辑软件—重新安装加载项Microsoft word 方法二 寻找Zotero.dotm存储位置&#xff0c; 例如D:\Program Files\Zotero\ext…

Qt DragDrop拖动与放置

本文章从属于 Qt实验室-CSDN博客系列 拖放操作包括两个动作&#xff1a;拖动(drag)和放下(drop或称为放置)。 拖动允许 对于要拖出的窗口或控件&#xff0c;要setDragEnabled(true) 对于要拖入的窗口或控件&#xff0c;要setAcceptDrops(true) 下面以一个具体的用例进行说…

Accelerate 0.24.0文档 二:DeepSpeed集成

文章目录 一、 DeepSpeed简介二、DeepSpeed集成&#xff08;Accelerate 0.24.0&#xff09;2.1 DeepSpeed安装2.2 Accelerate DeepSpeed Plugin2.2.1 ZeRO Stage-22.2.2 ZeRO Stage-3 with CPU Offload2.2.3 accelerate launch参数 2.3 DeepSpeed Config File2.3.1 ZeRO Stage-…

什么是 IT 资产管理(ITAM),以及它如何简化业务

IT 资产管理对任何企业来说都是一项艰巨的任务&#xff0c;但使用适当的工具可以简化这项任务&#xff0c;例如&#xff0c;IT 资产管理软件可以为简化软件和硬件的管理提供巨大的优势。 什么是 IT 资产管理 IT 资产管理&#xff08;ITAM&#xff09;是一组业务实践&#xff…

【3dMax室内照明】如何在V-ray中设置照明分析?

如何在V-ray中设置照明分析&#xff1f; 在3dMax的V-Ray Next中添加了新的“照明分析”工具&#xff0c;以帮助您测量和分析场景中的灯光级别。您将能够创建假彩色热图和数据覆盖&#xff0c;以显示亮度&#xff08;以坎德拉为单位&#xff09;或照度&#xff08;以勒克斯为单位…

每天一点python——day67

#每天一点Python——67 #字符串判断方法&#xff1a;如图&#xff1a; #①判断指定字符串是否为合法标识符 shello,computer print(s.isidentifier()) #输出为False&#xff0c;不是合法标识符&#xff0c;这是因为标识符是由字母&#xff0c;数字&#xff0c;下划线组成&#…

安卓调用手机邮箱应用发送邮件

先来看看实现效果&#xff1a; 也不过多介绍了&#xff0c;直接上代码&#xff1a; private void openMail() {Uri uri Uri.parse("mailto:" "");List<ApplicationInfo> applicationInfoList getPackageManager().getInstalledApplications(Packa…

DPU国产生态版图又双叒扩大了

DPU朋友圈迎来30新伙伴&#xff01;近期&#xff0c;中科驭数已与联想、中科可控、统信、欧拉、龙蜥社区、新支点、亚信科技、人大金仓、瀚高、南大通用、GreatSQL、阿里云、曙光云等超30家关键厂商完成兼容性互认证。测试报告显示&#xff0c;中科驭数DPU系列产品在产品兼容性…

好消息!2023年汉字小达人市级比赛在线模拟题大更新:4个组卷+11个专项,助力孩子更便捷、有效、有趣地备赛

自从《中文自修》杂志社昨天发通知&#xff0c;官宣了2023年第十届汉字小达人市级比赛的日期和安排后&#xff0c;各路学霸们闻风而动&#xff0c;在自己本就繁忙的日程中又加了一项&#xff1a;备赛汉字小达人市级比赛&#xff0c;11月30日&#xff0c;16点-18点。 根据这几年…

ChatGPT只算L1阶段,谷歌提出AGI完整路线图

按照谷歌这个标准来看&#xff0c;大多数已有AI产品其实都分别进入了不同的AGI阶段&#xff0c;但只仅限于在技能水平上——要谈及通用性&#xff0c;目前只有ChatGPT等模型完全合格。 AGI应该如何发展、最终呈什么样子&#xff1f; 现在&#xff0c;业内第一个标准率先发布&a…

春秋云境靶场CVE-2022-32991漏洞复现(sql手工注入)

文章目录 前言一、CVE-2022-32991靶场简述二、找注入点三、CVE-2022-32991漏洞复现1、判断注入点2、爆显位个数3、爆显位位置4 、爆数据库名5、爆数据库表名7、爆数据库数据 总结 前言 此文章只用于学习和反思巩固sql注入知识&#xff0c;禁止用于做非法攻击。注意靶场是可以练…

任意注册漏洞

目录 一漏洞介绍 二实战演示 三漏洞修复 本文由掌控安全学院 - 小博 投稿 一漏洞介绍 1.未验证邮箱/手机号 情景&#xff1a;应用为了方便用户记录用户名&#xff0c;使用邮箱和手机号作为用户名&#xff08;因此很多应用在注册的时候就要求用户填写&#xff0c;多数时候…

java spring cloud 企业电子招标采购系统源码:营造全面规范安全的电子招投标环境,促进招投标市场健康可持续发展

功能描述 1、门户管理&#xff1a;所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含&#xff1a;招标公告、非招标公告、系统通知、政策法规。 2、立项管理&#xff1a;企业用户可对需要采购的项目进行立项申请&#xff0c;并提交审批&#xff0c;查看所…

vscode远程连接服务器报错

报错&#xff1a; Bad owner or permissions on C:\\Users\\Alice/.ssh/config> 过程试图写入的管道不存在。 1.ping一下config里面ip 2.ping的通&#xff0c;不是网络问题 3.扩展 -> remote-ssh -> 设置 -> 扩展设置&#xff08;红框&#xff09; 4.输入config绝…

后端接口性能优化分析-2

常见思路 1.批量思想&#xff1a; 这个其实是一个最容易想到的代码层次的修改&#xff0c;其实对业务上来说&#xff0c;结果都是一样的&#xff0c;只不过这个涉及到了一件事就是&#xff0c;像数据库中发请求&#xff0c;是发十次还是发一次的问题。其原因最根本的还是&…

评论:AlexNet和CaffeNet有何区别?

一、说明 在这个故事中&#xff0c;我们回顾了AlexNet和CaffeNet。AlexNet 是2012 年ILSVRC&#xff08;ImageNet 大规模视觉识别竞赛&#xff09;的获胜者&#xff0c;这是一项图像分类竞赛。而CaffeNet是AlexNet的单GPU版&#xff0c;因此&#xff0c;我们平时在普通电脑的Al…

一文懂得电源模块过温保护测试方法 ate测试软件助力测试

过温保护测试是电源模块保护功能测试项目之一&#xff0c;也是电源模块测试的重要测试指标&#xff0c;以保证电源模块过温保护功能正常&#xff0c;确保电源模块不受损坏。用ate测试软件测试电源模块过温保护&#xff0c;不仅可以保证测试结果的准确性&#xff0c;还可以多维度…

revit获取FamilySymbol的name

因为想解析把Element的CategoryId跟FamilySymbolId解析并存下来&#xff0c;这样就可以还原Revit中项目浏览器&#xff0c;里面的族的结构层次了。 参考&#xff1a;Revit中“Category、Family、 Familysymbol、 FamilyInstance”之间的关系​​​​​​ 但是对于wall和floor等…