防止 bash 对未知命令(类似命令或 apt 包)提出建议

防止 bash 对未知命令(类似命令或 apt 包)提出建议

在某些 Linux 安装上,有一个“功能”,当您键入在路径中找不到的命令时,bash 会自动建议类似的命令或 apt 软件包。

我觉得这很烦人,因为这需要几秒钟并阻塞终端。

这是在哪里配置的(bash、Ubuntu)?我可以在哪里更改/禁用此功能?我只想要未知命令的错误消息,仅此而已。

在 ~/.bashrc 中找不到任何内容。

这是我公司机器上的输出(需要 10 秒),已缩短:

> eco 'hello world'

Command 'eco' not found, did you mean:

  command 'ecj' from deb ecj (3.16.0-1)
  command 'ecc' from deb ecere-dev (0.44.15-1build3)
[...]
  command 'co' from deb rcs (5.9.4-6)
  command 'ico' from deb x11-apps (7.7+8)
  command 'peco' from deb peco (0.5.1-1)
  command 'ecm' from deb gmp-ecm (7.0.4+ds-5)

Try: apt install <deb name>

> 

答案1

在 Debian(和 Ubuntu 等)上,这是由command-not-found包完成的。要停止它,请删除该包。

apt-get purge command-not-found

IIRC,您必须退出并重新启动当前的 shell(或注销并再次登录,或重新启动),以便在删除软件包后重置 command_not_found_handle 函数。或者只是unset -f command_not_found_handle在每个正在运行的交互式 shell 中运行(例如终端模拟器中的每个选项卡)。

顺便提一句:

Package: command-not-found
Version: 23.04.0-1
Installed-Size: 522
Maintainer: Julian Andres Klode <[email protected]>
Architecture: all
Depends: apt-file (>= 3.0~exp1~), lsb-release, python3-apt, python3:any
Suggests: snapd
Description-en: Suggest installation of packages in interactive bash sessions
 This package will install a handler for command_not_found that looks up
 programs not currently installed but available from the repositories.

PS:你不是唯一一个觉得这很烦人的人。我从我构建的每个系统中卸载它。我bash-completion也清除了包,我发现自定义完成造成的限制和延迟比好处更烦人。

相关内容