IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux 中的 BusyBox 是什么?如何使用它? -> 正文阅读

[系统运维]Linux 中的 BusyBox 是什么?如何使用它?

BusyBox 现在越来越流行,特别是在 Docker 用户中,许多 Docker 镜像使用 BusyBox 为您提供最小镜像。

如果您认为 Linux 命令是理所当然的,这可能会让许多用户感到特别困惑,您认为 ls、mv 和其他此类命令是 Linux 的一部分,而事实是这些命令是 GNU Coreutils 软件包的一部分,并且大多数 Linux 发行版都预装了它。

GNU Coreutils几乎是各种 UNIX/Linux 命令的事实上的提供者,几乎是因为总是有替代品,而 BusyBox 就是 GNU Coreutils 的替代品之一。

什么是BusyBox?

BusyBox 是一个开源项目,它提供了大约 400 个常见 UNIX/Linux 命令的精简实现。

BusyBox 实现删除了不常见的、很少使用的命令选项,一切都小于 1 MB,这个最小的图像是它在嵌入式系统和物联网领域以及云计算世界中流行的原因。

不要看它的大小,BusyBox像经典编辑器一样具有 sed 和 awk 的范围(再次精简版),它也包含自己的 shell,它甚至包含一个可以作为 PID 1 启动的 init 命令,这意味着 BusyBox 可以配置为 Systemd、OpenRC 等的替代品。

BusyBox 是 GNU Coreutils 的绝佳替代品,特别是在操作系统的小尺寸很重要的情况下。

🗒?BusyBox 为您提供流行的 Linux 命令,如 mv、mkdir、ls 等,但它仅包含这些命令的常用选项。这种极简主义是 BusyBox 的 USP。

您没有使用 BusyBox 获得完整的 Linux 命令选项是一个问题吗?

这取决于你的需要,真的,大多数人永远不需要命令的所有选项。一些 Linux 命令有超过 50 个选项,我敢打赌,你甚至从未使用过单个 Linux 命令的所有选项。

BusyBox 减少了很少使用的选项,例如,ls 命令具有选项 G,它从长列表输出 (ls -l) 中删除组名。

现在,我认为你从来不需要这个选项,这就是为什么它在 BusyBox 的 ls 实现中不存在的原因,如果您确实需要一个不包含组名的输出,您所要做的就是为此目的使用 cut 或 awk 命令。

再举一个例子。这是来自 GNU Coreutils的mv 命令的帮助页面:

Usage: mv [OPTION]... [-T] SOURCE DEST
  or:  mv [OPTION]... SOURCE... DIRECTORY
  or:  mv [OPTION]... -t DIRECTORY SOURCE...
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

Mandatory arguments to long options are mandatory for short options too.
      --backup[=CONTROL]       make a backup of each existing destination file
  -b                           like --backup but does not accept an argument
  -f, --force                  do not prompt before overwriting
  -i, --interactive            prompt before overwrite
  -n, --no-clobber             do not overwrite an existing file
If you specify more than one of -i, -f, -n, only the final one takes effect.
      --strip-trailing-slashes  remove any trailing slashes from each SOURCE
                                 argument
  -S, --suffix=SUFFIX          override the usual backup suffix
  -t, --target-directory=DIRECTORY  move all SOURCE arguments into DIRECTORY
  -T, --no-target-directory    treat DEST as a normal file
  -u, --update                 move only when the SOURCE file is newer
                                 than the destination file or when the
                                 destination file is missing
  -v, --verbose                explain what is being done
  -Z, --context                set SELinux security context of destination
                                 file to default type
      --help     display this help and exit
      --version  output version information and exit

现在,这里是 BusyBox 的 mv 命令帮助页面:

Usage: mv [-fin] SOURCE DEST
or: mv [-fin] SOURCE... DIRECTORY

Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY

	-f	Don't prompt before overwriting
	-i	Interactive, prompt before overwrite
	-n	Don't overwrite an existing file

看到不同?

如何获得 BusyBox?

您可以通过多种方式获得 BusyBox。

如果您只是想在当前的 Linux 发行版上体验 BusyBox,您可以使用发行版的包管理器(如 Apt 或 DNF 或Yum )安装它。

在 Ubuntu 上,您可以使用以下命令安装 BusyBox:

sudo apt install busybox

之后,如果要运行 BusyBox 版本的命令,则必须在其前面添加 busybox。

busybox cat sample.txt

如果 BusyBox 未实现命令,则会引发“找不到小程序”的错误。

abhishek@LHB:~$ busybox xyz
xyz: applet not found

或者,您可以下载BusyBox 的 Docker 镜像并在运行的容器中体验它。

请确保您已安装 Docker,拉取官方docker镜像:

docker pull busybox

从镜像运行一个容器并进入 BusyBox shell:

docker run -it --rm busybox

您在此处运行的每个 Linux 命令都来自 BusyBox。您不需要明确指定它。

总之,您不需要在常规 Linux 系统上使用 BusyBox,您已经拥有来自 GNU Coreutils 的完整版本的 Linux 命令。无需安装精简版。

但是 BusyBox 在特殊领域有其用途,例如为嵌入式或物联网设备配置最小的 Linux 操作系统时。当您希望保持 Docker 映像的大小较小时也是如此。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 13:35:20  更:2022-03-06 13:36:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:28:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码