在Unix操作系统中,我们经常使用到shell。下面我们就在学习Unix操作系统的之前,先来仔细了解一下shell 的相关知识以及历史。
shell在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command.com。它接收用户命令,然后调用相应的应用程序。
同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。
用户与计算机交互的方式在不断发生变化。启动后提供纯命令行界面的Unix操作系统已逐渐演化为图形化前端。但是,脱离构成Unix操作系统的构建块有时并非是迈向正确方向的必要步骤。IBM? AIX? Unix操作系统一直把握着重点:稳定性、功能和稳健性。它通过保留强大的命令行界面 (CLI) 来实现这一目标。如果您未曾学习如何使用 CLI 或需要复习 CLI 的基础知识,请继续往下阅读。
shell 的历史
Unix操作系统 shell 至今存在的时间已超过 35 年,它现在仍然在发展壮大!它创始于 1971 年,这一年 AT&T 贝尔实验室的 Ken Thompson 创建了第一个 Unix操作系统 shell,它具有贴切的名称 Thompson shell。
虽然 Thompson shell 缺少人们日常使用的 Unix操作系统 所具备的一些重要内置功能,如管道 (|)、编写 shell 脚本的能力和 if 条件语句,但是该 shell 的基础功能(如数据重定向)仍存在于现今使用的 shell 中。
后来,在 1997 年,Thompson shell 被 Bourne shell(即 sh)所取代。Bourne shell 是由 AT&T 贝尔实验室的 Stephen Bourne 创建的,它成为 Unix操作系统 第 7 版 (V7) 的缺省 shell。
Bourne shell 使 Unix操作系统 的发展向前迈进了一大步。到这时,用户可以编写 shell 脚本,在变量中存储信息和导出信息,控制文件描述符,控制信号处理,使用 for 循环和 case 语句,以及其他大量功能。虽然 Bourne shell 创建至今已有 30 多年时间,目前它仍在大量的 Unix操作系统中广为使用,并且是当今许多 UNIX系统的超级用户 -root- 的缺省 shell。
在过去三十年中,Unix操作系统 shell 获得了许多改进和增强。结果,出现了多种不同的 shell。图 1 显示了少数 Unix操作系统 shell 的家族树。虽然该图并不完整,但它显示了衍生出其他较次要 shell 的那些主要 shell。
【编辑推荐】