![如何消除 ssh 登录时出现的错误消息 --> “setterm: 终端 xterm 不支持 --blength”](https://linux22.com/image/1523788/%E5%A6%82%E4%BD%95%E6%B6%88%E9%99%A4%20ssh%20%E7%99%BB%E5%BD%95%E6%97%B6%E5%87%BA%E7%8E%B0%E7%9A%84%E9%94%99%E8%AF%AF%E6%B6%88%E6%81%AF%20--%3E%20%E2%80%9Csetterm%3A%20%E7%BB%88%E7%AB%AF%20xterm%20%E4%B8%8D%E6%94%AF%E6%8C%81%20--blength%E2%80%9D.png)
每当我 ssh 进入我的linux 操作系统框中我收到此错误消息:
setterm: terminal xterm does not support --blength
执行时同样如此:
$ sudo su -
有趣的是,使用时
$ sudo su
我浏览了各种手册页,试图找到设置此终端属性的位置。其中包括setterm
和terminfo
。我甚至还做了
find / -type f -iname "terminfo" -exec grep -i blength {} \;
返回 0 个结果。还查看了/etc/.bashrc
,/etc/bash.basrc
但没有发现任何调用setterm
或甚至*blength*
在其语句中包含的内容。
这个问题其实只是个小麻烦,但我觉得它非常烦人,因为我不喜欢running
在使用 查询时看到处于 状态的系统错误消息systemctl status --system
。此外,我确保 PuTTY(使用 SuperPuTTY 作为其前端)没有传递任何命令。我真的很感激有人能就这个问题提出一些建议。非常感谢。
答案1
哦,亲爱的,终于在一条评论中找到了它频闪灯指出可能要研究的候选环境是/etc/profile.d/
[...] /etc/profile 和 /etc/profile.d/* 也是获取终端设置输入的可能方式 [...]
然后我立即用 做了同样的事情grep -e "blength" /etc/profile.d/*
。输出如下:
disable-beep.sh:setterm -blength 0
所以我首先将其注释掉,然后注销,然后重新登录,错误已经消失。
然后我第二次看了看该命令,因为它没有双破折号--
,而只有一个破折号。
因此,我假设由于注释掉该行可以修复错误¹,该命令setterm
需要键值对并自行处理破折号,或者insert another implementation detail
无论如何我都必须提供这样的命令:
setterm blength 0
说完,保存,重新登录,错误仍然消失,铃声很可能保持静音。如果没有频闪灯评论。
¹但可能会再次启用铃声,我没法分辨,因为我是通过 RDP 连接到运行 ssh 会话的机器的,没有转发声音——你可能会问,为什么要增加一层,我的回答是,公司笔记本没有权限做任何事情,是的,考虑到我的工作,这很愚蠢
答案2
我也遇到了同样的问题。结果发现是我自己设置的.bashrc
。注释掉以下行后:
setterm -blength 0
我不再收到错误信息。