用鼠标点击终端窗口的时候出现:0;61;50M0;61;50M0;62;50M0

在做aws webrtc viewer拉流压测的过程中,我本地打开了多个终端,用于连接EC2实例:

  1. 一个终端用于启动 '并发master脚本'、监控master端的cpu、mem;
  2. 一个终端用于监控master端的带宽情况;
  3. 一个终端用于监控viewer端的cpu、mem;
  4. 一个终端用于监控viewer端的带宽情况;
  5. 一个终端用于从本地上传文件到实例、从实例下载文件到本地;
  6. 一个终端用于启动 '并发viewer脚本';

这几个终端长时间打开,没有关闭过,突然有一次,我在用鼠标点击终端窗口的时候,终端窗口会出现:0;61;50M0;61;50M0;62;50M0

鼠标点击一次出现一次"乱码",很奇怪,不知道是什么原因。不点击就不会出现。

后来查了一下资料:

  • 可能是因为 我的终端程序(比如 gnome-terminal、xterm、tmux、screen 等)处于鼠标追踪(mouse tracking)模式,点击鼠标,终端程序把鼠标事件编码成了一串字符发送给正在运行的命令行程序(比如 Vim、top、htop 等)。如果该程序没有处理这些事件,就会原样输出到屏幕上。
  • 正在运行的程序启用了 终端鼠标事件捕获模式(比如某些用 ncurses 库编写的程序)
  • 在运行 cat、bash 等普通命令时误触了这种模式(比如误运行了一段脚本或命令启用了 xterm 鼠标模式)

但是我不知道为什么会处于鼠标追踪模式。也不知道是如何误触的。当我点击选择某个终端的时候并没有什么程序正在运行。

说一下最终解决方法吧

bash 复制代码
reset

当出现 '乱码' 时就reset,搞定了。

补充说明

这种"乱码",其实是 Xterm 鼠标事件编码格式,形如:

bash 复制代码
\x1b[<0;61;50M

意思是:鼠标左键在(x=61, y=50)按下(M 表示按下,m 表示释放)

用鼠标点击终端窗口的时候出现:0;61;50M0;61;50M0;62;50M0,这些字符是由于终端程序将鼠标点击事件转成 escape sequence 发给前台进程,但前台程序没有理解它,就直接显示出来了。

相关推荐
倔强的石头1066 分钟前
【Linux指南】基础IO系列(一)Linux 文件本质揭秘 —— 从 “磁盘文件” 到 “一切皆文件”
linux·运维·服务器
robitmind7 分钟前
操作input子系统,用模拟按键输入解锁ubuntu锁屏
linux·运维·ubuntu
2023自学中7 分钟前
imx6ull , 4.3寸800*480屏幕,触摸芯片型号 gt9147,显示触摸点的坐标数据
linux·嵌入式硬件
落羽的落羽10 分钟前
【Linux系统】文件IO:理解文件描述符、重定向、缓冲区
linux·服务器·开发语言·数据结构·c++·人工智能·机器学习
xie_pin_an11 分钟前
Linux 基础入门:从历史到核心指令全解析
linux·运维·服务器
ajole14 分钟前
Linux学习笔记——基本指令
linux·服务器·笔记·学习·centos·bash
嵌入小生00715 分钟前
数据结构与算法 | 完全二叉树的实现、哈希表的实现
linux·c语言·数据结构·算法·vim·嵌入式
晨非辰35 分钟前
Linux包管理器速成:yum/apt双精要/镜像源加速/依赖解析30分钟通解,掌握软件安装的艺术与生态哲学
linux·运维·服务器·c++·人工智能·python
碎梦归途9 小时前
思科网络设备配置命令大全,涵盖从交换机到路由器的核心配置命令
linux·运维·服务器·网络·网络协议·路由器·交换机
小天源9 小时前
nginx在centos7上热升级步骤
linux·服务器·nginx