精华内容
下载资源
问答
  • BusyBox

    2020-03-16 03:00:00
    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; ...


    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

    展开全文
  • Busybox

    2019-09-21 21:51:16
    前提条件 glibc-static glibc-devel libencrypt-devel 步骤 下载busybox源文件 tar -zxvf busybox-major-minor-VERSION.tar.gz -...ln -sv busybox-major-minor-VERSION busybox cd busybox make menuconfig 将编...

    前提条件

    1. glibc-static
    2. glibc-devel
    3. libencrypt-devel

    步骤

    • 下载busybox源文件
    • tar -zxvf busybox-major-minor-VERSION.tar.gz -C /usr/src
    • ln -sv busybox-major-minor-VERSION busybox
    • cd busybox
    • make menuconfig
    • 将编译的方式使用静态编译的方式
    • 退出
    • make && make install
    • 会在源码目录下生成_install目录, 其中包含着所有的文件命令
    • 测试: chroot /mnt/sysroot ash

    转载于:https://www.cnblogs.com/megachen/p/9504748.html

    展开全文
  • busybox

    2020-03-22 20:28:06
    busybox支持 uClibc和glibc,对linux2.2.x之后的内核良好支持 busybox是一个遵循GPL V2协议的开源项目。将众多的unix命令集合进一个很小的可执行程序,替换GUN fileutiles,shellutils等工具。busybox中各种命令相对...

    关注点

    • busybox支持 uClibc和glibc,对linux2.2.x之后的内核良好支持
    • busybox是一个遵循GPL V2协议的开源项目。将众多的unix命令集合进一个很小的可执行程序,替换GUN fileutiles,shellutils等工具。busybox中各种命令相对少,但能满足一般需要。体积相比动辄几MB的GNU工具,只有几百KB,缩小很多。
    • 在使用busybox创建最小根文件系统时,只需/dev创建必要的设备节点,/etc下创建一些配置文件。如果busybox使用动态链接,还要在/lib目录下包含库文件

    busybox init进程启动

    Created with Raphaël 2.2.0开始设置信号处理函数初始化控制台解析inittab执行inittab的SYSTNIT函数执行inittab的WAIT函数执行inittab的ONCE函数执行inittab的RESPANWN函数执行inittab的ASKFIRST函数检测RESPANWN有退出则重新执行结束

    如果内核启动同时设置了环境变量console或CONSOLE则使用指定的设备,未指定则使用/dev/console

    • /etc/inittab的格式
    <id>:<runlevels>:<action>:<process>
    
    • 各个字段的作用
      • id 表示这个子进程要使用的控制台(stdin,stdout,stderr),省略则和init进程使用一样的控制台
      • runlevels busybox中无意义,可省略
      • action 如何控制这个子进程,取值见下表
    action名称 执行条件 说明
    sysinit 系统启动后最先执行 只执行一次,init进程等待它结束才执行其他动作
    wait 执行完sysinit 只执行一次,init进程等待它结束才执行其他动作
    once 执行完wait时 只执行一次,init进程不等待它结束
    respawn 启动完once进程时 监测子进程退出时,重新启动它
    askfirst 启动完respawn进程后 等待用户按下回车后启动
    shutdown 当系统关机时 即重启关闭系统命令时
    restart busybox中配置CONFIG_FEATURE_USE_INITTAB,并且init进程接收到SIGHUP信号时 先重新读取,解析/etc/inittab 文件,再执行restart程序
    ctrlaltdel 按下ctrl+alt+del时 -
    • process 要执行的程序,可执行程序或脚本。
      如果字段前有“-”,则被称为“交互的”
    展开全文
  • BusyBOx

    2011-03-02 16:36:00
    概述    BusyBox 是标准 Linux 工具的一个单个可执行实现。BusyBox 包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大、更...1、BusyBox 的诞生  BusyBox 最初是由 Bruce Perens 在 1996 年为

    概述

       BusyBox 是标准 Linux 工具的一个单个可执行实现。BusyBox 包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀.简单的说BusyBox就好像是个大工具箱 ,它集成压缩了 Linux 的许多工具和命令。

    1、BusyBox 的诞生

      BusyBox 最初是由 Bruce Perens 在 1996 年为 Debian GNU/Linux 安装盘编写的。其目标是在一张软盘上创建一个可引导的 GNU/Linux 系统,这可以用作安装盘和急救盘。

    2、busybox的用法

    可以这样用busybox   

    #busybox ls   

    他的功能就相当运行ls命令   

     

    最常用的用法是建立指向busybox的链接,不同的链接名完成不同的功能.   

    #ln -s busybox ls   

    #ln -s busybox rm   

    #ln -s busybox mkdir   

    然后分别运行这三个链接:   

    #./ls   

    #./rm   

    #./mkdir   

    就可以分别完成了ls rm 和mkdir命令的功能.虽然他们都指向同一个可执行程序busybox,但是只要链接名不同,完成的功能就不同,很多linux网站都提供busybox的源代码下载。

    3、配置busybox

      busybox的配置程序和linux内核菜单配置方式简直一模一样.熟悉用make menuconfig方式配置linux内核的朋友很容易上手.   #cp busybox-1.00.tar.gz /babylinux   

    #cd /babylinux   

    #tar xvfz busybox-1.00.tar.gz   

    #cd busybox-1.00   

    #make menuconfig   

    下面是需要编译进busybox的功能选项。   

    General Configuration应该选的选项   

    Show verbose applet usage messages   

    Runtime SUID/SGID configuration 

     

    Build Options   

    Build BusyBox as a static binary (no shared libs)   

    这个选项是一定要选择的,这样才能把busybox编译成静态链接的可执行文件 ,运行时才独立于其他函数库.否则必需要其他库文件才能运行,在单一个linux内核不能使它正常工作.

     

    Installation Options   

    Don't use /usr   

    这个选项也一定要选,否则make install 后busybox将安装在原系统的/usr下,这将覆盖掉系统原有的命令.选择这个选项后,make install后会在busybox目录下生成一个叫_install的目录,里面有busybox和指向它的链接.   

    其它选项都是一些linux基本命令选项,自己需要哪些命令就编译进去,一般用默认的就可以了,配置好后退出并保存。

    4、编译并安装busybox

    #make   

    #make install   

    编译好后在busybox目录下生成子目录_install,里面的内容:   

    drwxr-xr-x 2 root root 4096 11月 24 15:28 bin   

    rwxrwxrwx 1 root root 11 11月 24 15:28 linuxrc -> bin/busybox   

    drwxr-xr-x 2 root root 4096 11月 24 15:28 sbin   

    其中可执行文件busybox在bin目录下,其他的都是指向他的符号链接.

    展开全文
  • BUSYBOX

    2010-06-17 16:40:00
    busybox  BusyBox 是标准 Linux 工具的一个单个可执行实现。BusyBox 包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet。有些人将 BusyBox...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,751
精华内容 4,300
关键字:

busybox