是否存在一个 *NIX shell,其中大多数工具都是内置的 - 没有符号链接,没有外部执行程序?

是否存在一个 *NIX shell,其中大多数工具都是内置的 - 没有符号链接,没有外部执行程序?

我正在寻找一个 *NIX shell,其中大多数基本功能(ls、cat 等)都是在内部完成的,而不是通过 exec 调用外部程序。busybox 使用符号链接的二进制名称回调自身,但它仍然调用 exec,而不仅仅是在内部调用程序。有没有像这样完全独立的 shell?我似乎无法在 Google 上找到任何东西。

先感谢您!

答案1

忙碌箱如果设置了以下选项,则可以配置为直接运行其某些可执行文件(“小程序”)的内部实现:

  • FEATURE_PREFER_APPLETS=y(“exec 更喜欢小程序”)
  • FEATURE_SH_STANDALONE=y(“独立外壳”)
  • FEATURE_SH_NOFORK=y(“直接运行‘nofork’小程序”)

这些选项默认都是禁用的,因此您需要从源代码构建 busybox 来启用它们。

请注意,许多小程序不支持NOFORK

答案2

您可以使用sash“独立外壳”。

来自 Debian 软件包的描述:

sash用作 的交互式替代品/bin/sh,用于/bin/sh不可用时。它是静态链接的,并包含许多标准实用程序作为内置程序(在提示符下键入“help”以获取参考列表)。如果您sash在导致系统无法启动之前安装了 ,并且您对系统应该如何工作有所了解,那么您可能能够init=/bin/sash在启动提示符下使用 来修复系统。

答案3

你可以看看bash-static,的静态链接版本bash

相关内容