解决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里。