Unix 中有两种类型的“Shell”吗?

Unix 中有两种类型的“Shell”吗?

作为一个真正想要了解 Linux 而不仅仅是自动使用它的 Linux 新手,我理解术语“Shell”基本上描述了内核之上的软件层,其中包括可以运行和操作的服务公用事业比内核更“容易”。

如果我理解正确的话,Web 服务器软件(例如 Apache、MySQL 和 PHP)是用“高级”编程语言编写的,可以使用 shell 软件块作为“Web 服务器”一起运行,以便软件从两层会危及“Web 服务器”。

如果是这样,这个名为“Shell”的软件层与我在 Ubuntu 中使用的终端有什么区别维基百科也称为 Shell

在我看来,Linux 中的“Shell”一词要么有两个“上下文”,要么终端(例如 Bash 终端)被某些用户错误地称为“Shell”。

答案1

Aterminal是允许您连接到另一个系统的设备或应用程序。当您在 Unix 上进行此类连接时,您将连接到shell.

shell 是一个允许用户执行各种操作(包括运行其他程序)的应用程序。请注意,大多数程序不需要 shell 的存在。 shell 的存在只是为了用户控制。

因此,shell出现在 内部,terminal但并未从中运行。

最后请注意,实际上有许多不同的终端模拟器贝壳。

答案2

“Shell”和“Terminal”经常互换使用。

不同之处在于,您在 Ubuntu 中打开的终端是一个终端模拟器。您的系统只有一个实际的“终端”或“外壳”,不同的模拟器通过它进行交互。

Bash只是一种与内部shell交互的语法,就像fish、zsh等一样。

相关内容