关闭linux退格键和vi发出的嘟嘟声

本文介绍了如何解决在Linux CentOS5.7系统中使用vi、less和man编辑器时,按方向键到达末尾后继续按会触发蜂鸣器报警声的问题。解决方案包括临时关闭系统响铃、永久性禁用pcspkr内核模块以及针对所有用户的永久解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自从安装了LINUX(我的是CentOS 5.7)以后,每当按退格键(BackSpace)删除输入的字符,如果没有字符还按键,电脑就会发出嘟嘟声,用vi、less和man编辑的时候,按方向键,如果到了该方向的末端还继续按方向键,也会发出该报警声。我 深受其害,后终于找到解决的方法。

        网上有介绍:vi /etc/inputrc,然后去掉set bell-style none前的注释,修改完,你需要退出当前的shell,再次登录才能生效。这个时候,你可以用按下crtl-g来测试一下。但这样的 做法只能只能命令行下的错误报警声,而用vi、less和man编辑的时候还是会发出嘟嘟的报警声。

         其实这个问题根源并不是声卡发出的,而是主板的蜂鸣器,所以不能通过关闭音箱来解决。该统响铃是因为红帽企业LINUX默认安装并加载了pcspkr内核模块,要关闭系统响铃可以使用root命令执行下面命令来删除pcspkr模块:

         rmmod pcspkr
         如果你想重新打开它,可以使用下面的命令:
         modprobe pcspkr

         当然,上面的方法只是临时起效,重新启动后beep依旧,彻底关掉beep的方法如下:

         如果用的是bash作shell,在~/.bashrc的最后添加
         setterm -blength 0
         xset -b

         这个方法是永久生效,但不是针对所有用户生效,因为是更改自己家目录的~/.bashrc文件,这对于那些木有root权限的用户可以这样设置,那有木有要永久生效又要针对所有用户的方法呢?答案是有地,前提是必须是以root用户登录,然后请按下面方法进行操作:

         在命令行下执行:echo "rmmod pcspkr" >> /etc/rc.d/rc.local

         这条命令的意思是在/etc/rc.d/rc.local脚本中追加一,内容为:rmmod pcspkr。这样做的目的是让系统每次在开机的时候删除pcspkr内核模块,而rc.local一般不管你在3的启动模式还是5的启动模式下,这个服务脚本都会执行,你把这个pcspkr内核模块删除了,那不管你是在什么模式,以什么用户登录,自然就无法加载,也就不会再发出那烦人的嘟嘟嘟的报警声了,让我们用LINUX的用户用的舒适^_^!

转载于:http://blog.chinaunix.net/uid-15007890-id-3236706.html 

### 如何在 Linux 系统中正确配置使用退格键Linux 系统中,如果遇到退格键无法正常工作的情况,通常是因为键盘布局或终端的字符编码设置不一致所引起的。以下是解决此问题的方法: #### 1. 检查当前键盘布局 可以通过以下命令来查看当前系统的键盘布局: ```bash localectl status ``` 该命令会返回当前的系统区域设置以及键盘布局信息[^4]。 #### 2. 修改键盘布局 如果发现键盘布局不符合预期,可以重新设定键盘布局。例如,在基于 systemd 的系统上,可以运行以下命令更改全局键盘布局: ```bash localectl set-keymap us ``` 上述命令将键盘布局更改为美国英语标准布局(`us`)。如果有其他需求,可以根据实际需要替换为对应的国家/地区代码。 #### 3. 配置终端模拟器中的按键映射 某些情况下,即使键盘布局正确,但在特定的终端模拟器中仍然可能出现退格键异常的现象。这可能是因为终端未正确定义退格键的行为。可以在 `.inputrc` 文件中手动定义退格键的功能。编辑 `~/.inputrc` 文件并加入以下内容: ```plaintext set meta-flag on set input-meta on set convert-meta off set output-meta on "\C-h": backward-delete-char ``` 保存文件后重启终端即可生效。这里 `\C-h` 是退格键的标准控制序列。 #### 4. 调整 stty 设置 有时还需要调整 `stty` 命令的相关参数以确保退格功能正常运作。尝试运行以下命令: ```bash stty erase ^H ``` 这条指令告诉 shell 将退格键识别为删除前一个字符的操作。注意这里的 `^H` 表示 Ctrl+H 组合键,即默认的退格行为。 #### 5. 解决因非 ASCII 字符引发的问题 当用户名或其他环境变量中含有特殊字符时也可能引起乱码现象从而影响到退格操作的表现形式。按照之前提到的内容,建议将涉及的所有字段都转换成纯英文名称比如 "test"。 通过以上方法应该能够有效处理大部分关于 Linux退格键失灵的问题。 ```python # 示例 Python 脚本用于测试退格键效果 print("Testing Backspace Key:") text = input() if text.endswith("\b"): print("Backspace detected!") else: print("No backspace action.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值