shell 与命令解释器有何不同?

shell 与命令解释器有何不同?

编辑:在链接的重复问题中,答案是 shell = 命令行解释器。塔南鲍姆说事实并非如此。因此,链接的问题并不能解决我的问题:Tanenbaum 为什么这么说以及他暗示了什么样的“壳”?

阅读 Andrew S. Tanenbaum 的“现代操作系统”,第 3 版,第 10 页,1.2.2 下,我看到以下内容:

这些原始的控制卡是现代 shell 和命令行解释器的先驱。

我多年来一直每天使用 Linux,并且熟悉命令行解释器的概念,即 Bash、Sh、Tcsh、Zsh、Csh。现在,我一直确信“shell”等于“Bash”等于“命令行解释器”。另外,我知道我输入的命令会运行,结果会由属于上面列表的具体可执行文件返回给我。然而,塔南鲍姆将这些列为单独的类别。

因此,问题是:到底什么是““,它与”有什么不同命令行解释器”,或者也许这两个概念只是在本书的上下文中有所不同?也许这里提到的是 GUI shell?

答案1

这是相当广泛的。

Shell 是用户和 Unix 内核之间的接口。

在过去,shell 与 CLI 类似,即sh, csh,tcsh是 CLI。

如今,有了图形用户界面(X-window 的子级、苹果的 finder、amiga 的工作台),您无需了解即可运行主机ls,因此在某种程度上 GUI 也可以称为“shell”。

然而,bash 和friend 属于CLI 和shell 系列,而Gnome、KDE ​​等都属于GUI 系列。

答案2

我也没有看到塔南鲍姆声称有类似的说法。例如,不同版本http://odi-tele.com/mirrors/tanenbaum/tanenbaum/Operating-System-Extended-Machine.html有这样的文字:

这些原始的控制卡是现代作业控制语言和命令解释器的先驱。

但我不知道这是 rev.4(猜测)还是更旧的版本,但看起来似乎很混乱,所以被更改了。

相关内容