ubuntu26.04登录后出现3008开头的乱码

我使用WindTerm 2.7.0软件,通过SSH方式登录Ubuntu 26.04系统,就会显示以下的乱码:

]3008;start=16d9d988-cbb1-452b-979d-038e25a0b366;machineid=ecc3dfcf11384b7cacd68d9ac3e8f5a3;user=root;hostname=iZm5e274di1bqm39493svyZ;bootid=22b92194-0e05-4c1d-986d-7d8b5d878986;pid=00000000000000002101;type=command;cwd=/root\]3008;end=16d9d988-cbb1-452b-979d-038e25a0b366;exit=success\]3008;start=15f394dc-a322-4263-b37c-96a1e5ecefd4;machineid=ecc3dfcf11384b7cacd68d9ac3e8f5a3;user=root;hostname=iZm5e274di1bqm39493svyZ;bootid=22b92194-0e05-4c1d-986d-7d8b5d878986;pid=00000000000000002101;type=shell;cwd=/root\

而登录Ubuntu 24.04等老系统是不会有这样的问题的。

经搜索了解后,得知从systemd的较新版本开始(大概2025年后),它在/etc/profile.d/80-systemd-osc-context.sh这个文件中加入了OSC 3008序列,用于向终端发送上下文信息(比如当前用户、主机名、是否root、容器、SSH、命令开始/结束等)。

而Ubuntu 26.04默认加载了这个脚本,所以每次显示提示符或执行命令前都会输出类似的乱码。而WindTerm目前对这个OSC 3008支持不好。

临时解决法子

sudo mv /etc/profile.d/80-systemd-osc-context.sh /etc/profile.d/80-systemd-osc-context.sh.bak

然后重新登录或source /etc/profile即可。