Linux怎么操作(linux)

BusyBox是一个开源(GPL)项目,它提供了近400个常用命令的简单实现。
很容易把Linux命令想当然。当你安装Linux的时候,它们是和系统捆绑在一起的,我们往往不会问它们为什么会在那里。一些基本命令,如cd、kill和echo,并不总是独立的应用程序,而是实际上内置在您的shell中。其他如ls、mv和cat都是核心工具包的一部分(通常是GNUcoreutils)。但是在开源世界里,总有一些替代品,其中最有趣的是BusyBox。
Linux中的BusyBox简介BusyBox是一个开源(GPL)项目,提供了近400个常用命令的简单实现,包括ls、mv、ln、mkdir、more、ps、gzip、bzip2、tar和grep。还包括编程语言awk、流编辑器sed、文件系统检查工具fsck、rpm和dpkg包管理器,当然还有一个可以轻松访问所有这些命令的shell(sh)。简而言之,它包含POSIX系统执行常见系统维护任务和许多用户和管理任务所需的所有基本命令。
事实上,它甚至包含一个init命令,可以作为PID 1启动,成为所有其他系统服务的父进程。换句话说,BusyBox可以作为systemd、OpenRC、sinit、init等初始化系统的替代品。
BusyBox非常小。作为可执行文件,不到1MB,所以在嵌入式、边缘计算、物联网等领域非常受欢迎,因为这些场景的存储空间都很宝贵。在容器和云计算的世界中,它作为精简的Linux容器映像的基本映像也非常受欢迎。
极简主义BusyBox的魅力部分在于它的极简主义。它所有的命令都编译成一个二进制文件(busybox),它的手册只有81页(根据我对man发给pr的管道的计算),却涵盖了近400条命令。
作为一个比较示例,这是“原始”useradd —help的输出:
-b,-base-dir BASE _ dir新帐户的BASE目录-c,- comment新帐户的COMMENT GECOS字段-d,- home-dir新帐户的HOME_DIRhome目录-D,- defaults打印或更改默认配置-e,-EXPIRE DATE expired _ DATE新帐户的到期日期-f,-inactive inactive password in activity-G,- gid主要组的组名或ID-G,- groups补充组列表-h,- help显示此帮助消息并退出-k, – skel SKEL_DIR替代框架目录-K,-KEY KEY=VALUE override/etc/log in . defs-l,- no-log-init不要将用户添加到lastlog -m,- create-home创建用户的主目录-m,- no-create-home不要创建用户的主目录-N,- no-user-group不要使用用户名创建组-o,non-unique允许用户使用非唯一的UIDs -p,- password新帐户的加密密码-r,- system创建系统- root CHROOT_DIR要CHROOT到的目录-s,-shell shell新帐户的登录shell-u,-uid新帐户的用户id-u,-user-group创建一个与用户同名的组,这是同一命令的BusyBox版本:
-h DIR主目录-g GECOS GECOS字段-s SHELL登录shell -G GRP组-s创建系统用户-D不要分配密码-h不要创建主目录-u uid用户id-k skel框架目录(/etc/skel)这种差异是一种特性还是一种限制取决于您希望您的命令有20个选项还是10个选项。对于一些用户和一些用例来说,BusyBox的极简主义正好满足了需求。对于其他人来说,它是一个很好的最小化环境,可以作为备份工具,也可以作为安装更强大工具的基础,比如Bash、Zsh、GNUAwk等等。
在Linux上安装BusyBox。您可以使用您的软件包管理器来安装BusyBox。例如,在Fedora和类似的发行版中:
$ sudo dnf在Debian及其衍生产品中安装busybox:
$ sudo要在MacOS上安装busybox,可以使用MacPorts或者Homebrew。在Windows上,您可以使用Chocolatey。
您可以将BusyBox设置为您的shell,使用chsh —shell命令,然后添加BusyBoxsh应用程序的路径。我将BusyBox放在/lib64中,但是它的位置取决于您的发行版的安装位置。
$ which BusyBox/lib 64/BusyBox/BusyBox $ chsh-shell/lib 64/BusyBox/sh用BusyBox完全取代所有常用命令更复杂,因为大多数发行版都是“硬连线”的,会在特定的软件包中寻找特定的命令。换句话说,虽然用BusyBox的init替换系统的init在技术上是可行的,但是你的包管理器可能会拒绝让你删除包含init的包,以免你担心删除会导致系统无法启动。有些发行版是建立在BusyBox上的,所以从新的环境开始可能是体验BusyBox系统最简单的方法。
尝试BusyBox您不必为了尝试BusyBox而永久地将您的shell更改为BusyBox。您可以从当前的shell启动BusyBox shell。
$ busybox sh~ $但是,您的系统仍然安装了非BusyBox版本的命令,所以要体验BusyBox的工具,您必须将命令作为参数发送给BusyBox可执行文件:
~ $ busybox echo $ 0sh ~ $ busybox ls-help busybox vX。YY . Z(2021-08-25 07:31:48 NZST)多调用二进制。用法: ls[-1 aacxdlhrfplinshrsxvctu][-w WIDTH][FILE].list目录内容-1一列输出-a包括以开头的条目。-a像-a,但排除.-x按行列出[.]为了获得“完整”的busybox体验,可以为每个命令创建一个BusyBox的符号链接。这很简单,只要使用for循环:
$ mkdir bbx $ for I in $(bbx-list);do \ ln-s/path/to/BusyBox bbx/$ I \ done在路径的开头添加这个符号链接目录并启动BusyBox:
$ PATH=$(pwd)/bbxPATH bbx/sh
使用BusyBox是一个有趣的项目,也是一个可以实现最小计算的例子。无论你是用BusyBox作为你醒来的旧电脑的轻量级环境,还是作为嵌入式设备的用户界面,或者尝试一个新的初始化系统,哪怕是为了好奇,重新认识那些熟悉又陌生的命令也会很有趣。
https://opensource.com/article/21/8/what-busybox via :号
作者:塞斯肯伦题目:lujun9972译者:wxy校对:wxy
本文最初由LCTT编辑,Linux中国很荣幸地发布了它。

其他教程

易|这种“田字学派”的壮族乐器其实还有一个可爱的名字叫“丁丁”

2022-8-28 14:02:43

其他教程

PS实用插件(ps最好的抠图插件)

2022-8-28 14:04:46

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索