如何检查 busybox 版本(来自 busybox)?

如何检查 busybox 版本(来自 busybox)?

我在嵌入式系统中使用busybox,我想检查它的版本。如何从 busybox 中检查 busybox 版本?

答案1

将 busybox 二进制文件调用为busybox,您会得到一行包含 Busybox 版本的行、几行废话以及二进制文件中包含的实用程序列表。

busybox | head -1

如果您使用 调用大多数实用程序,则它们会显示使用消息--help,并且版本号位于第一行。

ls --help 2>&1 | head -1

答案2

您可以通过运行任何带有 标志的命令来检查运行 busybox 的任何系统上的版本--help以查看使用情况。使用调用的第一行包含有关 busybox 版本的注释:

$ cat --help
BusyBox v1.18.4 (2011-03-13 15:36:03 CET) multi-call binary.

Usage: cat [FILE]...

Concatenate FILEs and print them to stdout

如果您没有运行 busybox 但已将其安装在系统上,则可以通过实例化实用程序之一进行检查,如下所示:

$ busybox cat --help

(编辑:作为吉尔笔记您还可以在不使用命令的情况下调用 busybox 二进制文件并获得相同的标头)

最后,手册页末尾还有一条注释,显示了它的版本:

$ man busybox | tail -n 1
version 1.18.4    2011-03-13     BUSYBOX(1)

答案3

既然没有提到,sh --help也可以。

# sh --help
BusyBox v1.27.1 (2020-06-11 08:53:57 UTC) multi-call binary.

Usage: sh [-/+OPTIONS] [-/+o OPT]... [-c 'SCRIPT' [ARG0 [ARGS]] / FILE [ARGS]]

Unix shell interpreter
# _

答案4

检查 busybox 版本的另一种方法是查看原始程序文件并仅显示其中包含 BusyBox 的行

strings $(which busybox) | grep \\\<BusyBox

or 

strings /bin/busybox | grep 'BusyBox'

这个也有效,它的工作原理是寻找带有“.”的“v”。其后的“v”和“.”之间没有空格字符。

strings /bin/busybox | grep '[ ][v][^ ]*[.]'

我看到的输出看起来像

syslogd started: BusyBox v1.32.0
BusyBox v1.32.0 (2020-11-03 15:21:44 +03)

相关内容