💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## Busybox ### 简介 ![](https://box.kancloud.cn/a200c2b43fcfa383ff59e090fcb85aa4_164x116.png) BusyBox 是一个集成了一百多个最常用 Linux 命令和工具(如 cat、echo、grep、mount、telnet 等)的精简工具箱,它只需要几 MB 的大小,很方便进行各种快速验证,被誉为“Linux 系统的瑞士军刀”。 BusyBox 可运行于多款 POSIX 环境的操作系统中,如 Linux(包括 Android)、Hurd、FreeBSD 等。 ### 获取官方镜像 在 Docker Hub 中搜索 busybox 相关的镜像。 ``` <pre class="prettyprint"><ol class="linenums"><li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">$ docker search busybox</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">NAME DESCRIPTION STARS OFFICIAL AUTOMATED</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">busybox </span><span class="typ">Busybox</span><span class="pln"> base image</span><span class="pun">.</span><span class="pln"> </span><span class="lit">755</span><span class="pln"> </span><span class="pun">[</span><span class="pln">OK</span><span class="pun">]</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">progrium</span><span class="pun">/</span><span class="pln">busybox </span><span class="lit">63</span><span class="pln"> </span><span class="pun">[</span><span class="pln">OK</span><span class="pun">]</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">radial</span><span class="pun">/</span><span class="pln">busyboxplus </span><span class="typ">Full</span><span class="pun">-</span><span class="pln">chain</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Internet</span><span class="pln"> enabled</span><span class="pun">,</span><span class="pln"> busybox made</span><span class="pun">...</span><span class="pln"> </span><span class="lit">11</span><span class="pln"> </span><span class="pun">[</span><span class="pln">OK</span><span class="pun">]</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">odise</span><span class="pun">/</span><span class="pln">busybox</span><span class="pun">-</span><span class="pln">python </span><span class="lit">3</span><span class="pln"> </span><span class="pun">[</span><span class="pln">OK</span><span class="pun">]</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">multiarch</span><span class="pun">/</span><span class="pln">busybox multiarch ports of ubuntu</span><span class="pun">-</span><span class="pln">debootstrap </span><span class="lit">2</span><span class="pln"> </span><span class="pun">[</span><span class="pln">OK</span><span class="pun">]</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">azukiapp</span><span class="pun">/</span><span class="pln">busybox </span><span class="typ">This</span><span class="pln"> image is meant to be used as the base</span><span class="pun">...</span><span class="pln"> </span><span class="lit">2</span><span class="pln"> </span><span class="pun">[</span><span class="pln">OK</span><span class="pun">]</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pun">...</span></code></li> </ol> ``` 读者可以看到最受欢迎的镜像同时带有 OFFICIAL 标记,说明它是官方镜像。用户使用 docker pull 指令下载镜像 `busybox:latest`: ``` <pre class="prettyprint"><ol class="linenums"><li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">$ docker pull busybox</span><span class="pun">:</span><span class="pln">latest</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">busybox</span><span class="pun">:</span><span class="pln">latest</span><span class="pun">:</span><span class="pln"> </span><span class="typ">The</span><span class="pln"> image you are pulling has been verified</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">e433a6c5b276</span><span class="pun">:</span><span class="pln"> </span><span class="typ">Pull</span><span class="pln"> complete</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">e72ac664f4f0</span><span class="pun">:</span><span class="pln"> </span><span class="typ">Pull</span><span class="pln"> complete</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="lit">511136ea3c5a</span><span class="pun">:</span><span class="pln"> </span><span class="typ">Pull</span><span class="pln"> complete</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">df7546f9f060</span><span class="pun">:</span><span class="pln"> </span><span class="typ">Pull</span><span class="pln"> complete</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="typ">Status</span><span class="pun">:</span><span class="pln"> </span><span class="typ">Downloaded</span><span class="pln"> newer image </span><span class="kwd">for</span><span class="pln"> busybox</span><span class="pun">:</span><span class="pln">latest</span></code></li> </ol> ``` 下载后,可以看到 busybox 镜像只有2.433 MB: ``` <pre class="prettyprint"><ol class="linenums"><li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">$ docker image ls</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">busybox latest e72ac664f4f0 </span><span class="lit">6</span><span class="pln"> weeks ago </span><span class="lit">2.433</span><span class="pln"> MB</span></code></li> </ol> ``` ### 运行 busybox 启动一个 busybox 容器,并在容器中执行 grep 命令。 ``` <pre class="prettyprint"><ol class="linenums"><li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">$ docker run </span><span class="pun">-</span><span class="pln">it busybox</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pun">/</span><span class="pln"> </span><span class="com"># grep</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="typ">BusyBox</span><span class="pln"> v1</span><span class="pun">.</span><span class="lit">22.1</span><span class="pln"> </span><span class="pun">(</span><span class="lit">2014</span><span class="pun">-</span><span class="lit">05</span><span class="pun">-</span><span class="lit">22</span><span class="pln"> </span><span class="lit">23</span><span class="pun">:</span><span class="lit">22</span><span class="pun">:</span><span class="lit">11</span><span class="pln"> UTC</span><span class="pun">)</span><span class="pln"> multi</span><span class="pun">-</span><span class="pln">call binary</span><span class="pun">.</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="typ">Usage</span><span class="pun">:</span><span class="pln"> grep </span><span class="pun">[-</span><span class="typ">HhnlLoqvsriwFE</span><span class="pun">]</span><span class="pln"> </span><span class="pun">[-</span><span class="pln">m N</span><span class="pun">]</span><span class="pln"> </span><span class="pun">[-</span><span class="pln">A</span><span class="pun">/</span><span class="pln">B</span><span class="pun">/</span><span class="pln">C N</span><span class="pun">]</span><span class="pln"> PATTERN</span><span class="pun">/-</span><span class="pln">e PATTERN</span><span class="pun">.../-</span><span class="pln">f FILE </span><span class="pun">[</span><span class="pln">FILE</span><span class="pun">]...</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="typ">Search</span><span class="pln"> </span><span class="kwd">for</span><span class="pln"> PATTERN </span><span class="kwd">in</span><span class="pln"> </span><span class="typ">FILEs</span><span class="pln"> </span><span class="pun">(</span><span class="pln">or stdin</span><span class="pun">)</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln"> </span><span class="pun">-</span><span class="pln">H </span><span class="typ">Add</span><span class="pln"> </span><span class="str">'filename:'</span><span class="pln"> prefix</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln"> </span><span class="pun">-</span><span class="pln">h </span><span class="typ">Do</span><span class="pln"> not add </span><span class="str">'filename:'</span><span class="pln"> prefix</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln"> </span><span class="pun">-</span><span class="pln">n </span><span class="typ">Add</span><span class="pln"> </span><span class="str">'line_no:'</span><span class="pln"> prefix</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln"> </span><span class="pun">-</span><span class="pln">l </span><span class="typ">Show</span><span class="pln"> only names of files that match</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln"> </span><span class="pun">-</span><span class="pln">L </span><span class="typ">Show</span><span class="pln"> only names of files that don</span><span class="str">'t match</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="str"> -c Show only count of matching lines</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="str"> -o Show only the matching part of line</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="str"> -q Quiet. Return 0 if PATTERN is found, 1 otherwise</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="str"> -v Select non-matching lines</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="str"> -s Suppress open and read errors</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="str"> -r Recurse</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="str"> -i Ignore case</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="str"> -w Match whole words only</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="str"> -x Match whole lines only</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="str"> -F PATTERN is a literal (not regexp)</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="str"> -E PATTERN is an extended regexp</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="str"> -m N Match up to N times per file</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="str"> -A N Print N lines of trailing context</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="str"> -B N Print N lines of leading context</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="str"> -C N Same as '</span><span class="pun">-</span><span class="pln">A N </span><span class="pun">-</span><span class="pln">B N</span><span class="str">'</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="str"> -e PTRN Pattern to match</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="str"> -f FILE Read pattern from file</span></code></li> </ol> ``` 查看容器内的挂载信息。 ``` <pre class="prettyprint"><ol class="linenums"><li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pun">/</span><span class="pln"> </span><span class="com"># mount</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">rootfs on </span><span class="pun">/</span><span class="pln"> type rootfs </span><span class="pun">(</span><span class="pln">rw</span><span class="pun">)</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">none on </span><span class="pun">/</span><span class="pln"> type aufs </span><span class="pun">(</span><span class="pln">rw</span><span class="pun">,</span><span class="pln">relatime</span><span class="pun">,</span><span class="pln">si</span><span class="pun">=</span><span class="pln">b455817946f8505c</span><span class="pun">)</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">proc on </span><span class="pun">/</span><span class="pln">proc type proc </span><span class="pun">(</span><span class="pln">rw</span><span class="pun">,</span><span class="pln">nosuid</span><span class="pun">,</span><span class="pln">nodev</span><span class="pun">,</span><span class="pln">noexec</span><span class="pun">,</span><span class="pln">relatime</span><span class="pun">)</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">tmpfs on </span><span class="pun">/</span><span class="pln">dev type tmpfs </span><span class="pun">(</span><span class="pln">rw</span><span class="pun">,</span><span class="pln">nosuid</span><span class="pun">,</span><span class="pln">mode</span><span class="pun">=</span><span class="lit">755</span><span class="pun">)</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">shm on </span><span class="pun">/</span><span class="pln">dev</span><span class="pun">/</span><span class="pln">shm type tmpfs </span><span class="pun">(</span><span class="pln">rw</span><span class="pun">,</span><span class="pln">nosuid</span><span class="pun">,</span><span class="pln">nodev</span><span class="pun">,</span><span class="pln">noexec</span><span class="pun">,</span><span class="pln">relatime</span><span class="pun">,</span><span class="pln">size</span><span class="pun">=</span><span class="lit">65536k</span><span class="pun">)</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">devpts on </span><span class="pun">/</span><span class="pln">dev</span><span class="pun">/</span><span class="pln">pts type devpts </span><span class="pun">(</span><span class="pln">rw</span><span class="pun">,</span><span class="pln">nosuid</span><span class="pun">,</span><span class="pln">noexec</span><span class="pun">,</span><span class="pln">relatime</span><span class="pun">,</span><span class="pln">gid</span><span class="pun">=</span><span class="lit">5</span><span class="pun">,</span><span class="pln">mode</span><span class="pun">=</span><span class="lit">620</span><span class="pun">,</span><span class="pln">ptmxmode</span><span class="pun">=</span><span class="lit">666</span><span class="pun">)</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">sysfs on </span><span class="pun">/</span><span class="pln">sys type sysfs </span><span class="pun">(</span><span class="pln">ro</span><span class="pun">,</span><span class="pln">nosuid</span><span class="pun">,</span><span class="pln">nodev</span><span class="pun">,</span><span class="pln">noexec</span><span class="pun">,</span><span class="pln">relatime</span><span class="pun">)</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pun">/</span><span class="pln">dev</span><span class="pun">/</span><span class="pln">disk</span><span class="pun">/</span><span class="pln">by</span><span class="pun">-</span><span class="pln">uuid</span><span class="pun">/</span><span class="pln">b1f2dba7</span><span class="pun">-</span><span class="pln">d91b</span><span class="pun">-</span><span class="lit">4165</span><span class="pun">-</span><span class="pln">a377</span><span class="pun">-</span><span class="pln">bf1a8bed3f61 on </span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">resolv</span><span class="pun">.</span><span class="pln">conf type ext4 </span><span class="pun">(</span><span class="pln">rw</span><span class="pun">,</span><span class="pln">relatime</span><span class="pun">,</span><span class="pln">errors</span><span class="pun">=</span><span class="pln">remount</span><span class="pun">-</span><span class="pln">ro</span><span class="pun">,</span><span class="pln">data</span><span class="pun">=</span><span class="pln">ordered</span><span class="pun">)</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pun">/</span><span class="pln">dev</span><span class="pun">/</span><span class="pln">disk</span><span class="pun">/</span><span class="pln">by</span><span class="pun">-</span><span class="pln">uuid</span><span class="pun">/</span><span class="pln">b1f2dba7</span><span class="pun">-</span><span class="pln">d91b</span><span class="pun">-</span><span class="lit">4165</span><span class="pun">-</span><span class="pln">a377</span><span class="pun">-</span><span class="pln">bf1a8bed3f61 on </span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">hostname type ext4 </span><span class="pun">(</span><span class="pln">rw</span><span class="pun">,</span><span class="pln">relatime</span><span class="pun">,</span><span class="pln">errors</span><span class="pun">=</span><span class="pln">remount</span><span class="pun">-</span><span class="pln">ro</span><span class="pun">,</span><span class="pln">data</span><span class="pun">=</span><span class="pln">ordered</span><span class="pun">)</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pun">/</span><span class="pln">dev</span><span class="pun">/</span><span class="pln">disk</span><span class="pun">/</span><span class="pln">by</span><span class="pun">-</span><span class="pln">uuid</span><span class="pun">/</span><span class="pln">b1f2dba7</span><span class="pun">-</span><span class="pln">d91b</span><span class="pun">-</span><span class="lit">4165</span><span class="pun">-</span><span class="pln">a377</span><span class="pun">-</span><span class="pln">bf1a8bed3f61 on </span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">hosts type ext4 </span><span class="pun">(</span><span class="pln">rw</span><span class="pun">,</span><span class="pln">relatime</span><span class="pun">,</span><span class="pln">errors</span><span class="pun">=</span><span class="pln">remount</span><span class="pun">-</span><span class="pln">ro</span><span class="pun">,</span><span class="pln">data</span><span class="pun">=</span><span class="pln">ordered</span><span class="pun">)</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">devpts on </span><span class="pun">/</span><span class="pln">dev</span><span class="pun">/</span><span class="pln">console type devpts </span><span class="pun">(</span><span class="pln">rw</span><span class="pun">,</span><span class="pln">nosuid</span><span class="pun">,</span><span class="pln">noexec</span><span class="pun">,</span><span class="pln">relatime</span><span class="pun">,</span><span class="pln">gid</span><span class="pun">=</span><span class="lit">5</span><span class="pun">,</span><span class="pln">mode</span><span class="pun">=</span><span class="lit">620</span><span class="pun">,</span><span class="pln">ptmxmode</span><span class="pun">=</span><span class="lit">000</span><span class="pun">)</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">proc on </span><span class="pun">/</span><span class="pln">proc</span><span class="pun">/</span><span class="pln">sys type proc </span><span class="pun">(</span><span class="pln">ro</span><span class="pun">,</span><span class="pln">nosuid</span><span class="pun">,</span><span class="pln">nodev</span><span class="pun">,</span><span class="pln">noexec</span><span class="pun">,</span><span class="pln">relatime</span><span class="pun">)</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">proc on </span><span class="pun">/</span><span class="pln">proc</span><span class="pun">/</span><span class="pln">sysrq</span><span class="pun">-</span><span class="pln">trigger type proc </span><span class="pun">(</span><span class="pln">ro</span><span class="pun">,</span><span class="pln">nosuid</span><span class="pun">,</span><span class="pln">nodev</span><span class="pun">,</span><span class="pln">noexec</span><span class="pun">,</span><span class="pln">relatime</span><span class="pun">)</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">proc on </span><span class="pun">/</span><span class="pln">proc</span><span class="pun">/</span><span class="pln">irq type proc </span><span class="pun">(</span><span class="pln">ro</span><span class="pun">,</span><span class="pln">nosuid</span><span class="pun">,</span><span class="pln">nodev</span><span class="pun">,</span><span class="pln">noexec</span><span class="pun">,</span><span class="pln">relatime</span><span class="pun">)</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">proc on </span><span class="pun">/</span><span class="pln">proc</span><span class="pun">/</span><span class="pln">bus type proc </span><span class="pun">(</span><span class="pln">ro</span><span class="pun">,</span><span class="pln">nosuid</span><span class="pun">,</span><span class="pln">nodev</span><span class="pun">,</span><span class="pln">noexec</span><span class="pun">,</span><span class="pln">relatime</span><span class="pun">)</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">tmpfs on </span><span class="pun">/</span><span class="pln">proc</span><span class="pun">/</span><span class="pln">kcore type tmpfs </span><span class="pun">(</span><span class="pln">rw</span><span class="pun">,</span><span class="pln">nosuid</span><span class="pun">,</span><span class="pln">mode</span><span class="pun">=</span><span class="lit">755</span><span class="pun">)</span></code></li> </ol> ``` busybox 镜像虽然小巧,但包括了大量常见的 Linux 命令,读者可以用它快速熟悉 Linux 命令。 ### 相关资源 - `Busybox` 官网:<https://busybox.net/> - `Busybox` 官方仓库:<https://git.busybox.net/busybox/> - `Busybox` 官方镜像:[https://hub.docker.com/\_/busybox/](https://hub.docker.com/_/busybox/) - `Busybox` 官方仓库:<https://github.com/docker-library/busybox>