![当操作系统没有 GUI 时,shell 是什么样的?](https://linux22.com/image/219001/%E5%BD%93%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E6%B2%A1%E6%9C%89%20GUI%20%E6%97%B6%EF%BC%8Cshell%20%E6%98%AF%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%EF%BC%9F%20.png)
我了解终端、控制台、shell 的概念及其区别。我知道现在的 shell 是一个解释器,它与操作系统内核通信以执行某些操作,并通过终端应用程序来执行。
但是在过去,当计算机没有 GUI 时,用户与计算机的所有交互都是通过 shell 进行的?
我读到,Bourne Shell (sh) 是在 Unix 版本 7 中引入的,是不是就像你打开计算机,从开始输入的那一刻起,你就在与 sh 进行通信?或者您必须通过命令输入 sh 程序,然后 shell 启动?
与 Windows 或 Mac 类似,MS-DOS 功能就是我们今天在 cmd 中拥有的功能吗?
提前致谢,如果有人可以留下解释这种演变的文档,我将非常感激。
答案1
不是“过去”——我们仍然使用没有 GUI 的计算机,因为我们有服务器、嵌入式系统,甚至还有一些不喜欢在家庭工作站上没有图形环境的人。
当您启动计算机或通过 SSH 登录或其他方式时:是的,您会看到$
(或首先出现登录提示,具体取决于)。它与全屏使用终端模拟器基本相同。 Mac 运行时基于 BSD,因此也类似于旧的 Unix 系统。如今类 Unix 系统上的许多工具也与 30 多年前使用的工具非常相似,有些工具除了安全补丁之外已经很长一段时间没有看到任何东西了。
cmd.exe 与 DOS 工作站并不完全相同,但感觉是一样的。您也可以找到一个好的 DOS 模拟器来亲自尝试一下。对于类 Unix 系统,您可以在任何提供商上获得一个 VPS 大约一个小时来进行实验,或者如果您使用的是 Linux,则启动一个新的 vTTY。
那里是程序较少,您不会在 SysV 上找到 Ruby 或 Node,并且一些工具已经更改,但如果您已经习惯在现代计算机上使用终端,那么使用纯文本系统不会遇到太多问题,并且只有少数人使用较旧的 Unix 系统(特别是如果您习惯使用 GNU 工具)。
当然,您也可以在虚拟机或模拟器中运行旧版本的 Unix。例如这个答案有在 VirtualBox 中运行 V7 的链接,在您首选的搜索引擎中快速搜索可能会找到其他旧操作系统的说明和图像。