Linux

每個基於 Linux 的發行版中都有哪些標準命令可用?

  • May 18, 2021

我想知道哪些是每個 Linux 系統中可用的標準命令。

例如,如果你得到一個 debian/ubuntu/redhat/suse/arch/slackware 等,你總是會找到類似的命令:

cd, mkdir, ls, echo, grep, sed, awk, ping etc.

我知道上面提到的一些命令是 shell 內置的,但其他命令不是,但它們仍然始終存在(基於我迄今為止的知識和經驗)。

另一方面,像 gawk、parted、traceroute 和其他非常著名的命令等命令在不同的 Linux 發行版中預設不安裝。

我進行了不同的網路搜尋,但我還沒有找到一個直接的答案。

目的是我想創建一個 shell 腳本,如果腳本中使用的命令在系統中可用,它應該進行一些完整性檢查。如果沒有,它應該提示使用者安裝所需的二進製文件。

不幸的是,不能保證任何東西都可用。

然而,大多數係統都會有GNU coreutils。僅此一項就提供了大約 105 個命令。您可能可以依賴這些,除非它是一個嵌入式系統,它可能會使用BusyBox

您可能還可以依賴bashcronGNU findutilsGNU grepgzipiproute2iputilsman-dbmodule-init-toolsnet-tools、 passwd (passwdshadow)、procpstarutil- linux .

請注意,某些程序可能在發行版之間存在一些差異。例如/usr/bin/awk可能是gawkmawk在 POSIX 模式下/bin/sh可能是dash或bash 。在某些較舊的系統上,與BIND 版本的語法不同,因此使用dig可能會更好。/usr/bin/host

如果您正在尋找一些標準,Linux 標準庫定義了一些常見的程序,但並非所有發行版都聲稱符合該標準,有些發行版只有在您安裝可選的 LSB 兼容包時才會這樣做。舉個例子,我見過的一些系統lsb_release沒有預設安裝。

除此之外,由 POSIX 標準化的命令列表可能會有所幫助。

解決問題的另一種方法是使用每個發行版的打包工具(例如 Red Hat 的 RPM、Debian 的 DEB 等)打包腳本,並聲明對您需要的任何其他程序或包的依賴。這有點工作,但這意味著使用者會看到更友好的錯誤消息,不僅告訴他們缺少什麼,還告訴他們需要安裝哪些包。

更多資訊:

引用自:https://unix.stackexchange.com/questions/37064