如何在终端中永久禁用 Ctrl-s?

Cri*_*ian 42 command-line keyboard-shortcuts terminal

这里我明白要禁用Ctrl+Sstty -ixon可以使用的命令和它的作品,但只要我关闭终端,打开另一个我必须重新输入命令。

要永久禁用Ctrl+S我制作了一个startup.sh包含该stty -ixon命令的命令并使用crontabat运行它,@reboot但它不起作用。

那么永久禁用Ctrl+的解决方案是S什么?

Dab*_*abi 53

要禁用Ctrl-s永久在终端中,只需在.bashrc脚本末尾添加此行(通常在您的主目录中)

stty -ixon
Run Code Online (Sandbox Code Playgroud)

可以在以下答案中找到有关为什么存在这种情况及其相关内容的解释:https : //retrocomputing.stackexchange.com/a/7266

  • 对它的作用的一个小解释会很好 (3认同)

tel*_*coM 12

正如其他人所提到的,所需的修复是添加stty -ixon到您的~/.bashrc文件中。但是,它应该被非交互式 shell 保护免受执行:

if [[ -t 0 && $- = *i* ]]
then
    stty -ixon
fi 
Run Code Online (Sandbox Code Playgroud)

当首先没有 TTY 或交互式会话时,这应该可以避免错误,因此桌面环境等的“内部”shell 调用不会导致错误消息。


小智 5

添加到 telcoM 的解决方案中,Arch 的默认 .bashrc 具有以下内容:

# If not running interactively, don't do anything
[[ $- != *i* ]] && return
Run Code Online (Sandbox Code Playgroud)

值得检查您是否bashrc已经有这样的检查,从而避免需要额外的ifs。