用鼠标点击终端窗口的时候出现: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 发给前台进程,但前台程序没有理解它,就直接显示出来了。

相关推荐
coppher3 分钟前
Ubuntu 22.04 amd64 离线安装 Docker 完整教程
linux·docker
xyz59917 分钟前
如何在 WSL 中删除指定版本的 Ubuntu 以及安装
linux·运维·ubuntu
亚空间仓鼠1 小时前
OpenEuler系统常用服务(五)
linux·运维·服务器·网络
minji...2 小时前
Linux 线程同步与互斥(二) 线程同步,条件变量,pthread_cond_init/wait/signal/broadcast
linux·运维·开发语言·jvm·数据结构·c++
虚伪的空想家2 小时前
k8s集群configmap和secrets备份脚本
linux·容器·kubernetes
the sun342 小时前
从 QEMU 直接启动到 U-Boot 引导:嵌入式 Linux 启动流程的本质差异
linux·运维·服务器
草莓熊Lotso2 小时前
【Linux 线程进阶】进程 vs 线程资源划分 + 线程控制全详解
java·linux·运维·服务器·数据库·c++·mysql
ShineWinsu2 小时前
对于Linux:文件操作以及文件IO的解析
linux·c++·面试·笔试·io·shell·文件操作
-SGlow-2 小时前
Linux相关概念和易错知识点(52)(基于System V的信号量和消息队列)
linux·运维·服务器
江畔何人初2 小时前
TCP的三次握手与四次挥手
linux·服务器·网络·网络协议·tcp/ip