在 Linux 中命令未找到時建議安裝套件
如你可能已經知道的,當我們在 Linux 中執行一個不可用或無法識別的命令時,我們會收到一個錯誤訊息 - "bash: command not found"。問題是我們當中有些人不知道哪個套件提供了該特定命令。但現在不用擔心了!今天,我遇到了一個有用的工具,叫做 "command-not-found",它可以在你執行 Linux 上不可用的命令時,建議安裝相應的套件。
例如,假設你想執行一個名為「leafpad」的命令,但在你的 Linux 系統中不可用。你不確定哪個套件提供了這個命令。這時「command-not-found」工具就派上用場了。
當輸入無法識別或不可用的命令時,command-not-found 工具會自動搜尋官方倉庫。它使用現有程式及其相關套件的快取,來幫助使用者日常的命令列操作。
在 Linux 中安裝 command-not-found 工具
'command-not-found' 工具可在 AUR 中取得。因此,您可以使用如 Paru 或 Yay 等 AUR 輔助程式來安裝它。
$ paru -S command-not-found或者,
$ yay -S command-not-found
此外,pkgfile 套件提供了 command-not-found 鉤子。只需安裝 pkgfile 即可使用 command-not-found 工具。
$ sudo pacman -S pkgfile安裝後,編輯你的 .bashrc 檔案:
$ vi ~/.bashrc在結尾處添加以下一行以啟用它。
source /usr/share/doc/pkgfile/command-not-found.bash使用命令更新所做的更改:
$ source ~/.bashrc在 Ubuntu 及其衍生版本上,它是預先安裝的。
以防它尚未安裝,你可以按如下方式安裝它。
$ sudo apt update
$ sudo apt install command-not-found系統範圍的快取是空的。您可能需要以 root 身份執行 'apt-file update' 來更新快取。
安裝後,您可能需要以 root 身份執行以下命令,以更新系統範圍的快取。
$ sudo update-command-not-found
$ sudo apt-file update在 Linux 中命令未找到時建議安裝套件
現在,執行任何不可用的命令,例如 leafpad:
它會建議你哪個套件提供這個指令。以下是我在 Arch Linux 系統上的輸出。
$ leafpad
Command 'leafpad' not found, but can be installed with:
sudo snap install leafpad
如你在上面的輸出中所見,"leafpad" 指令由 leafpad-0.8.18.1-5 套件提供。
讓我們在 Ubuntu 上嘗試另一個指令:
$ emacs
The program 'emacs' can be found in the following packages:
* emacs24
* emacs24-nox
* e3
* emacs23
* emacs23-lucid
* emacs23-nox
* emacs24-lucid
* jove
Try: sudo apt-get install <selected package>這只是一個範例。當你執行任何不可用的指令時,這個工具會建議安裝相應的套件。一旦你移除了這個工具,它就不會再提供任何建議。它只會簡單地顯示類似下面的輸出。
"bash: emacs: command not found"希望這對你有幫助。
