Linux中關閉響鈴

這篇是摘抄各個前輩的博客整合的

一:

系統響鈴是由於,我們的應用程序想終端發出了一個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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章