Van*_*las 45 linux shell standard shell-script command
我想知道每个 Linux 系统中都有哪些标准命令。
例如,如果你有一个 debian/ubuntu/redhat/suse/arch/slackware 等,你总会找到类似的命令:
cd、mkdir、ls、echo、grep、sed、awk、ping 等。
我知道提到的一些命令是 shell 内置的,但其他命令不是,但它们仍然存在(根据我目前的知识和经验)。
另一方面,像 gawk、parted、traceroute 和其他非常著名的命令等命令在不同的 Linux 发行版中没有默认安装。
我进行了不同的网络搜索,但我还没有找到直接的答案。
目的是我想创建一个 shell 脚本,如果脚本中使用的命令在系统中可用,它应该进行一些完整性检查。如果没有,它应该提示用户安装所需的二进制文件。
Mik*_*kel 48
不幸的是,不能保证任何东西都可用。
但是,大多数系统都会有GNU coreutils。仅此一项就提供了大约 105 个命令。除非它是嵌入式系统,否则您可能可以依赖它们,而嵌入式系统可能会使用BusyBox。
你可能还靠的bash,cron的,GNU的findutils,GNU的grep,gzip的,iproute2的,的iputils,男人-DB,模块初始化工具,网络工具,passwd文件(passwd中或影子),procps的,焦油和util- linux。
请注意,某些程序可能在发行版之间存在一些差异。例如/usr/bin/awk可能是gawk或mawk。 在 POSIX 模式下/bin/sh可能是dash或bash。在一些较旧的系统上,/usr/bin/host它的语法与BIND 版本不同,因此最好使用dig。
如果您正在寻找一些标准,Linux Standard Base 定义了一些常见的程序,但并非所有发行版都声称符合该标准,有些只有在您安装了可选的 LSB 兼容包时才会这样做。举个例子,我见过的一些系统没有lsb_release默认安装。
除了这一点,通过POSIX标准的命令列表可能会有所帮助。
解决您的问题的另一种方法是使用每个发行版的打包工具(例如,Red Hat 的 RPM、Debian 的 DEB 等)打包您的脚本,并声明对您需要的任何其他程序或包的依赖。这需要一些工作,但这意味着用户将看到更友好的错误消息,不仅告诉他们缺少什么,还告诉他们需要安装哪些软件包。
更多信息:
在非嵌入式 Linux 系统上,您通常可以依靠大多数 GNU 实用程序:
加上util-linux套件和procps 套件。请注意,/bin/sh它并不总是 bash,它可以是具有较少功能的外壳,例如ash的多个分支之一。
在Linux标准库定义了预期上的所有符合系统,其特点是一套通用工具。您还可以期待POSIX 指定的大多数实用程序。一个值得注意的例外是pax,它不是许多发行版的默认安装的一部分。
如果您想保持简单,请请求安装lsb_release软件包。许多发行版都有这样一个包,可以拉入 LSB 所需的所有依赖项。
在嵌入式系统上,一切皆有可能。嵌入式 Linux 系统通常运行BusyBox,但许多实用程序和功能是可选的,因此您可以确定获得的东西很少。
| 归档时间: |
|
| 查看次数: |
12425 次 |
| 最近记录: |