如何在WSL全局范围内关闭提示音?
在WSL层面全局关闭SSH远程会话提示音的方法
当然可以在WSL层面实现全局关闭提示音,不用逐个修改远程实例的配置,这里提供两种实用方案:
方案1:禁用WSL终端本身的响铃
直接让WSL使用的终端模拟器不再播放任何响铃信号,覆盖所有本地和远程会话的触发:
- 编辑WSL的全局shell配置文件(比如
/etc/bash.bashrc,针对bash用户),在末尾添加:# 关闭终端响铃 stty bell off stty -echoctl - 如果使用zsh,编辑
/etc/zsh/zshrc,添加:setopt no_beep - 保存后重启WSL终端,后续所有操作(包括SSH远程)都不会触发终端响铃。
方案2:让SSH连接自动关闭远程终端响铃
通过配置SSH,让每次连接远程实例时自动执行关闭响铃的命令,不影响本地会话:
- 编辑WSL用户目录下的SSH配置文件
~/.ssh/config(如果不存在则创建),添加以下内容:Host * RequestTTY yes RemoteCommand stty bell off && stty -echoctl && exec $SHELL - 这个配置会对所有SSH连接生效:每次连接时先执行关闭响铃的命令,再启动远程shell。如果远程系统使用的不是bash,可将
$SHELL替换为对应shell(比如zsh)。
替代方案:用SSH别名快速生效
如果不想修改SSH配置,也可以在~/.bashrc或~/.zshrc中添加别名:
alias ssh='ssh -t "stty bell off && stty -echoctl && exec \$SHELL"'
之后使用ssh命令连接远程时,会自动执行关闭响铃的操作。
内容的提问来源于stack exchange,提问作者BOUNCE
相关产品推荐
相关产品推荐

