如何摆脱 ssh 登录时的错误消息 --> “setterm:终端 xterm 不支持 --blength”

Sve*_* M. 6 terminal bash xterm putty arch-linux

每当我 ssh 进入我的arch linux框时,我都会收到此错误消息:

setterm: terminal xterm does not support --blength
Run Code Online (Sandbox Code Playgroud)

同样在执行时:

$ sudo su -
Run Code Online (Sandbox Code Playgroud)

有趣的是在使用时不是

$ sudo su
Run Code Online (Sandbox Code Playgroud)

我已经筛选了各种手册页,试图找到设置此终端属性的位置。那些包括settermterminfo。我走了这么远

find / -type f -iname "terminfo" -exec grep -i blength {} \;

那返回了 0 个结果。也调查过/etc/.bashrc/etc/bash.basrc但没有发现任何调用setterm甚至包含*blength*在其声明中的内容。

这个问题真的只是一个小麻烦,但我觉得它非常令人恼火,因为我不喜欢看到running使用systemctl status --system. 此外,我确保 PuTTY(使用 SuperPuTTY 作为其前端)没有传递任何命令。我真的很感激关于这个问题的一些建议。非常感谢。

Sve*_* M. 5

哦,亲爱的,终于我找到了它,这要归功于strobelight的评论之一,指出该设置的可能候选者在/etc/profile.d/

[..] /etc/profile 和 /etc/profile.d/* 也是获取终端设置的可能方法 [..]

然后我立即用grep -e "blength" /etc/profile.d/*. 其中的输出是:

disable-beep.sh:setterm -blength 0
Run Code Online (Sandbox Code Playgroud)

所以我首先将其注释掉,注销,再次登录,错误消失了

然后我第二次查看命令,因为它没有双破折号--,只有一个。

所以我假设自从注释掉该行修复了错误¹,该命令setterm需要键值对并自行处理破折号,或者insert another implementation detail在任何情况下我都必须提供这样的命令:

setterm blength 0
Run Code Online (Sandbox Code Playgroud)

说,完成,保存,重新登录,错误仍然消失,铃声很可能保持沉默。如果没有strobelight 的评论,也不会发现这个。

¹但可能会再次启用铃声,我无法分辨,因为我 RDP 进入了运行 ssh 会话的机器,而没有转发声音 - 为什么您可能会问额外的层,我回答公司笔记本的问题o 做事的权利,考虑到我的工作,这是愚蠢的