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

相关推荐
石像鬼₧魂石1 小时前
内网渗透靶场实操清单(基于 Vulhub+Metasploitable 2)
linux·windows·学习·ubuntu
橘子真甜~2 小时前
C/C++ Linux网络编程15 - 网络层IP协议
linux·网络·c++·网络协议·tcp/ip·计算机网络·网络层
拾贰_C3 小时前
【Linux | Windows | Terminal Command】 Linux---grep | Windows--- findstr
linux·运维·服务器
阿华hhh4 小时前
Linux系统编程(标准io)
linux·开发语言·c++
石像鬼₧魂石5 小时前
Kali Linux 网络端口深度扫描
linux·运维·网络
alengan5 小时前
linux上面写python3日志服务器
linux·运维·服务器
Rose sait6 小时前
【环境配置】Linux配置虚拟环境pytorch
linux·人工智能·python
叶之香6 小时前
CentOS/RHEL 7、8安装exfat和ntfs文件系统
linux·运维·centos
一世琉璃白_Y6 小时前
pg配置国内数据源安装
linux·python·postgresql·centos