임베디드 시스템에서 busybox를 사용하고 있는데 버전을 확인하고 싶습니다. 비지박스에서 비지박스 버전을 확인하는 방법은 무엇입니까?
답변1
busybox 바이너리를 다음과 같이 호출하면 busybox
Busybox 버전, 말도 안되는 몇 줄, 바이너리에 포함된 유틸리티 목록이 포함된 줄을 얻게 됩니다.
busybox | head -1
--help
대부분의 유틸리티는 첫 번째 줄에 버전 번호를 입력하여 호출하면 사용법 메시지를 표시합니다 .
ls --help 2>&1 | head -1
답변2
--help
사용량을 확인하려면 플래그와 함께 명령을 실행하여 busybox를 실행하는 시스템의 버전을 확인할 수 있습니다 . 호출의 첫 번째 줄에는 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)