ฉันใช้ busybox ในระบบฝังตัวและฉันต้องการตรวจสอบเวอร์ชั่นของมัน ฉันจะตรวจสอบเวอร์ชัน busybox จากภายใน busybox ได้อย่างไร
ฉันใช้ busybox ในระบบฝังตัวและฉันต้องการตรวจสอบเวอร์ชั่นของมัน ฉันจะตรวจสอบเวอร์ชัน busybox จากภายใน busybox ได้อย่างไร
คำตอบ:
เรียกใช้ busybox binary เป็นbusybox
และคุณจะได้รับบรรทัดที่มีเวอร์ชัน Busybox, อีกสองสามบรรทัดและรายการของสาธารณูปโภคที่รวมอยู่ในไบนารี
busybox | head -1
ยูทิลิตี้ส่วนใหญ่จะแสดงข้อความการใช้งานหากคุณเรียกพวกเขาด้วย--help
หมายเลขรุ่นในบรรทัดแรก
ls --help 2>&1 | head -1
คุณสามารถตรวจสอบเวอร์ชันบนระบบใด ๆ ที่กำลังใช้งาน 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
(แก้ไข: ในฐานะที่เป็นGilles บันทึกคุณสามารถเรียกไบนารี busybox โดยไม่มีคำสั่งและรับส่วนหัวเดียวกัน)
สุดท้ายยังมีข้อความที่ท้ายหน้า man ที่แสดงว่าเป็นเวอร์ชั่นใด:
$ man busybox | tail -n 1
version 1.18.4 2011-03-13 BUSYBOX(1)
ls --version
ผลลัพธ์เดียวกันls: unrecognized option '--version'
busybox
ไบนารีโดยตรงจึงสมเหตุสมผลที่สุด เหมืองใช้งานได้ด้วยเหตุผลเดียวกันและส่งข้อผิดพลาดไปเท่านั้น ฉันจะแก้ไขมัน
--help
แทน--version
:)
ไม่ได้รายงานเวอร์ชั่นเมื่อคุณเชื่อมต่อ
กล่าวคือ
telnet 10.10.10.1
BusyBox v0.61.pre (2008.06.11-10:37+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
#
หรือเรียกใช้ (ตัวอย่าง)
# busybox ash
BusyBox v1.17.1 (Debian 1:1.17.1-8) built-in shell (ash)
Enter 'help' for a list of built-in commands.
#
cat --version
ลงไปมันจะแสดงcat: unrecognized option '--version'
ขึ้น