Linux中关闭响铃

本文详述了如何在Linux系统中关闭响铃,包括通过修改应用程序行为、使用terminfo或termcap、移除PC喇叭驱动、使用Gnu Screen等方法。此外,还提供了在不同场景下关闭响铃的解决方案,如控制台、虚拟终端、登录窗口和X Window系统。建议将特定命令添加到系统启动脚本来实现永久关闭。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇是摘抄各个前辈的博客整合的

一:

系统响铃是由于,我们的应用程序想终端发出了一个0x7这个字符。终端收到这个字符后就会响铃,解决问题的方法就是不让我们的程序向终端发送这个字符。

 
或者告诉我们的应用程序向终端发送其他字符,例如空字符等。这就涉及到两个文件terminfo或者termindo。

还有一种方法就是将PC喇叭的驱动模块去掉。使用的命令是 rmmod pcspkr

还有就是使用expect,script或者screen,这些程序将我们的程序在虚拟的终端上运行,他们会将字符0x7解释成其他的字符。Gnu screen是最简单的方法,我们只要在~/.screenrc文件中添加 如下的两行内容:

vbell on
termcapinfo * vb=

出现响铃会有这几个地方:

二:

完整去除响铃的方法:

  • 控制台(CTRL+ALT+FN),
  • 虚拟终端(就是X里的gnome-terminal)
  • 登录窗口 (输入用户和密码的gdm)
  • 其它X程序(如gedit删掉所有内容后继续按退格键)
1. 关闭shell中的响铃
整体关闭 vi /etc/inputrc
添加 set bell-style=none
关闭个人用户 vi ~/.inputrc
添加 set bell-style=none

2. 关闭vi中的响铃
    vi /etc/vimrc   (vim)
    vi /etc/virc    (vi)
添加:
set vb t_vb=

3.
  • 登录进X后,在终端运行

    xset -b

    X中所有程序不响了。控制台,登录界面依然响。这可条命令写进gdm登录后运行的脚本里,不过gdm还是会响的。如果写进“/etc/X11/xinit/xinitrc”末尾还是会响

  • 在菜单“系统”>>“首选项”>>“音效”,“音效”选项卡,取消勾选“播放报警声音”,其它X程序不响,虚拟终端响。
  • 在菜单“系统”>>“系统管理”>>“登录窗口”,“辅助功能”选项卡,取消勾选“启用辅助功能登录”,登录窗口依然响,没任何效果。

 

在X Window系统下,可以使用xset 命令为之,命令如下:
xset b off

4. 永久关闭系统的响铃

要永久关闭系统响铃,可以在系统启动的时候把rmmod命令放在/etc/rc.d/rc.local文件中:
echo “rmmod pcspkr” >> /etc/rc.d/rc.local

三:

在用TAB补全命令时,老是“嘀。。”响,声音太响, 搜索到这个方法,在CentOS和ubuntu上都能关掉终端响铃。

终端响铃声能使用setterm关闭,如下所示:

 使用setterm

# setterm -blength 0

 

如果想在启动时就关闭终端响铃,你要把这条命令加入/etc/conf.d/local.start 之中。然而,这只是禁用掉了目前正在使用终端的响铃。想要在其他的终端上禁用响铃的话,把这条命令的输出重定向到目标终端去即可,如下所示:

使用setterm (bis)

# setterm -blength 0 >/dev/vc/1

你需要用想要禁用响铃的那个终端来替换/dev/vc/1.

使用控制台登录后,在shell提示符下面操作时会用到大量的Tab来自动补全,这个时候机器的蜂鸣器就会嘟嘟吡吡不停。

这个嘟吡的声音可以使用setterm命令来设置它的长段

setterm -blength 0

后面的取值可以是0-1000,可以用setterm看看它的用法。仅仅输入上面一条命令还不行,下次重新启动还会有吡吡声。彻底解决需要将以上命令加入/etc/rc.d/rc.local

补充一点:

/etc/inputrc里面有一条语句

# do not bell on tab-completion

#set bell-style none

这里如果去掉set前面的注释符,仅仅是把tab自动补全的声音去掉,而不能彻底消除console下面其它的声音(比如Backspace, vi)

以上只是关闭了蜂鸣器的声音,并不影响音箱的发声,play music, video不会有任何副作用。

另外 ,查了其他的帖子,还有一种方式:

或者编辑 /etc/profile,添加这一句

setterm -blength 0

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值