Tmux教学【有图有代码】

news2025/9/20 22:35:39

Tmux教学【有图有代码】

  • 0、前言
  • 1、Tmux基本概念
    • 1.1 安装
  • 2、Tmux使用
    • 2.1 session操作
    • 2.2 window操作
    • 2.3 pane操作
    • 2.4 其他操作
  • 3、日常中Tmux的工作流

0、前言

想必同学们在跑代码时也许会存在这样一个问题:
本地在连接远程服务器跑代码的时候,本地ssh窗口一旦关闭,那么远程任务也停止了。这样的话就需要本地一直开着这个窗口,这是一件非常不方便的事情。😕😕😕

那么今天介绍的Tmux是可以解决上面的问题的一个小工具,一旦学会了,对于日后代码开发也是非常有帮助的。😍😍😍

1、Tmux基本概念

在这里插入图片描述
Tmux是一个终端复用器(terminal multiplexer),属于常用的开发工具,学会了之后可以大大的提高工作效率。

在使用tmux之前我们先了解关于tmux的几个名词:

  1. session,会话(任务)
  2. windows,窗口
  3. pane,窗格

下面放一个图,来介绍什么是上面三个,首先创建多个session。
tmux new -s session1
然后先 ctrl+b+ d 将当前session与窗口分离
然后继续创建session
tmux new -s session2
继续 ctrl+b+ d 将当前session与窗口分离
重复上面的步骤就可以创建多个session
之后进入tmux,按 ctrl+b+ w 得到下面图片
在这里插入图片描述
- 开头的就是session。每个session对应下面的就是windows,windows可以有多个,即一个session对应多个windows。
下面tmux new-window或者tmux new-window -n your-window-name自定义window名字。按 ctrl+b+ w 如下图得到多个windows:
在这里插入图片描述
然后window里面又可以分多个pane(窗格),左右划分ctrl+b %
上下划分:ctrl+b " 得到如下图:
在这里插入图片描述
具体窗格操作见下面的介绍。快捷键记不住可以用ctrl+b+ ?来进行查看。看到这里想必下面的知识也不难理解了,理解不了的也可以先看下面,然后回来再看,有助于理解。

关于session,很多人把session称为会话,但我觉得叫任务更适合一些。

在普通的终端中,窗口和其中由于session(任务)而启动的进程是连在一起的,关闭窗口,session就结束了,session内部的进程也会终止,不管是否运行完。但是在具体使用中,我们希望当前的session隐藏起来,在终端中做其他事情,但是又不希望session及其进程被关闭。这样就需要用到tmux,对session进行解绑。之后再想继续出来这个session的时候,再次绑定就可以回到之前的工作状态。

对于window可以理解为一个工作区,一个窗口

对于一个session,可以创建好几个window,对于每一个窗口,都可以将其分解为几个pane小窗格。

所以,关于session、window、pane的关系是:
[ p a n e ∈ w i n d o w ] ∈ s e s s i o n [pane \in window] \in session [panewindow]session

1.1 安装

# Ubuntu or Debian
sudo apt-get install tmux

# CentOS or Fedora
sudo yum install tmux

# Mac
brew install tmux

2、Tmux使用

2.1 session操作

  1. 启动
    新建session,可以在terminal上输入tmux命令,会自动生成一个id为0的session
tmux

也可以在建立时显式地说明session的名字这个名字可以用于解绑后快速的重新进入该session:

tmux new -s your-session-name
  1. 分离

在tmux窗口中,按下 ctrl+b d 或者输入以下命令,就会将当前session与窗口分离,session转到后台执行:

tmux detach
  1. 退出
    如果你想退出该session,可以杀死session:
tmux kill-session -t your-session-name

当然,也可以使用ctrl+d关闭该session的所有窗口来退出该session。

  1. 绑定、解绑、切换session
    假设现在正处于session1,使用分离操作就是将session1进行解绑:
tmux detach

而如果你想再次绑定session1,可以使用命令:

tmux attach -t your-session-name
  1. 切换到指定session:
tmux switch -t your-session-name
  1. 重命名session
tmux rename-session -t old-session new-session

2.2 window操作

一个session可以有好几个window窗口。

  1. 新建窗口tmux new-window
# 新建一个指定名称的窗口
tmux new-window -n your-window-name
  1. 切换窗口
    命令就不记了,使用快捷键更方便:
  • ctrl+b c: 创建一个新窗口(状态栏会显示多个窗口的信息)

  • ctrl+b p: 切换到上一个窗口(按照状态栏的顺序)

  • ctrl+b n: 切换到下一个窗口

  • ctrl+b w: 从列表中选择窗口(这个最好用)

  1. 重命名窗口
tmux rename-window -t old_name new_name

2.3 pane操作

tmux可以将一个窗口分为几个窗格(pane),每个窗格运行不同的命令。

  • 划分窗格
# 划分为上下两个窗格
tmux split-window

# 划分左右两个窗格
tmux split-window -h

其实划分窗格pane使用快捷键更方便,如果你当前pane正在运行程序不就没法使用命令了嘛。

左右划分:ctrl+b %
上下划分:ctrl+b "

  1. 光标位置
    使用语句太麻烦了,使用快捷键最好:ctrl+b arrow-key(方向键):光标切换到其他窗格
  2. 交换窗格位置
# 当前窗格往上移
tmux swap-pane -U

# 当前窗格往下移
tmux swap-pane -D
  1. 关闭窗格
    ctrl+d,记住如果只有一个窗格就是关闭window哦

2.4 其他操作

# 列出所有快捷键,及其对应的 Tmux 命令
$ tmux list-keys

# 列出所有 Tmux 命令及其参数
$ tmux list-commands

# 列出当前所有 Tmux 会话的信息
$ tmux info

# 重新加载当前的 Tmux 配置
$ tmux source-file ~/.tmux.conf
  • tmux上下翻屏
    使用快捷键 ctrl+b [ ,就可以通过方向键上下移动使用PageUpPageDown可以实现上下翻页。

3、日常中Tmux的工作流

  1. 新建会话tmux new -s my_session
  2. 在 Tmux 窗口运行所需的程序。
  3. 按下快捷键Ctrl+b d将会话分离。
  4. 下次使用时,重新连接到会话tmux attach-session -t my_session
    (重要的是退出按Ctrl d会结束session,而Ctrl+b d会保留session)

tmux ls查看所有session,方便进入。

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

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

相关文章

一分钟!图片生成32种动画;Adobe绘画工具大升级;复盘Kaggle首场LLM比赛;VR科普万字长文 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🔥 Adobe Firefly 大升级!图像高清、操作便利,体验感拉满 https://firefly.adobe.com Adobe Firefly 升级了&…

钉钉智慧校园小程序如何开发,你知道么!

随着科技的不断发展,数字化已经成为了现代校园发展的重要趋势。在这个背景下,数字智慧校园小程序应运而生,为校园用户提供了更加便捷、高效的生活和学习体验。本文将围绕钉钉数字智慧校园小程序搭建方案进行创作,主要内容包括背景…

在ThingsBoard中,使用部件库自定义RPC下发内容

众所周知,在ThingsBoard中可以对设备进行RPC指令的下发,但有一个限制,必须符合以下的格式 {method:get,payload: {a: a} }所发送的内容必须包含method 与payload。两个字段。 有关RPC的API 可以查询这个链接 https://thingsboard.io/docs/user-guide/rpc/ 但是有朋友要求…

springboot企业客户信息反馈平台springboot39

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

多输入多输出 | MATLAB实现CNN-GRU-Attention卷积神经网络-门控循环单元结合SE注意力机制的多输入多输出预测

多输入多输出 | MATLAB实现CNN-GRU-Attention卷积神经网络-门控循环单元结合SE注意力机制的多输入多输出预测 目录 多输入多输出 | MATLAB实现CNN-GRU-Attention卷积神经网络-门控循环单元结合SE注意力机制的多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预测效果…

Linux C文件操作

文章目录 文件操作函数文件系统调用系统调用与标准函数c的调用的区别文件的读取位置标准c函数系统调用空洞文件 文件的内存映射操作文件目录 linux下的文件操作包括两种,一种是使用C函数,一种是使用系统调用。 gcc 常用来实现c程序的编译gcc filename.c …

java正则表达式 及应用场景爬虫,捕获分组非捕获分组

正则表达式 通常用于校验 比如说qq号 看输入的是否符合规则就可以用这个 public class regex {public static void main(String[] args) {//正则表达式判断qq号是否正确//规则 6位及20位以内 0不能再开头 必须全是数子String qq"1234567890";System.out.println(qq…

vscode利用lauch.json和docker中的delve调试本地crdb

---- vscode利用delve调试crdb 创建了一个delve容器用于debug crdbdelve: Delve是一个用于Go编程语言的调试器。它提供了一组命令和功能,可以帮助开发人员在调试过程中检查变量、设置断点、单步执行代码等操作。Delve可以与Go程序一起使用,…

自定义spring-boot-starter

自定义加载spring-boot-starter 第一步 创建一个Maven空项目 luban-spring-boot-starter 引入基础依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>2.5.0</ve…

Linux下安装DM8

上传iso文件到服务器 文件路径放在 /works/tools/dm8_20230511_x86_rh6_64.iso mount镜像文件 执行mount命令 mkdir /mntdm8mount -t iso9660 /works/tools/dm8_20230511_x86_rh6_64.iso /mntdm8cd /mntdm8 创建数据库用户 groupadd dinstalluseradd -g dinstall -m -d …

测试面试官会做些什么?

虽然没有了金九银十&#xff0c;但是公司的测试HC&#xff08;headcount&#xff0c;指公司HR预计招聘的员工人数&#xff09;还是没有完全锁死&#xff0c;断断续续的也在帮着面试一些人。本文就以自己的经验&#xff0c;从面试官的角度&#xff0c;聊聊面试测试过程中的那些事…

【C/C++】STL——深度剖析list容器

​&#x1f47b;内容专栏&#xff1a; C/C编程 &#x1f428;本文概括&#xff1a;list的介绍与使用、深度剖析及模拟实现。 &#x1f43c;本文作者&#xff1a; 阿四啊 &#x1f438;发布时间&#xff1a;2023.10.12 一、list的介绍与使用 1.1 list的介绍 cpluplus网站中有关…

fastjson-BCEL不出网打法原理分析

FastJson反序列化漏洞 与原生的 Java 反序列化的区别在于&#xff0c;FastJson 反序列化并未使用 readObject 方法&#xff0c;而是由 FastJson 自定一套反序列化的过程。通过在反序列化的过程中自动调用类属性的 setter 方法和 getter 方法&#xff0c;将JSON 字符串还原成对…

低代码提速应用开发

低代码介绍 低代码平台是指一种能够帮助企业快速交付业务应用的平台。自2000年以来&#xff0c;低代码市场一直充斥着40大大小小的各种玩家&#xff0c;比如国外的Appian、K2、Pega Systems、Salesforce和Ultimus&#xff0c;国内的H3 BPM。 2015年以后&#xff0c;这个市场更是…

《3D 数学基础》几何检测-相交性检测

目录 1. 2D直线相交 2. 3D射线相交点 3. 射线和平面的交点 4. 3个平面的交点 5. 射线和圆或者球交点 6. 两个圆或者球是否相交 7. 球和平面的相交性检测 8. 射线和AABB的相交性&#xff08;13.17&#xff09; 9. 射线和三角形的相交性&#xff08;13.16&#xff09; …

visual studio设置主题和背景颜色

visual studio2019默认的主题有4种&#xff0c;分别是浅白色、深黑色、蓝色、蓝(额外对比度)&#xff0c;背景颜色默认是纯白色RGB(255,255,255)。字体纯白色看久了&#xff0c;眼睛会感到酸痛、疲劳&#xff0c;建议改成浅白RGB(250,250,250)、豆沙绿RGB(85,123,105)、透明蓝白…

为什么要用回馈式电子负载

回馈式电子负载主要作用是模拟真实负载情况下的电流和电压变化&#xff0c;它在电子设备的开发、测试和调试过程中起到重要的作用。回馈式电子负载可以模拟各种负载条件&#xff0c;包括不同的电流和电压变化&#xff0c;这对于测试和验证电子设备的性能非常重要&#xff0c;可…

ios UI 基础开发一

目录 第一节&#xff1a;基础库 第二节&#xff1a;弹出模拟器的键盘 第三节&#xff1a;模拟器回到桌面 第四节&#xff1a;Viewcontroller 与 View 的关系 第五节&#xff1a;快捷键 第六节&#xff1a;键盘召回 ​第七节&#xff1a;启动流程xcode介绍 第八节&#xf…

英国金融科技公司【kennek】完成1250万美元融资

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;总部位于英国伦敦的金融科技公司kennek今日宣布已完成1250万美元种子轮融资。 本轮融资由HV Capital领投&#xff0c;荷兰创始人基金、AlbionVC、FFVC、Plug Play Ventures和Syndicate One参与。 …

java Maven入门笔记

后端Web开发技术的学习&#xff0c;我们要先学习Java项目的构建工具&#xff1a;Maven 目录 Maven概述Maven介绍及其作用Maven模型介绍Maven仓库Maven安装 IDEA集成Maven配置Maven环境当前工程设置全局设置 Maven项目创建Maven项目POM配置详解Maven坐标详解 导入Maven项目 依赖…