每个基于 Linux 的发行版都有哪些可用的标准命令?

每个基于 Linux 的发行版都有哪些可用的标准命令?

我想知道每个 Linux 系统中可用的标准命令有哪些。

例如,如果你有 debian/ubuntu/redhat/suse/arch/slackware 等,你总会找到类似的命令:

cd、mkdir、ls、echo、grep、sed、awk、ping 等。

我知道上面提到的一些命令是 shell 内置的,但其他命令不是,但它们仍然总是存在(根据我迄今为止的知识和经验)。

另一方面,gawk、parted、traceroute 等命令在不同的 Linux 发行版中默认不安装。

我进行了不同的网络搜索,但没有找到直接的答案。

目的是我想创建一个 shell 脚本,如果脚本中使用的命令在系统中可用,它应该进行一些健全性检查。如果没有,它应该提示用户安装所需的二进制文件。

答案1

不幸的是,不能保证任何东西都可用。

然而,大多数系统都会有GNU 核心工具。仅此一项就提供了大约 105 个命令。你可能可以依赖这些,除非它是一个嵌入式系统,它可能会使用忙碌盒反而。

您或许还可以信赖巴什,计划任务,GNU findutils,GNU grep,压缩包,ip路由2,iputils,人数据库,模块初始化工具,网络工具, 密码 (密码或者阴影),过程,柏油, 和实用程序Linux

请注意,某些程序在发行版之间可能存在一些差异。例如/usr/bin/awk可能是呆呆地或者莫克/bin/sh可能短跑或者POSIX 模式下的 bash。在某些较旧的系统上,/usr/bin/host绑定版本,所以最好使用

如果您正在寻找一些标准,Linux 标准库定义了一些常见程序,但并非所有发行版都声称符合该标准,有些发行版只有在安装可选的 LSB 兼容包时才会这样做。举个例子,一些系统lsb_release我见过默认安装中没有附带的。

除此之外,POSIX 标准化命令列表可能会有帮助。

解决问题的另一种方法是使用每个发行版的打包工具(例如 Red Hat 的 RPM、Debian 的 DEB 等)打包脚本,并声明对您需要的任何其他程序或包的依赖关系。这需要一点工作量,但这意味着用户将看到更友好的错误消息,不仅告诉他们缺少什么,还告诉他们需要安装哪些包。

更多信息:

答案2

在非嵌入式 Linux 系统上,您通常可以依赖大多数 GNU 实用程序:

加上实用程序Linux套房和过程套件。请注意,这/bin/sh并不总是 bash,它可以是功能较少的 shell,例如 的多个分支之一

Linux 标准库定义了一组通用实用程序,其中包含所有符合标准的系统所期望的功能。您还可以期待大部分POSIX 指定的实用程序。一个值得注意的例外是pax,它不是许多发行版默认安装的一部分。

如果您想让事情变得简单,请请求安装一个lsb_release软件包。许多发行版都有这样一个包,可以提取 LSB 所需的所有依赖项。

在嵌入式系统上,一切皆有可能。嵌入式Linux系统通常运行忙碌盒,但许多实用程序和功能都是可选的,因此您可以确定获得的东西很少。

答案3

大多数(如果不是全部)Linux 发行版都有一组命令,就此而言,Unix 发行版也会提供。这些是由POSIX标准

您引用的大多数命令(cdmkdirlsechogrepsedawk等)都是它的。例外的是pingWhiteWinterWolf 正确的评论。

相关内容