终端神器:tmux

news2024/11/27 23:46:00

安装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

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

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

相关文章

sinc 函数

See https://wuli.wiki/online/sinc.html 公式(3)的证明见 https://wuli.wiki/online/JdLem.html#ex_JdLem_1 百度百科

git快速上传代码

① git init&#xff1b; 初始化git&#xff0c;之后在文件夹里有.git文件&#xff0c;这个需要 勾选才能查看。 ② git remote add test myFisrtTest: 测试专用 这里的test是自定义的&#xff0c;myFisrtTest: 测试专用 是远程仓库 ③ git branch -a 这里是查看分支 ④ …

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

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

软磁直流测试系统全自动测量软件

软磁直流测试系统软件能够运行于 Windows 系统下作界面全中文提示&#xff0c;操作直观简捷。全自动控制与计算&#xff0c;智能化判断&#xff0c;最大限度消除人工操作所带来的误差。自动测量&#xff1a;Bm、Br、Hc、μi、μm 等静态磁特性参数&#xff1b;并绘制磁滞回线、…

记录:unity脚本的编写6.0

目录 unity UI系统添加ui编写脚本 unity UI系统 在日常的游戏或者别的什么活动中&#xff0c;ui总是必不可少的一项&#xff0c;在java中也有关于GUI的内容&#xff0c;unity也不例外&#xff0c;这次就使用脚本控制在unity添加的各种ui组件&#xff0c;使他们可以完成一些我们…

企业级真实应用利用Mybatis-Plus进行分页查询处理

怎么导入依赖我在之前的文章里边有说过不理解的可以看看 你应该懂点Mybatis-plus&#xff0c;真的好用 1&#xff1a;了解Page<T>类的使用 首先我们需要使用到Page类 &#xff0c;建立一个Page类&#xff0c;泛式类型中放入我们需要输出的类&#xff0c;是列表的话就…

(C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。

要求&#xff1a;原始数组的数据从键盘随机输入&#xff0c;新数组以4行4列的方式输出。 #include<stdio.h> int main() {int matrix[4][4],matrix2[4][4];int count;for(int i 0;i < 4;i )for(int j 0;j < 4;j )scanf("%d",&matrix[i][j]);for(i…

HarmonyOS元服务实现今天吃什么

一、前言 作为一个职业打工人&#xff0c;每天点外卖吃啥东西都有选择综合症&#xff0c;突发奇想让程序帮我们随机选择一个吃的&#xff0c;是不是可以解决我们的选择问题呢&#xff0c;说干就干&#xff0c;我们就使用HarmonyOS元服务实现一下这个功能。为什么选择这个Harmon…

Open X-Embodiment 超大规模开源真实机器人数据集分享

近期&#xff0c;Google旗下的前沿人工智能企业DeepMind汇集了来自 22 种不同机器人类型的数据&#xff0c;创建了 Open X-Embodiment 数据集并开源了出来。该数据集让他们研发的RT-2 机器人在制造和编程方式上有了重大飞跃。 有分析称&#xff0c;在上述数据集上训练的 RT-2-…

每天一点python——day67

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

工业数据的“最后一公里”怎么走?

随着工业互联网的迅猛发展&#xff0c;工业数据已经成为推动制造业转型升级的重要动力。然而&#xff0c;面对海量的工业数据&#xff0c;如何高效、准确地走过数据的“最后一公里”&#xff0c;成为制约企业发展的关键问题。本文将探讨工业数据“最后一公里”所面临的挑战&…

15.“百钱百鸡“问题

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码1程序运行代码优化程序运行代码优化进阶 前言 本系列为结构循环编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 二、题目分析 三、解题 程序运行代码1 #include <stdio.h> int main…

ARPG----C++学习记录05 Section10 武器类,IK重定向,装备和捡起武器,动画蓝图

代码更新 11.13 BAOfanTing/ARPG_Game_Code7ab54d2 GitHub 武器类 基于item类&#xff0c;创建一个weapon的C类&#xff0c;基于它创建一个蓝图&#xff0c;刀剑的网格体给它。在蓝图里调动之前在C写好的sin函数添加到世界偏移量里&#xff0c;得到一把悬浮刀 在item把重叠函…

Win10系统把D盘空间分给C盘的方法

在Win10系统中&#xff0c;用户发现C盘的空间太少了&#xff0c;导致电脑运作出现了卡顿的问题&#xff0c;所以想把D盘的空间分给C盘&#xff0c;但不清楚具体的操作步骤。接下来小编给大家介绍两种简单的操作方法&#xff0c;帮助大家轻松将Win10系统D盘的空间分给C盘&#x…

​Unity Vuforia 新手(图片识别)教程,后续整理 实体识别 详细流程

文章目录 前言一、Vuforia是什么&#xff1f;二、Unity导入Vuforia1.去Unity - Windows – Asset Store&#xff0c;搜vuforia engine&#xff0c;添加到我的资源2.打开package Manager&#xff0c;导入到工程中即可3.或者在vuforia engine官网下载的Unity包导入4.检查是否导入…

mysql数据库时间

记录MySQL今天又一个新的问题&#xff1a; 场景&#xff1a;nodejs后台容器部署 问题原因&#xff1a;纯属好心办坏事&#xff0c;由于考虑了时区&#xff08;现在看来纯属多余&#xff09;&#xff0c;在写入时间时使用了time_str.toLocaleString("chinese", { ti…

android studio开发flutter应用,使用mumu模拟器调试软件

安装好mumu模拟器&#xff0c;先打开网易mumu模拟器的开发者模拟。系统应用 > 设置 > 关于手机 > 版本号 多点击几次调出开发者模式&#xff1a; 然后在android studio中刷新设备列表&#xff0c;就能看到新设备了&#xff1a; 如何确定这个设备就是你的mumu模拟器呢…

Cesium:绘制点

作者&#xff1a;CSDN _乐多_ 本文记录了在Cesium中绘制点的函数。 文章目录 data() 里面设置点的样式 pointOption: {show: true,pixelSize: 10,heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,color: Cesium.Color.RED,outlineColor: Cesium.Color.YELLOW,outl…

视频封装格式

FLV&#xff08;Flash Video&#xff09; FLV封装格式 Tag Data分为Audio&#xff0c;Video&#xff0c;Script三种 TS&#xff08;Transport Stream&#xff09;传输流 TS文件分为三层&#xff0c;&#xff08;倒叙更好理解&#xff09; TS层&#xff1a;在PES层基础上加入…

java 旋转方阵

public static void main(String[] args) {Scanner scanner new Scanner(System.in);// N阶方阵int n scanner.nextInt();// 构建方阵List<List<Integer>> matrix new ArrayList<>();for (int i 0; i < n; i) {List<Integer> row new ArrayLis…