找不到命令“bla”,您的意思是:?
那麼,當找不到命令時,“您的意思是:”列表是通過什麼方式填充的?什麼程序可以找到這些替代命令?“(主),(宇宙)……”是什麼意思?我可以更改哪個程序找到這些嗎?
如果你看
/etc/apt/sources.list
它的內容將有格式#Archive type Repository URL Distribution Component deb http://archive.ubuntu.com/ubuntu precise main
存檔類型
每行的第一個單詞 deb 或 deb-src 表示歸檔的類型。deb 表示存檔包含二進制包(deb),依此類推。
儲存庫 URL
該行的下一個條目是您要從中下載包的儲存庫的 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 (eg.New Fedora release)等等。如需更完整的列表,請查看此。您甚至可能會在一個發行版中看到多個包管理器。例如,在 Ubuntu 中,您可能會看到 dpkg 提供 /etc/apt/sources/list。
所以當你輸入
cleaq
它可能會說
cleaq: no command found. Did you mean clean.
通過什麼方式填充“您的意思是:”列表?
這涉及與包管理器數據庫中的包的模式匹配。
此數據庫在您執行操作時更新
apt-get update
不確定
我可以更改哪個程序找到這些嗎?
儘管。我相信這是一個無法改變的特性。雖然不太確定
對於
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 安裝處理程序,該處理程序查找目前未安裝但可從儲存庫中獲得的程序。
也可以看看:
man
頁面bash
,尤其是命令執行/usr/share/doc/command-not-found/README
(來自 Debian 軟體包)- https://wiki.ubuntu.com/CommandNotFoundMagic