BusyBoxได้รับการออกแบบในลักษณะแปลกใหม่ที่ค่อนข้างสับสนเมื่อคุณเริ่มค้นหาในไดเรกทอรี bin ของคุณ
ตามที่MSaltersระบุไว้ BusyBox เป็นเพียงหนึ่งไฟล์ที่ปฏิบัติการได้ แต่มันก็ขึ้นอยู่กับลิงค์สัญลักษณ์ที่ถูกสร้างขึ้นเพื่อปฏิบัติการนั้นสำหรับทุกคำสั่ง "" ในนั้น เมื่อทราบชื่อ symlink ที่เริ่มต้นแล้วจะรู้ว่าเรียกใช้ฟังก์ชัน C สำหรับคำสั่งนั้น
ดังนั้นจุดเริ่มต้นของไดเรกทอรี PuppyLinux 5.2.8 Lucid / bin ดูเหมือนว่า ...
sh-4.1# ls -l
total 4889
lrwxrwxrwx 1 root root 7 2011-08-17 10:49 [ -> busybox
lrwxrwxrwx 1 root root 7 2011-08-17 10:49 [[ -> busybox
lrwxrwxrwx 1 root root 7 2011-08-17 10:49 addgroup -> busybox
lrwxrwxrwx 1 root root 7 2011-08-17 10:49 adduser -> busybox
lrwxrwxrwx 1 root root 7 2011-08-17 10:49 ash -> busybox
-rwxr-xr-x 1 root root 2844 2011-08-17 11:04 autologinroot
lrwxrwxrwx 1 root root 4 2011-08-17 10:49 awk -> gawk
lrwxrwxrwx 1 root root 7 2011-08-17 10:49 basename -> busybox
-rwxr-xr-x 1 root root 805960 2011-08-17 11:04 bash
-r-xr-xr-x 1 root root 6835 2011-01-21 01:29 bashbug
lrwxrwxrwx 1 root root 7 2011-08-17 10:49 bbconfig -> busybox
-rwxr-xr-x 1 root root 30200 2011-08-17 11:04 bunzip2
lrwxrwxrwx 1 root root 7 2011-08-17 10:49 bunzip2-BB-NOTUSED -> busybox
-rwxr-xr-x 1 root root 637960 2011-08-17 11:04 busybox
-rwxr-xr-x 1 root root 30200 2011-08-17 11:04 bzcat
lrwxrwxrwx 1 root root 7 2011-08-17 10:49 bzcat-BB-NOTUSED -> busybox
โปรดทราบว่าคำสั่งมากที่สุดคือ symlinks busybox
ไป ซึ่งรวมถึงash
เชลล์แบบมินิมัลลิสต์ที่ใช้เป็นส่วนใหญ่ระหว่างการบู๊ต นอกจากนี้โปรดทราบว่าผู้สร้างการแจกจ่ายเลือกที่จะรวมคำสั่งแบบสแตนด์อโลนbunzip2
และbzcat
แทนที่จะใช้เวอร์ชัน busybox symlinks bunzip-BB-NOTUSED
และbzcat-BB-NOTUSED
ไม่จำเป็นจริงๆ แต่ความช่วยเหลือเอกสารสิ่งที่เกิดขึ้นเพียงค่าใช้จ่ายของ symlink ที่
ยังทราบว่ารายการไดเรกทอรีว่ารายงานขนาดสำหรับเป้าหมายของการ symlinks (คนls -lL
หรือls -l --dereference
) แทน symlink busybox
ตัวเองจะรายงานขนาดของแต่ละคำสั่งเป็นเช่นเดียวกับที่ ดังนั้นรายการเดียวกันที่มี-L
ตัวเลือกจะแสดง ...
sh-4.1# ls -lL
total 60402
-rwxr-xr-x 1 root root 637960 2011-08-17 11:04 [
-rwxr-xr-x 1 root root 637960 2011-08-17 11:04 [[
-rwxr-xr-x 1 root root 637960 2011-08-17 11:04 addgroup
-rwxr-xr-x 1 root root 637960 2011-08-17 11:04 adduser
-rwxr-xr-x 1 root root 637960 2011-08-17 11:04 ash
-rwxr-xr-x 1 root root 2844 2011-08-17 11:04 autologinroot
-rwxr-xr-x 1 root root 317880 2011-08-17 11:04 awk
-rwxr-xr-x 1 root root 637960 2011-08-17 11:04 basename
-rwxr-xr-x 1 root root 805960 2011-08-17 11:04 bash
-r-xr-xr-x 1 root root 6835 2011-01-21 01:29 bashbug
-rwxr-xr-x 1 root root 637960 2011-08-17 11:04 bbconfig
-rwxr-xr-x 1 root root 30200 2011-08-17 11:04 bunzip2
-rwxr-xr-x 1 root root 637960 2011-08-17 11:04 bunzip2-BB-NOTUSED
-rwxr-xr-x 1 root root 637960 2011-08-17 11:04 busybox
-rwxr-xr-x 1 root root 30200 2011-08-17 11:04 bzcat
-rwxr-xr-x 1 root root 637960 2011-08-17 11:04 bzcat-BB-NOTUSED
วัตถุประสงค์ของ BusyBox คือการนำโค้ดกลับมาใช้ใหม่ภายในตัวเองเพื่อลดขนาดหน่วยความจำและพื้นที่ดิสก์ที่ต้องการ (เช่น "footprint") สำหรับชุดคำสั่งทั่วไป ... โดยไม่ต้องใช้เชลล์เอง
ทุบตีและกระสุนอื่น ๆ บรรลุสิ่งเดียวกัน แต่จะทำเช่นนั้นพวกเขาใช้สภาพแวดล้อม commandline ของตัวเอง วัตถุประสงค์นี้ยังเป็นหนึ่งในเหตุผลสำหรับไวยากรณ์เก่าแก่บางส่วนสำหรับฟังก์ชันเชลล์จำนวนมาก
ฉันกำลังใช้นี้ "เทคนิค BusyBox" ห้องสมุดของฟังก์ชั่นทุบตีและง่ายต่อการใช้งานสำหรับห่อต่างๆbashisms มันให้ฉันได้อย่างง่ายดาย "ขยาย" คำสั่งด้วย--help
ตัวเลือกและปิดรุ่น GUI เมื่อพร้อมใช้งาน