tmux终端复用器

tmux使用手册

  • 会话与进程
  • 需求痛点
  • tmux作用
  • 使用场景
    • 安装tmux
    • 常用命令
    • 在tmux中编译代码
    • 多个显示器分辨率的tmux attach出现窗口不匹配的问题

会话与进程

命令行的经典使用方式:

  • 用户打开一个终端窗口(terminal window);
  • 用户在终端窗口中输入命令: ls、cd等等;

上述用户和计算机之间的这种临时交互,称为一次会话(session),会话的特点是终端窗口和其中启动的命令进程是连在一起的,打开窗口,会话开始,关闭窗口,会话结束,同时会话里运行的进程不论是否运行完,也随之终止。

需求痛点

  • ssh远程访问服务器,因为网络不稳定,编译/下载,或者其他命令被打断,无法持续进行;
  • 台式机的工作现场(环境变量、历史命令等)无法离开工位后,通过笔记本ssh登录使用;

tmux作用

主要是将用户会话和终端窗口“解绑”,将它门分离开,这样如果终端窗口关闭了(断网),和服务器的会话还能挂在后台。
tmux作用如下:

  • tmux允许在单个窗口中,同时去访问多个终端会话:对同时运行多个命令行程序有帮助,比如会话1用来编译,会话2用来下载;
  • tmux可以让终端窗口接入已经存在的会话:比如终端窗口通过ssh连接进入服务器后,还可以通过tmux命令接入已经存在的终端会话;
  • tmux允许每个会话有多个终端窗口:比如张三可以在终端窗口中用tmux使用一个会话,李四一样也可以用这个会话,因此可以多人实时共享终端会话;
  • tmux还可以像vim一样支持窗口任意垂直或者水平拆分;

使用场景

安装tmux

  • ubuntu或者debian(Debian是一个由自由软件社区发布的开放源代码操作系统)安装
sudo apt-get install tmux
  • CentOS或Fedora安装
sudo yum install tmux

常用命令

# 会话管理                                 
1. 启动tmux
tmux2. 退出tmux
输入exit或者使用快捷键(Ctrl+d)3. 新建会话
tmux new -s <session_name>4. 分离会话
tmux detach (或者快捷键Ctrl+b d)5. 查看会话
tmux ls # 或者是tmux ls-session6. 接入会话
tmux attach -t session_number 	# 使用会话ID
tmux attach -t <session_name>	# 使用会话名称7. 杀死会话
tmux kill-session -t session_number	# 使用会话ID
tmux kill-session -t <session_name>	# 使用会话名称8. 切换会话
tmux switch -t session_number	# 使用会话ID
tmux switch -t <session_name> 	# 使用会话名称9. 重命名会话
tmux rename-session -t session_number  <new_session_name># 窗口操作
1. 划分窗口
tmux split-window  	# 划分上下两个窗口
tmux split-window	# 划分左右两个窗口2. 窗口间光标切换
tmux select-pane -U # 上方窗口,快捷键:Ctrl+b 方向键↑
tmux select-pane -D	# 下方,快捷键:Ctrl+b 方向键↓
tmux select-pane -L # 左边,快捷键:Ctrl+b 方向键←
tmux select-pane -R #  右边,快捷键:Ctrl+b 方向键→3. 新建窗口
tmux new-window	# 新建窗口
tmux new-window -n <window_name> # 新建指定名称窗口
Ctrl+b	c	# 新建窗口4. 关闭窗口
Ctrl+b	&	# 关闭窗口5. 窗口重命名
tmux rename-window <nwe_name> # 快捷键:Ctrl+b 	',' 然后输入窗口name6. 窗口切换
Ctrl+b 	p 	# 切换到上一个窗口
Ctrl+b 	n	# 切换到下一个窗口
Ctrl+b	<number>	# 切换到指定编号窗口7. 在所有窗口中查找内容
Ctrl+b	f	# 在所有窗口中查找内容

在tmux中编译代码

        
ssh username@serverIP # 打开窗口,ssh远程到服务器
tmux new -s build # 创建一个名为new_tmux_name的终端会话'
.... # 执行编译命令:source、make等等
tmux detach # 将build会话和当前窗口分离,也可以执行Ctrl+b  d,将会话分离
# 等一段时间后,假设编译结束了
tmux attach-session -t build  # 再次连接build会话

多个显示器分辨率的tmux attach出现窗口不匹配的问题

主要是多个不同显示大小的终端在attach同一个session,出现窗口不匹配的现象,比如笔记本上tmux attach接入会话激活窗口之后,再到比较大分辨率的PC上去tmux attach窗口,出现窗口显示不完整有一些“…”。
解决方案:将其他较小分辨率的终端detach掉(比如最小的笔记本的的窗口执行:ctrl+a 再执行 shift+d)

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

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

相关文章

从政府工作报告探究计算机行业发展

从政府工作报告探计算机行业发展 政府工作报告作为政府工作的全面总结和未来规划&#xff0c;不仅反映了国家整体的发展态势&#xff0c;也为各行各业提供了发展的指引和参考。随着信息技术的快速发展&#xff0c;计算机行业已经成为推动经济社会发展的重要引擎之一。因此&…

计算机考研|怎么备考「科软」?

学好408和考研数学就可以了 大家对于科软已经回到了理性的区间&#xff0c;很难再出现刚开始的300分上科软的现象&#xff0c;也不会再出现388分炸穿地心的现象。 如果大家想报考科软&#xff0c;我觉得一定要认真对待复习&#xff0c;不要抱有抄底的心态去复习。 众所周知&am…

7.JavaWebHTML:构建数字世界的语言和结构

目录 导语&#xff1a; 第一部分&#xff1a;Web概念与作用 1.1 Web的定义 1.2 Web的作用 1.3 JavaWeb 第二部分&#xff1a;HTML概念与内容 2.1 HTML的定义 2.2 HTML的内容 第三部分&#xff1a;HTML的作用 3.1 HTML的作用 3.2 HTML在现代Web开发中的角色 …

[Redis]——主从同步原理(全量同步、增量同步)

目录 Redis集群&#xff1a; 主从同步原理&#xff1a; replid和offset: 全量同步和增量同步&#xff1a; repl_baklog文件&#xff1a; 主从集群的优化&#xff1a; Redis集群&#xff1a; 部署多台Redis我们称之为Redis集群&#xff0c;他有一个主节点(负责写操作)&…

爱普生晶振发布RTC模块晶振(压电侠)

爱普生晶振一直以”省&#xff0c;小&#xff0c;精”技术作为资深核心&#xff0c;并且已经建立了一个原始的垂直整合制造模型&#xff0c;可以自己创建独特的核心技术和设备&#xff0c;使用这些作为基地的规划和设计提供独特价值的产品. 世界领先的石英晶体技术精工爱普生公…

中国联通智慧矿山行业解决方案

中国联通国际公司以其全球化服务能力&#xff0c;针对矿山行业的特殊挑战提供了定制化的解决方案&#xff0c;尤其是在网络通信基础设施搭建和智能应用部署方面&#xff0c;助力企业克服远程作业环境下的通信难题&#xff0c;并有效拓展海外市场。 对于矿山类企业而言&#xf…

掌握Go语言:Go语言链表精解,揭秘高效数据结构,应用场景全揭秘(17)

链表常用方法详解 链表是一种常见的数据结构&#xff0c;它由一系列节点组成&#xff0c;每个节点包含数据元素和指向下一个节点的指针。在Go语言中&#xff0c;链表的常用方法包括插入节点、删除节点、查找节点、反转链表以及获取链表长度。下面将逐一详解这些方法&#xff0…

【CenterFusion】run_epoch()函数-训练一轮epoch-CenterFusion/src/lib/trainer.py

文件位置&#xff1a;CenterFusion/src/lib/trainer.py run_epoch作用&#xff1a;CenterFusion 项目训练一轮epoch过程 在 main.py 函数中&#xff0c;生成了训练器&#xff0c;然后再使用训练器训练一个 epochrun_epoch()函数的定义在src\lib\trainer.py150行左右&#xff0…

PyTorch学习笔记之激活函数篇(五)

5、PReLU函数 对应的论文链接&#xff1a;https://arxiv.org/abs/1502.01852v1 5.1 公式 PReLU函数的公式&#xff1a; f ( x ) { x , x > 0 α x , x < 0 ( α 是可训练参数 ) f(x) \begin{cases} x&,x>0 \\ \alpha x&,x<0 (\alpha 是可训练参数) …

【遍历方法】浅析Java中字符串、数组、集合的遍历

目录 前言 字符串篇 1.1 使用 for 循环和 charAt 方法 1.2 使用增强 for 循环&#xff08;forEach 循环&#xff09; 1.3 使用 Java 8 的 Stream API 最终效果 数组篇 2.1 使用普通 for 循环 2.2 使用增强型 for 循环( forEach 循环) 2.3 使用 Arrays.asList 和 forE…

解决:springboot项目访问hdfs文件提示guava版本不兼容

1、问题描述 版本说明&#xff1a;我用的hadoop版本&#xff1a;3.1.3 项目可以正常启动&#xff0c;但是调用访问hdfs的服务时候报错,报错消息如下&#xff1a;com.google.common.base.preconditions.checkArgument(ZL java/lang/String;Ljava/lang/Object:)V 原因分析&#x…

Flutter开发进阶之使用工具效率开发

Flutter开发进阶之使用工具效率开发 软件开发团队使用Flutter开发的原因通常是因为Flutter开发性能高、效率高、兼容性好、可拓展性高&#xff0c;作为软件PM来说主要考虑的是范围管理、进度管理、成本管理、资源管理、质量管理、风险管理和沟通管理等&#xff0c;可以看到Flu…

企业内部培训考试系统培训计划功能说明

培训计划是预设好的一套课程系列&#xff0c;包含课程和考试&#xff0c;分多个阶段&#xff0c;每完成一个阶段就会在学习地图上留下标记&#xff0c;让用户看到自己的努力成果&#xff0c;增强成就感&#xff0c;从而坚持完成课程。 企业内部培训考试系统中如何设置培训计划…

基于springboot的购物商城管理系统

1.项目简介 1.1 用户简介 用户主要分为管理员和用户端&#xff1a; 管理员&#xff1a; 管理员可以对后台数据进行管理、拥有最高权限、具体权限有登录后进行首页轮播图的配置管理、商品的配置、新品家具商城的配置管理、、家具商城分类管理配置、家具商城详情商品管理、用户…

Git 下载时需要使用代理?

食用方法 在命令行中&#xff0c;你可以使用以下命令来设置Git的HTTP和HTTPS代理&#xff1a; git config --global http.proxy http://127.0.0.1:6890 git config --global https.proxy https://127.0.0.1:6890 注意是根据自己的实际情况修改IP和端口号 注意如果不想全局配置…

react-面试题

一、组件基础 1. React 事件机制 <div onClick{this.handleClick.bind(this)}>点我</div> React并不是将click事件绑定到了div的真实DOM上&#xff0c;而是在document处监听了所有的事件&#xff0c;当事件发生并且冒泡到document处的时候&#xff0c;React将事…

网络安全JavaSE第二天(持续更新)

3. 基本数据与运算 3.6 运算符 3.6.1 算术运算符 在 Java 中&#xff0c;算术运算符包含&#xff1a;、-、*、/、% public class ArithmeticOperator { public static void main(String[] args) { int a 10; // 定义了一个整型类型的变量 a&#xff0c;它的值是 10 int b …

区块链推广海外市场怎么做,CloudNEO服务商免费为您定制个性化营销方案

随着区块链技术的不断发展和应用场景的扩大&#xff0c;区块链项目希望能够进入海外市场并取得成功已成为越来越多公司的目标之一。然而&#xff0c;要在海外市场推广区块链项目&#xff0c;需要采取有效的营销策略和措施。作为您的区块链项目营销服务商&#xff0c;CloudNEO将…

后端程序员入门react笔记(八)-redux的使用和项目搭建

一个更好用的文档 添加链接描述 箭头函数的简化 //简化前 function countIncreAction(data) {return {type:"INCREMENT",data} } //简化后 const countIncreAction data>({type:"INCREMENT",data })react UI组件库相关资料 组件库连接和推荐 antd组…

Python 多线程大批量处理文件小程序

说明 平时偶尔需要进行重复性的对文件进行重命名、格式转化等。假设以文件复制功能作为目标&#xff0c;设计一个小程序使用多线程对文件进行批量复制。&#xff08;其实以后主要目标是针对Realsense的raw文件进行批量的转化&#xff0c;并借助多线程加速&#xff09; 代码 i…