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替代品
stringsC语言编程查找文件中可打印字符串Arch 
tarGnU tartar archiverArch Busyarchivers
echoShell编程输出命令参数到标准输出Busy Core 
shShell编程Shell,标准命令语言解析器Busy 
sleepShell编程延时Busy Core 
cutShell编程选择文本中每行的特定区域Arch Core 
teeShell编程读取标准输入并写入标准输出和文件Arch Core 
suutil-linuxsubstitute userArchsudo
date其他输出日期和时间Busy Core 
uname其他返回系统名Busy Core 
od其他将文件以八进制或其他进制输出Arch Corehexdump, vim's xxd
sync文件处理工具将缓存写入磁盘并清理缓存Busy Core 
cat文件系统连接和输出文件Arch Busy Coretac, bat
more文字处理逐页显示文件Busy 
less文字处理terminal pagerArchterminal pagers
head文字处理显示文件开头几行Arch Core 
tail文字处理显示文件结尾Arch Core 
ls文件系统列出目录内容Arch Busy Coreexa, lsd, tree
pwd文件系统输出当前目录Busy Core 
cd文件系统改变工作目录Arch 
find文件系统查找文件Arch 
grep其他根据模式搜索文字Arch Busy 
egrep其他接受扩展正则表达式的grepBusy 
fgrep其他接受固定字符串模式的grepBusy 
pgrep其他look up processes by name or attributesArchpidof
chmod文件系统改变文件权限Arch Busy Core 
chown文件系统改变文件所有者Arch Corechgrp
dd文件系统转换或复制文件Arch Busy Core 
cp文件系统复制文件Arch Busy Core 
mv文件系统移动文件Arch Busy Core 
rm文件系统删除文件或目录Arch Busy Coreshred
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 Busysystemd journal
mount文件系统挂载存储设备Arch Busy 
umount文件系统移除挂载的存储设备Arch Busy 
lsblk文件系统list block devicesArch 
file文件系统判断文件类型Arch 
type其他显示命令类型Archwhich
statShell 工具输出给定的索引节点存储的数据Core 
awk文字处理模式扫描和处理语言Arch Busynawk, mawk
sed文字处理流编辑器Arch Busy 
zcat文字处理显示或连接zip压缩的文件Busy 
comm文字处理按行比较两个已排序文件Arch Core 
diff文字处理比较2个文件Arch 
iconv文字处理转换字符集Archrecode
sort文字处理文本排序Arch Core 
tr文字处理翻译字符Arch Core 
uniq文字处理报告或者删除文件中重复行Arch Core 
wc文字处理字、行字节或者字符计数Arch Core 
kill进程管理结束进程或向进程发信号Arch Busypkill, killall
ps进程管理报告进程状态Arch Busytop, htop
nohup进程管理运行一个忽略SIGHUP信号的程序Core 
bg进程管理后台运行作业  
fg进程管理在前台运行命令  
jobs进程管理显示当前会话中任务状态  
freeprocps-ngdisplay amount of free and used memoryArch 
time进程管理定时命令Arch 
ping  Busy 
watch  Busy 
wget HTTP或FTP下载工具Busy 
chrootShell 工具转换root(即“/”)文件夹Core 
cksum文件系统计算文件校验和和大小Core 
md5sum文本工具计算/校验文件的 MD5 校验值Core 
sha1sum文本工具计算/校验sha224sum, sha256sum, sha384sum, sha512sumCore 
env其他为命令设置环境变量Core 
lp文字处理发送文件到打印机  
pr文字处理打印文件Core 
printfShell编程格式化输出Core 
stty其他设置终端选项Core 
tty其他返回用户终端名Core 
logname其他返回当前登陆用户名Core 
id其他返回用户标示符Core 
usersShell 工具输出登录到当前主机的用户Core 
who系统管理显示登录用户Core 
whoamiShell 工具输出当前用户的有效用户IDCore 
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 或直接使用以下之一:

SoftwarePackageWEXTnl80211WEPWPA/WPA2Archiso
wireless_toolswireless_toolsYesNoYesNoYes
iwiwNoYesYesNoYes
WPA supplicantwpa_supplicantYesYesYesYesYes
iwdiwdNoYesYesYesYes


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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值