什么是伯恩外壳?

Bourne Shell,称为“sh”,是 Unix 系统的原始命令行界面,是自动化任务和脚本编写的强大工具。它由 Stephen Bourne 在 20 世纪 70 年代开发,为许多现代 shell 奠定了基础。它的语法和实用程序塑造了我们与类 Unix 操作系统交互的方式。这些年来它是如何演变的?继续阅读以揭开它的遗产。

Bourne shell 是一个在 Unix® 和 LINUX® 操作系统上运行的小程序,并提供在系统上执行程序的接口。它通常被称为命令行界面或命令解释器,因为它不向用户提供图形用户界面 (GUI)。要执行的命令和任何必要的参数都输入到 shell 中。 Bourne shell 也是一种脚本语言,允许用户创建和执行脚本文件,这些脚本文件可以通过单个命令的方式通过多个程序处理数据。在类 Unix® 系统上,该程序简称为"sh"。

Unix® 系统的第一个此类 shell 被称为 Thompson shell,由 Ken Thompson 创建,他是 Unix® 操作系统的原始创建者之一系统。 Thompson shell 仅限于命令解释,并且许多附加功能必须作为外部操作来执行。后来,Stephen Bourne 创建了 Bourne shell 来替代 Thompson shell,添加了许多新的shell 本身以及 shell 脚本语言的功能。

手持计算机的男子

实际上,Bourne shell 从一开始就被计划作为一种脚本语言。虽然它仍然是 Unix® 版本 7 的命令行界面,但它也为用户开发将命令链接在一起以处理数据的 shell 脚本提供了可能性。通过使用此编程,用户可以建立变量以从输入或输出捕获已知或未知数据,并通过称为控制流的技术在脚本中使用条件语句来操纵该数据的处理。

这也是第一个实现信号处理功能的 shell。通过 Bourne shell,用户可以向已经运行的进程发送特定类型的信号计算机上的宁宁,指示该进程做其他事情。其中许多方法是停止正在执行的进程并生成某种可用于调试的输出的方法,尽管还有其他方法可以暂时停止进程、恢复等等。

直接控制文件描述符的能力这是 Bourne shell 的又一个第一次。在类 Unix® 系统上,每个正在运行的程序都有一个表,其中列出了所有打开的文件的文件描述符。这可以包括从简单的文本文件到目录的任何内容,甚至包括进程用于相互共享数据的通信套接字。对于用户来说,控制系统上的文件描述符可以对计算机上几乎所有内容的输入和输出进行前所未有的控制。

当然,尽管 Bourne shell 向用户提供了此类附加功能,但它还是缺乏诸如交互控制进程、建立命令别名和保留历史记录的能力等功能。然而,后来,一些后代开始出现,它们采用了多年来设计的最有用的 shell 功能,并将它们卷入新的 shell 中。一个常见的例子是 Bourne-again shell 或 Bash,它在许多 LINUX® 系统上很常见。因此,这些后代中的许多都完全能够执行常规的 Bourne shell 脚本,从而为每个 Unix® 类系统以某种方式提供原始 Bourne shell 的某种实现。在许多 LINUX® 系统上,这只是从"sh"到"bash"或其他一些有能力的后代的链接。

  • 发表于 2024-02-26 19:37
  • 阅读 ( 34 )
  • 分类:科学教育

0 条评论

请先 登录 后评论