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