不

就目前而言,我将 CLI(命令行界面)与rbashbashdash或一起使用sh。鉴于这一事实,我们可以假设 CLI不是shell 相关,即使我们删除所有这些 shell,我们也可以使用一些原始/基本/超限制的 CLI。

我的问题

如果我在无 GUI 操作系统中删除所有上述 shell,我还会有某种原始的 CLI 吗?

笔记

  • 我认为 CLI 不会成为内核的一部分,因为据我了解,内核通常只能通过代理访问,就像 shell 一样)。

  • 我也在考虑 tmux 和 screen,但将它们从标题和问题中删除了。

答案1

不。您认为这些不同的 shell 都运行在一些更基本的 CLUI 之上,因为它们都非常相似,这是不正确的。每个 shell 都单独实现一个到内核的 CLI 接口,它们看起来都有些相似(因为它们都是“Unix”shell,或多或少严格遵守公认的标准,并且它们都运行在相同类型的终端设备上) 。 CLUI 分别编码到每个 shell 程序中 - 它们都是独立的并且不共享某些底层 CLUI。

如果你删除所有的shell,那么你将没有CLUI。这让小企鹅哭了:(

答案2

有两个答案:是和否:

如果删除 shell,系统将停止工作。 shell 被广泛使用,用于一些非常重要的事情。例如,但绝不限于:登录程序将由 shell 脚本启动(其他所有内容也由 shell 脚本启动,用于此目的的 shell 通常是sh)。因此,如果没有 shell,则无法登录。即使您登录到非 shell 环境。

是的

正如您所确定的,有不同的组件:

  • 一个内核(例如Linux、BSD内核、cygwin),
  • 虚拟终端/终端仿真器(例如konsolextermLinux 控制台),
  • 多路复用器(例如screentmux),
  • shell(例如bashdashcsh在 shell 中运行的程序(例如lsgrep)。

您可以更改其中任何一个,并以不同的组合使用它们。

相关内容