2020-03-16

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)

mkfs https://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

1 条评论:

  1. Excellent, what a webpage it is! This weblog presents helpful information to us, keep it up.

    回复删除

Diode

导航 (返回顶部) 1. Diode 1.1 Diode 概述 1.2 肖克利二极管方程 1.3 缩写 Abbreviations 2. 主要功能 2.1 单向电流 (Unidirectional current flow) 2.2 阈值电压 (Threshold...