當前位置: 妍妍網 > 碼農

Linux-輕量級工具集合 Busybox

2024-02-19碼農

點選上方Linux開源社群」,選擇「設為星標

優質文章,及時送達

【幹貨】

轉自:網路

 1

1 Busybox的介紹

Busybox是一個開源的、輕量級的軟體工具集合,旨在提供一個精簡的Unix工具集,適用於嵌入式系統和資源受限的環境。它將許多常用的Unix工具(如ls、cp、cat、mv、grep、find、telnet等)合並為一個可執行檔,從而減少了系統的儲存空間和資源占用。

官方網站:https://busybox.net/

Busybox的主要特點包括:

  • 精簡:Busybox的設計理念是將多個工具合並為一個可執行檔,從而減少了系統的儲存空間和資源占用。

  • 可客製性:Busybox提供了許多編譯選項,可以根據需求選擇需要的工具,並排除不需要的工具,從而進一步減小可執行檔的大小。

  • 相容性:Busybox的工具與傳統的Unix工具具有相似的命令列介面和功能,因此可以方便地替代傳統的Unix工具。

  • 1.1 Busybox的使用

    busybox 的編譯過程與Linux內核的編譯類似

    busybox的使用有三種方式:

  • busybox後直接跟命令,如 busybox ls

  • 直接將busybox重新命名,如 cp busybox tar

  • 建立符號連結,如 ln -s busybox rm

  • 以上方法中,第三種方法最方便,但為busybox中每個命令都建立一個軟連結,相當費事,busybox提供自動方法:busybox編譯成功後,執行make install,則會產生一個_install目錄,其中包含了busybox及每個命令的軟連結

    Busybox的使用方法與傳統的Unix工具類似,通常的語法格式為:

    busybox[選項][命令][參數]

    參數

    Busybox的命令和參數根據具體的工具而定,可以透過以下方式獲取幫助資訊:

    busybox --help

    1.2 Busybox工具的優點和缺點

    優點:

  • 輕量級:可執行檔非常小巧,適用於資源受限的環境。

  • 靈活性:提供了許多編譯選項,可以根據需求選擇需要的工具,並排除不需要的工具。

  • 相容性:Busybox的工具與傳統的Unix工具具有相似的命令列介面和功能,可以方便地替代傳統的Unix工具。

  • 缺點:

  • 功能限制:由於Busybox的設計目標是提供一個精簡的工具集,因此某些高級功能可能不支持。

  • 學習曲線:對於不熟悉Busybox的使用者來說,可能需要一些時間來適應其命令列介面和工具的使用方式。微信搜尋公眾號:架構師指南,回復:架構師 領取資料 。

  • 1.3 其他特點

    除了前面提到的內容,Busybox還具有以下特點:

  • 支持交叉編譯:Busybox可以在一台主機上進行交叉編譯,以生成適用於不同架構的可執行檔。

  • 提供了一些額外的工具:除了常見的Unix工具外,Busybox還提供了一些額外的工具,如網路工具、檔案系統工具等。

  • 1.4 Busybox編譯安裝

    Busybox的編譯安裝過程:

    安裝依賴:

    yum -y install gcc gcc-c++ glibc glibc-devel make pcre pcredevel openssl openssl-devel systemd-devel zlib-devel glibc-static ncurses-devel

    下載Busybox原始碼:

    wget https://busybox.net/downloads/busybox-x.x.x.tar.bz2

    解壓原始碼包:

    tar-xvfbusybox-x.x.x.tar.bz2

    進入原始碼目錄:

    cdbusybox-x.x.x

    配置編譯選項:

    make menuconfig

    #按下面選擇,把busybox編譯也靜態二進制、不用共享庫:Settings -->Build Options -->[*] Build static binary (no sharedlibs)

    編譯原始碼:

    make

    安裝Busybox:

    make install

    1. 安裝過程將會將Busybox的可執行檔復制到指定的目錄中。

    2. 配置環境變量:

    3. 將Busybox的可執行檔所在的目錄添加到系統的PATH環境變量中,以便可以直接使用Busybox的工具。

    4. 驗證安裝結果:

    5. 執行以下命令驗證Busybox的安裝是否成功:

    busybox

    如果成功安裝,將會顯示Busybox的幫助資訊。

    在編譯安裝Busybox的過程中,可能會遇到一些常見的問題和易錯點。

    以下是一些常見的問題和解決方法的總結說明:

  • 問題1:編譯錯誤或連結錯誤。

  • 解決方法:檢查編譯環境是否滿足要求,確保所需的依賴庫已安裝,並按照編譯選項進行正確的配置。

  • 問題2:安裝後無法執行Busybox命令。

  • 解決方法:檢查環境變量配置是否正確,確保Busybox的可執行檔所在的目錄已添加到系統的PATH環境變量中。

  • 問題3:某些工具無法正常工作。

  • 解決方法:檢查編譯選項是否正確配置,確保需要的工具已包含在編譯選項中,並重新編譯和安裝Busybox。

  • 案例1:檔案系統修復

    假設嵌入式裝置的檔案系統出現了問題,可以使用Busybox中的工具來修復。

    首先,透過以下命令檢視可用的檔案系統修復工具:

    busybox --list | grep fsck

    會列出Busybox中可用的檔案系統修復工具,如fsck.ext2、fsck.ext3等。

    選擇適用於檔案系統的工具,進行修復:

    busybox fsck.<檔案系統型別><裝置路徑>

    例如,如果你的檔案系統是ext4型別,裝置路徑是/dev/sda1,則命令如下:

    busybox fsck.ext4 /dev/sda1

    Busybox自己會執行相應的檔案系統修復工具來檢查和修復檔案系統中的錯誤

    案例2:網路配置

    透過以下命令檢視可用的網路工具:

    busybox --list | grep ifconfig

    這裏會列出Busybox中對應可用的網路工具,如ifconfig、ip等。

    配置網路介面的IP地址和子網路遮罩:

    busybox ifconfig <網路介面><IP地址> netmask <子網路遮罩>

    例如,配置eth0介面的IP地址為192.168.1.10,子網路遮罩為255.255.255.0

    busyboxifconfigeth0 192.168.1.10netmask 255.255.255.0

    Busybox將配置指定網路介面的IP地址和子網路遮罩。

    添加預設閘道器:

    busybox route adddefault gw <預設閘道器IP地址> <網路介面>

    例如,預設閘道器為192.168.1.1,並且網路介面為eth0

    busyboxrouteadddefaultgw 192.168.1.1eth0

    -End-

    讀到這裏說明你喜歡本公眾號的文章,歡迎 置頂(標星)本公眾號 Linux技術迷,這樣就可以第一時間獲取推播了~

    本公眾號,後台回復:Linux,領取2T學習資料 !

    1. 

    2. 

    3.

    4.