找不到命令“bla”,您的意思是:?

找不到命令“bla”,您的意思是:?

那么,当找不到命令时,通过什么方式填充“您的意思是:”列表?什么程序可以找到这些替代命令? “(主要),(宇宙)......”是什么意思?我可以更改哪个程序找到这些吗?

答案1

对于bash,其行为由 shell 函数控制command_not_found_handle(请参阅man bash)。

要查看该函数定义了哪些行为,您可以发出:

declare -p -f command_not_found_handle

您可以通过重新定义函数来更改使用哪个程序command_not_found_handle

在基于 Debian 的发行版(包括 Ubuntu)中,包裹command-not-found通常已安装,并可/usr/lib/command-not-found 从以下链接获取:

建议在交互式 bash 会话中安装软件包

该软件包将安装 command_not_found 的处理程序,该处理程序查找当前未安装但可从存储库获取的程序。

也可以看看:

答案2

如果你看一下/etc/apt/sources.list它的内容就会有这样的格式

#Archive type  Repository URL                   Distribution Component
 deb           http://archive.ubuntu.com/ubuntu precise      main

档案类型

每行的第一个单词 deb 或 deb-src 表示存档的类型。 Deb表示归档文件包含二进制包(deb),等等。

存储库网址

该行的下一个条目是您要从中下载包的存储库的 URL。

分配

“分布”可以分别是发布代号/别名(wheezy、jessie、stretch、sid)或发布类别(oldstable、stable、testing、unstable)。

“(主要),(宇宙)......”是什么意思?

成分

main 由符合 DFSG 的软件包组成,contrib 软件包包含符合 DFSG 的软件,但具有不在 main 中的依赖项,non-free 包含不符合 DFSG 的软件等等。一个提示 -检查存储库 URL 之一,它应该有一个名为组件名称的文件夹。

包管理器说 apt将有一个数据库,其中包含存储库中所有包的列表,并且它足够智能,可以为您提供建议。

您的软件包管理器可能位于 eof dpkg(例如 Debian、Ubuntu 等)、apt(例如 Debian、Ubuntu 等)、现已过时的 rpm(例如,较旧的 Redhat 版本和较新的版本由于兼容性原因而不会启动)、yum(例如.Fedora、CentOS)、dnf - dentrified yum(例如新的 Fedora 版本)等。进行更完整的列表检查。您甚至可能会在一个发行版中看到多个包管理器。例如,在 Ubuntu 中,您可能会看到 dpkg 提供 /etc/apt/sources/list。

所以当你输入

cleaq

可能会说

cleaq: no command found. Did you mean clean.

通过什么方式填充“您的意思是:”列表?

这涉及与包管理器数据库中的包进行模式匹配。

当您执行以下操作时,此数据库会更新apt-get update

不确定

我可以更改哪个程序找到这些吗?

尽管。我相信这是一个无法改变的特征。但不太确定

参考Debian 源列表

答案3

这不是 Linux shell 的标准功能。至少有两种可能性:

  • zsh正在维护自己的建议列表
  • 项目thefuck提供另一种

答案4

Police tisn 没有找到警察命令,您的意思是: 包 polipo 中的命令 polipo 包 util-linux 中的命令 ionice $

相关内容