busybox

简介:

BusyBox是一个集成了一百多个最常用linux命令和工具的软件。BusyBox包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将BusyBox称为Linux工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了Linux的许多工具和命令,也包含了Android系统的自带的shell。BusyBox将许多具有共性的小版本的UNIX工具结合到一个单一的可执行文件。这样的集合可以替代大部分常用工具比如的GNU fileutils,shellutils等工具,BusyBox提供了一个比较完善的环境,可以适用于任何小的嵌入式系统。

简介/busybox 编辑

busybox图册
BusyBox 将许多具有共性的小版本的UNIX工具结合到一个单一的可执行文件。这样的集合可以替代大部分常用工具比如的GNU fileutils , shellutils等工具,BusyBox提供了一个比较完善的环境,可以适用于任何小的嵌入式系统。
发源/busybox 编辑
BusyBox 最初是由 Bruce Perens 在 1996 年为Debian GNU/Linux安装盘编写的。其目标是在一张软盘上创建一个可引导的 GNU/Linux 系统,这可以用作安装盘和急救盘。
编译安装/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:28linuxrc -> bin/busybox
drwxr-xr-x 2 root root 4096 11月 24 15:28 sbin
其中可执行文件busybox在需要制作文件系统映像烧入板子的情况下,busybox应放在根文件系统目录下的bin中,其他的都是指向他的符号链接.
配置/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 via /etc/busybox.conf
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基本命令选项,自己需要哪些命令就编译进去,一般用默认的就可以了,配置好后退出并保存。[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的源代码下载。

目录
相关文章
|
Shell 容器 Perl
Back-off restarting failed container 问题解决
Back-off restarting failed container 问题解决
2651 0
|
10月前
|
机器学习/深度学习 算法 数据处理
《MaxFrame:数据处理的卓越实践与提升》
MaxFrame是一款融合AI技术和Pandas库的数据处理工具,提供智能分析、预测及高效的数据清洗、转换功能。它在图像识别和结构化数据处理方面表现出色。然而,在大规模数据处理时性能有待提升,建议优化算法和内存管理。此外,增加数据可视化、机器学习集成等功能,改进用户界面并加强数据安全保障,将使MaxFrame更全面地满足用户需求,成为数据处理领域的领先产品。
141 32
|
Linux Windows
ISO转换QCOW2
【8月更文挑战第23天】要将ISO文件转换为Qcow2格式,可利用QEMU工具。先通过`qemu-img create`创建一个原始磁盘映像,再用`qemu-system`从ISO安装系统至该映像,最后以`qemu-img convert`将其转为Qcow2格式。在Windows上,需先安装QEMU,然后在命令提示符中运行类似命令实现转换。注意根据操作系统与QEMU版本调整步骤,并确保有足够的磁盘空间。
1750 1
|
12月前
解决Harbor在服务器重启后无法自启动的问题
解决Harbor在服务器重启后无法自启动的问题
554 0
|
搜索推荐 Windows
Axure RP 9高手速成秘籍:解锁终极快捷键,设计效率飙升10倍!
Axure RP 9作为一款功能强大的原型设计工具,提供了丰富的快捷键来加速设计流程。以下是一份详尽的Axure RP 9快捷键大全,旨在帮助用户更高效地完成设计工作。
271 2
|
机器学习/深度学习 算法 数据挖掘
深度学习中常用损失函数介绍
选择正确的损失函数对于训练机器学习模型非常重要。不同的损失函数适用于不同类型的问题。本文将总结一些常见的损失函数,并附有易于理解的解释、用法和示例
581 0
深度学习中常用损失函数介绍
|
JSON JavaScript 前端开发
Golang深入浅出之-Go语言JSON处理:编码与解码实战
【4月更文挑战第26天】本文探讨了Go语言中处理JSON的常见问题及解决策略。通过`json.Marshal`和`json.Unmarshal`进行编码和解码,同时指出结构体标签、时间处理、omitempty使用及数组/切片区别等易错点。建议正确使用结构体标签,自定义处理`time.Time`,明智选择omitempty,并理解数组与切片差异。文中提供基础示例及时间类型处理的实战代码,帮助读者掌握JSON操作。
354 1
Golang深入浅出之-Go语言JSON处理:编码与解码实战
|
消息中间件 中间件 测试技术
软件体系结构 - 遗留系统演化策略
【4月更文挑战第11天】软件体系结构 - 遗留系统演化策略
455 4
|
XML 缓存 Java
Spring AOP 的三种使用方式(万字长文)
前言 Spring AOP 作为 Spring Framework 的核心模块,对 Spring IOC 加以补充,Spring 内部使用它提供了企业级的服务,如事务、异步、缓存等,同时它也允许用户自定义 Aspect,以便用 AOP 补充对 OOP 的使用。通常情况下,我们会通过 AspectJ 的注解来使用 Spring AOP,那么 Spring 一共提供了哪些使用 AOP 的方式呢?本篇将对其总结,并尝试了解 Spring AOP 的内部实现。
379 0
Spring AOP 的三种使用方式(万字长文)
|
监控 分布式数据库 API
数据传输DTS同步问题之遇到错误如何解决
数据传输服务(DTS)是一项专注于数据迁移和同步的云服务,在使用过程中可能遇到多种问题,本合集精选常见的DTS数据传输问题及其答疑解惑,以助用户顺利实现数据流转。