BusyBox



1. BusyBox
2. Toybox
3. BusyBox命令
4. 關於Toybox的爭議
5. 被取代的命令
6. 更多相關參考

1. BusyBox

https://en.wikipedia.org/wiki/BusyBox
https://zh.wikipedia.org/wiki/BusyBox

Initial release	1999; 20 years ago
Stable release	1.31.1 (October 25, 2019; 4 months ago) 
Repository	git.busybox.net/busybox
Website 	www.busybox.net

BusyBox是一個遵循GPL協議、以自由軟件形式發行的應用程序。Busybox在單一的可執行文件中提供了精簡的Unix工具集,可運行於多款POSIX環境的操作系統,例如Linux(包括Android)、Hurd、FreeBSD等等。由於BusyBox可執行文件的文件大小比較小,使得它非常適合使用於嵌入式系統。作者將BusyBox稱為“嵌入式Linux的瑞士軍刀”。

https://wiki.archlinux.org/index.php/BusyBox
BusyBox在單個小型可執行文件中為嵌入式系統提供了許多常見的UNIX實用程序。
注意:不要期望完全的直接替換和兼容性。某些實用程序可能不存在,而對於某些實用程序,則可能缺少選項。
https://wiki.gentoo.org/wiki/Mdev#Emerging_busybox

2. Toybox

https://en.wikipedia.org/wiki/Toybox

Initial release	2006; 14 years ago
Stable release	0.8.2 / October 18, 2019; 4 months ago
Repository	github.com/landley/toybox.git
Website 	www.landley.net/toybox

Toybox是針對嵌入式設備的某些Unix命令行實用程序的免費開源軟件實現。其中包括ls,cp,mv和大約150個其他。Toybox項目始於2006年[2],已成為BSD許可的BusyBox替代產品。
Toybox包含在Android 6.0“ Marshmallow” [5]和所有更高的Android版本(即當前所有受支持的Android版本)中,並且還可以在某些其他操作系統上安裝。

功能和目標

  • Toybox旨在為GPL許可的BusyBox提供BSD許可的替代產品。
  • Toybox的主要技術設計目標是簡單,小巧,快速和符合標准。
  • Toybox與POSIX -2008和LSB 4.1兼容,並不專注於在GNU對應版本中找到每個選項。



Toybox使用許可的 BSD許可進行許可,其中BusyBox使用copyleft的 GNU通用公共許可,導致不同的使用域。
Busybox主要用於copyleft FOSS域,而Toybox主要用於許可項目和商業公司,例如Google的Android ,這是Toybox的明確目標。
從功能上講,Toybox尚未達到Busybox的水平。從0.7.7版開始,Toybox僅提供Busybox功能的一部分。

3. BusyBox命令

https://zh.wikipedia.org/wiki/BusyBox#命令
https://en.wikipedia.org/wiki/BusyBox#Commands
https://www.busybox.net/downloads/BusyBox.html#commands

名稱 分類 描述 Arch/Busybox/Core 替代品
strings C語言編程 查找文件中可打印字符串 Arch  
tar GnU tar tar archiver Arch Busy archivers
echo Shell編程 輸出命令參數到標准輸出 Busy Core  
sh Shell編程 Shell,標准命令語言解析器 Busy  
sleep Shell編程 延時 Busy Core  
cut Shell編程 選擇文本中每行的特定區域 Arch Core  
tee Shell編程 讀取標准輸入並寫入標准輸出和文件 Arch Core  
su util-linux substitute user Arch sudo
date 其他 輸出日期和時間 Busy Core  
uname 其他 返回系統名 Busy Core  
od 其他 將文件以八進制或其他進制輸出 Arch Core hexdump, vim's xxd
sync 文件處理工具 將緩存寫入磁盤並清理緩存 Busy Core  
cat 文件系統 連接和輸出文件 Arch Busy Core tac, bat
more 文字處理 逐頁顯示文件 Busy  
less 文字處理 terminal pager Arch terminal pagers
head 文字處理 顯示文件開頭幾行 Arch Core  
tail 文字處理 顯示文件結尾 Arch Core  
ls 文件系統 列出目錄內容 Arch Busy Core exa, lsd, tree
pwd 文件系統 輸出當前目錄 Busy Core  
cd 文件系統 改變工作目錄 Arch  
find 文件系統 查找文件 Arch  
grep 其他 根據模式搜索文字 Arch Busy  
egrep 其他 接受擴展正則表達式的grep Busy  
fgrep 其他 接受固定字符串模式的grep Busy  
pgrep 其他 look up processes by name or attributes Arch pidof
chmod 文件系統 改變文件權限 Arch Busy Core  
chown 文件系統 改變文件所有者 Arch Core chgrp
dd 文件系統 轉換或復制文件 Arch Busy Core  
cp 文件系統 復制文件 Arch Busy Core  
mv 文件系統 移動文件 Arch Busy Core  
rm 文件系統 刪除文件或目錄 Arch Busy Core shred
touch 文件系統 改變文件訪問和修改時間 Busy Core  
mkdir 文件系統 創建目錄 Arch Busy Core  
rmdir 文件系統 刪除空目錄 Arch Busy Core  
vi 文字處理 面向屏幕的可視化編輯器 Busy  
alias 其他 定義或者顯示別名 Arch  
ln 文件系統 創建文件鏈接 Arch Busy Core  
df 文件系統 報告磁盤剩余空間 Arch Busy Core  
du 文件系統 計算磁盤占用空間 Core  
dmesg 文件系統 查看內核信息 Arch Busy systemd journal
mount 文件系統 掛載存儲設備 Arch Busy  
umount 文件系統 移除掛載的存儲設備 Arch Busy  
lsblk 文件系統 list block devices Arch  
file 文件系統 判斷文件類型 Arch  
type 其他 顯示命令類型 Arch which
stat Shell 工具 輸出給定的索引節點存儲的數據 Core  
awk 文字處理 模式掃描和處理語言 Arch Busy nawk, mawk
sed 文字處理 流編輯器 Arch Busy  
zcat 文字處理 顯示或連接zip壓縮的文件 Busy  
comm 文字處理 按行比較兩個已排序文件 Arch Core  
diff 文字處理 比較2個文件 Arch  
iconv 文字處理 轉換字符集 Arch recode
sort 文字處理 文本排序 Arch Core  
tr 文字處理 翻譯字符 Arch Core  
uniq 文字處理 報告或者刪除文件中重復行 Arch Core  
wc 文字處理 字、行字節或者字符計數 Arch Core  
kill 進程管理 結束進程或向進程發信號 Arch Busy pkill, killall
ps 進程管理 報告進程狀態 Arch Busy top, htop
nohup 進程管理 運行一個忽略SIGHUP信號的程序 Core  
bg 進程管理 后台運行作業    
fg 進程管理 在前台運行命令    
jobs 進程管理 顯示當前會話中任務狀態    
free procps-ng display amount of free and used memory Arch  
time 進程管理 定時命令 Arch  
ping     Busy  
watch     Busy  
wget   HTTP或FTP下載工具 Busy  
chroot Shell 工具 轉換root(即“/”)文件夾 Core  
cksum 文件系統 計算文件校驗和和大小 Core  
md5sum 文本工具 計算/校驗文件的 MD5 校驗值 Core  
sha1sum 文本工具 計算/校驗sha224sum, sha256sum, sha384sum, sha512sum Core  
env 其他 為命令設置環境變量 Core  
lp 文字處理 發送文件到打印機    
pr 文字處理 打印文件 Core  
printf Shell編程 格式化輸出 Core  
stty 其他 設置終端選項 Core  
tty 其他 返回用戶終端名 Core  
logname 其他 返回當前登陸用戶名 Core  
id 其他 返回用戶標示符 Core  
users Shell 工具 輸出登錄到當前主機的用戶 Core  
who 系統管理 顯示登錄用戶 Core  
whoami Shell 工具 輸出當前用戶的有效用戶ID Core  
locale 其他 獲得本地信息    
localedef 其他 定義本地環境變量    
man 其他 顯示系統文檔    
ulimit 其他 設置或顯示文件限制    
umask 其他 設置或顯示文件生成掩碼    
make 編程 維護一整套代碼庫,組織編譯    
split 其他 分割文件 Core  
paste 文字處理 合並文件 Core  
csplit 文字處理 基於內容分割文件 Core  
pathchk 文件系統 檢驗路徑名 Core  
basename 文件系統 輸入文件完整路徑,只返回其文件名 Core  
dirname 文件系統 返回路徑的目錄 Core  
expand 文字處理 轉換跳格為空格 Core  
unexpand 文字處理 轉換空格為制表符 Core  
fold 文字處理 回折每行文本到特定寬度 Core  
nl 文字處理 加行號顯示文本 Core  

 

4. 關於Toybox的爭議

https://en.wikipedia.org/wiki/Toybox#Controversy
2012年1月,關於創建BSD許可證替代GPL許可的BusyBox項目的提案引起了Matthew Garrett的嚴厲批評,因為他剝奪了Software Freedom Conservancy組織唯一的版權實施相關工具。發起了基於BusyBox的訴訟的羅布·蘭德利(Rob Landley)對此做出了有意的回應,他解釋說,這些訴訟並沒有使該項目受益,而是導致了公司回避,並表示希望“以任何方式阻止該訴訟”認為合適”。

https://en.wikipedia.org/wiki/BusyBox#Controversy_over_Toybox
由於關於GPLv3/GPLv2討論的爭議,Toybox於2006年初由前Busybox維護者Rob Landley 根據GNU通用公共許可證啟動。2011年年底,該項目進入休眠狀態后,根據BSD許可證重新獲得了許可。2012年1月11日,索尼(Sony)員工蒂姆伯德(Tim Bird)建議創建BusyBox的替代方案,該替代方案不受GNU通用公共許可證的約束。他建議基於休眠的Toybox。2012年1月,關於創建由BSD許可的替代GPL許可的BusyBox項目的提案引起了Matthew Garrett的嚴厲批評。對於帶走的唯一工具相關版權執法的的軟件自由水利組。基於BusyBox的訴訟的開始者羅布·蘭德利(Rob Landley)回答說,這是有意的,因為他得出的結論是,這些訴訟並沒有希望產生積極的結果,他想“以我認為合適的方式”制止訴訟。

5. 被取代的命令

不推薦使用的Linux網絡命令及其替代品 (原文及譯文)
https://dougvitale.wordpress.com/2011/12/21/deprecated-linux-networking-commands-and-their-replacements/
https://www.cnblogs.com/sztom/articles/10764994.html

棄用命令 	更換命令
  arp   	ip n (ip neighbor)
ifconfig	ip a (ip addr), ip link, ip -s(ip -stats)
iptunnel	ip tunnel
iwconfig	iw
 nameif 	ip link,ifrename
netstat 	ss,ip route (for netstat -r), ip -s link (for netstat -i), ip maddr (for netstat -g)
 route  	ip r(ip route)
 
        

mkfshttps://wiki.archlinux.org/index.php/File_systems#Create_a_file_system
https://wiki.archlinux.org/index.php/Category:Superseded_commands
https://www.archlinux.org/news/deprecation-of-net-tools/
https://wiki.archlinux.org/index.php/Network_configuration#net-tools
https://wiki.archlinux.org/index.php/Network_configuration#Investigate_sockets
https://wiki.archlinux.org/index.php/Network_configuration/Wireless#iw_and_wireless_tools_comparison
https://wireless.wiki.kernel.org/en/users/Documentation/iw/replace-iwconfig
Arch Linux has deprecated net-tools in favor of iproute2.
就像其他網絡接口一樣,無線接口也由iproute2包中的ip控制。
管理無線連接需要一套基本的工具。使用 network manager 或直接使用以下之一:

Software Package WEXT nl80211 WEP WPA/WPA2 Archiso
wireless_tools wireless_tools Yes No Yes No Yes
iw iw No Yes Yes No Yes
WPA supplicant wpa_supplicant Yes Yes Yes Yes Yes
iwd iwd No Yes Yes Yes Yes


iw and wireless_tools comparison

iw command 描述 wireless_tools command
iw dev wlan0 link 獲取鏈接狀態。 iwconfig wlan0
iw dev wlan0 scan 掃描可用的接入點。 iwlist wlan0 scan
iw dev wlan0 set type ibss 將操作模式設置為臨時。 iwconfig wlan0 mode ad-hoc
iw dev wlan0 connect your_essid 連接到開放網絡。 iwconfig wlan0 essid your_essid
iw dev wlan0 connect your_essid 2432 連接到開放的網絡指定通道。 iwconfig wlan0 essid your_essid freq 2432M
iw dev wlan0 connect your_essid key 0:your_key 使用十六進制密鑰連接到WEP加密網絡。 iwconfig wlan0 essid your_essid key your_key
使用ASCII密鑰連接到WEP加密網絡。 iwconfig wlan0 essid your_essid key s:your_key
iw dev wlan0 set power_save on 啟用省電功能。 iwconfig wlan0 power on

 

6. 更多相關參考

List of GNU Core Utilities commands
https://en.wikipedia.org/wiki/List_of_GNU_Core_Utilities_commands
https://zh.wikipedia.org/wiki/GNU核心工具組命令列表

List of Unix commands
https://en.wikipedia.org/wiki/List_of_Unix_commands
https://zh.wikipedia.org/wiki/Unix實用程序列表

http://www.roesler-ac.de/wolfram/acro/Cmd.htm

https://wiki.archlinux.org/index.php/Core_utilities

https://wiki.archlinux.org/index.php/List_of_applications#See_also

https://www.gnu.org/software/coreutils/manual/coreutils.html
https://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html

GNU核心實用程序
https://en.wikipedia.org/wiki/GNU_Core_Utilities
嵌入式系統上的Linux
https://en.wikipedia.org/wiki/Linux_on_embedded_systems
適用於移動設備的Linux
https://en.wikipedia.org/wiki/Linux_for_mobile_devices


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM