這篇是摘抄各個前輩的博客整合的
一:
系統響鈴是由於,我們的應用程序想終端發出了一個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刪掉所有內容後繼續按退格鍵)
整體關閉 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