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