我在嵌入式系统中使用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)