解决Linux纯文本模式下的蜂鸣声

问题: 进入Linux纯文本模式后,输入一条命令后,主机会“嘟”地响一声,而且提示符前有一些混乱的字符。

原因

这是$PS1的设置在捣乱。$PS1为主提示符,在等待输入时出现。

在一些终端,如xterm上,可以用\e]2;{title}\a来设定标题栏的显示内容,这在纯文本模式下不被支持,而\a会被解释为alert(响铃),于是我们在输入完一条命令并执行完后就会响铃。前面的\e]2;{title}会显示出来,造成乱码。

解决

在不同的终端上,$TERM的值不同,因此可以这样:

if [ "$TERM" = "xterm" ];then
	export PS1='\[\e]2;[\w]\a\e[1m\][\u@\w]\n\[\e[0m\e[1m\]\$ \[\e[0m\]';
else
	export PS1='\[\e[1m\][\u@\w]\n\[\e[0m\e[1m\]\$ \[\e[0m\]';
fi

把它放在.bashrc里。