自 Linux 1.3.43 版本起,Martin Mares 通过修改 console.c
添加了配置蜂鸣音调和时长的功能。可以配置每个控制台发出不同时长和/或音调的响铃;这项任务通过使用转义序列发送到控制台设备来完成。您可以配置自己的 ~/.profile
或 ~/.login
文件,为每个控制台选择不同的蜂鸣声(或者如果需要,完全不发出蜂鸣声)。
转义序列的工作方式如下
[10;
xx]
选择响铃频率,单位为赫兹 (Hz)。该值应在 21-32766 范围内,否则结果未定义。如果缺少 `xx` 参数,则将应用默认值 (750Hz),例如 `ESC-[10]
`。[11;
xx]
选择响铃时长,单位为毫秒 (ms)。如果您指定的时长超过 2 秒,则将应用默认值 (125ms)。同样,如果缺少 `xx` 参数 (ESC-[11]
),则将使用默认值。例如,要选择 50Hz 音调和一秒钟的时长,您可以使用 bash
中的 "echo -e "\\33[10;50]\\33[11;1000]"
" 命令(其中 "-e" 表示“理解转义序列”)。如果您使用 tcsh
,则相同的命令为 "echo "\\033[10;50]\\033[11;1000]"
"。
尽管我不知道有哪个版本的 setterm
命令支持这种配置,但该命令的未来版本很可能会支持用于配置响铃声音的命令行选项。
如果您运行的是 Linux-1.3.43 或更新版本,您可能会对转义序列感到满意,并可以跳过后续内容。如果您运行的是较旧的内核,或者您想要使用可视化响铃,那么您会喜欢本文档的其余部分。