busybox是一款開發Linux系統下軟體的開發工具,是整合了三百多個最常用Linux指令和工具的軟體。簡單的說BusyBox就好像是個大工具箱,它整合壓縮了Linux的許多工具和指令,也包含了 Linux系統的自帶的shell。 BusyBox是GNU Coreutils的絕佳替代品,特別是在作業系統的小尺寸很重要的情況下。
本教學操作環境:linux7.3系統、Dell G3電腦。
BusyBox 現在越來越流行,特別是在 Docker 用戶中,許多 Docker 映像使用 BusyBox 為您提供最小映像。
如果您認為Linux 命令是理所當然的,這可能會讓許多用戶感到特別困惑,您認為ls、mv 和其他此類命令是Linux 的一部分,而事實是這些命令是GNU Coreutils 軟體包的一部分,並且大多數Linux 發行版都預先安裝了它。
GNU Coreutils幾乎是各種 UNIX/Linux 指令的事實上的提供者,幾乎是因為總是有替代品,而 BusyBox 就是 GNU Coreutils 的替代品之一。
busybox是一款開發Linux系統下軟體的開發工具。
BusyBox 是一個開源項目,它提供了大約 400 個常見 UNIX/Linux 指令的精簡實作。
BusyBox 是一個整合了三百多個最常用Linux指令和工具的軟體。 BusyBox 包含了一些簡單的工具,例如ls、cat和echo等等,也包含了一些更大、更複雜的工具,例如grep、find、mount以及telnet。有些人稱 BusyBox 為 Linux 工具裡的瑞士軍刀。簡單的說BusyBox就好像是個大工具箱,它整合壓縮了 Linux 的許多工具和指令,也包含了 Linux 系統的自帶的shell。
BusyBox 實作刪除了不常見的、很少使用的命令選項,一切都小於 1 MB,這個最小的圖像是它在嵌入式系統和物聯網領域以及雲端運算世界中流行的原因。
不要看它的大小,BusyBox像經典編輯器一樣具有sed 和awk 的範圍(再次精簡版),它也包含自己的shell,它甚至包含一個可以作為PID 1 啟動的init 命令,這意味著BusyBox 可以配置為Systemd、OpenRC 等的替代品。
BusyBox 是 GNU Coreutils 的絕佳替代品,特別是在作業系統的小尺寸很重要的情況下。
BusyBox 為您提供流行的 Linux 命令,如 mv、mkdir、ls 等,但它僅包含這些命令的常用選項。這種極簡主義是 BusyBox 的 USP。
這取決於你的需要,真的,大多數人永遠不需要命令的所有選項。有些 Linux 指令有超過 50 個選項,我敢打賭,你甚至從未使用過單一 Linux 指令的所有選項。
BusyBox 減少了很少使用的選項,例如,ls 命令具有選項 G,它從長列表輸出 (ls -l) 中刪除群組名稱。
現在,我認為你從來不需要這個選項,這就是為什麼它在BusyBox 的ls 實作中不存在的原因,如果你確實需要一個不包含組名的輸出,您所要做的就是為此目的使用cut 或awk 命令。
再舉一個例子。這是來自 GNU Coreutils的mv 命令的幫助頁面:
Usage: mv [OPTION]... [-T] SOURCE DEST or: mv [OPTION]... SOURCE... DIRECTORY or: mv [OPTION]... -t DIRECTORY SOURCE... Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY. Mandatory arguments to long options are mandatory for short options too. --backup[=CONTROL] make a backup of each existing destination file -b like --backup but does not accept an argument -f, --force do not prompt before overwriting -i, --interactive prompt before overwrite -n, --no-clobber do not overwrite an existing file If you specify more than one of -i, -f, -n, only the final one takes effect. --strip-trailing-slashes remove any trailing slashes from each SOURCE argument -S, --suffix=SUFFIX override the usual backup suffix -t, --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY -T, --no-target-directory treat DEST as a normal file -u, --update move only when the SOURCE file is newer than the destination file or when the destination file is missing -v, --verbose explain what is being done -Z, --context set SELinux security context of destination file to default type --help display this help and exit --version output version information and exit
現在,這裡是 BusyBox 的 mv 命令幫助頁面:
Usage: mv [-fin] SOURCE DEST or: mv [-fin] SOURCE... DIRECTORY Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY -f Don't prompt before overwriting -i Interactive, prompt before overwrite -n Don't overwrite an existing file
看到不同?
您可以透過多種方式獲得 BusyBox。
如果您只是想在目前的 Linux 發行版上體驗 BusyBox,您可以使用發行版的套件管理器(如 Apt 或 DNF 或Yum )安裝它。
在 Ubuntu 上,您可以使用以下命令安裝 BusyBox:
sudo apt install busybox
之後,如果要執行 BusyBox 版本的命令,則必須在其前面新增 busybox。
busybox cat sample.txt
如果 BusyBox 未實作指令,則會引發「找不到小程式」的錯誤。
abhishek@LHB:~$ busybox xyz xyz: applet not found
或者,您可以下載BusyBox 的 Docker 映像並在運行的容器中體驗它。
請確保您已安裝Docker,拉取官方docker映像:
docker pull busybox
從映像運行一個容器並進入BusyBox shell:
docker run -it --rm busybox
您在此處運行的每個Linux 指令都來自BusyBox。您不需要明確指定它。
總之,您不需要在常規 Linux 系統上使用 BusyBox,您已經擁有來自 GNU Coreutils 的完整版本的 Linux 命令。無需安裝精簡版。
但是 BusyBox 在特殊領域有其用途,例如為嵌入式或物聯網裝置配置最小的 Linux 作業系統時。當您希望保持 Docker 映像的大小較小時也是如此。
相關推薦:《Linux影片教學》
以上是linux busybox是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!