读过《
操作系统概论》的读者们都知道操作系统是一个系统资源的管理者与分配者,当您有需求时,您得向系统提出;从操作系统的角度来看,它也必须防止使用者因为错误的操作而造成系统的伤害。
众所周知,对计算机下命令得通过命令(command) 或是程序(program);程序有
编译器(compiler)将程序转为
二进制代码,可是命令呢?
其实shell 也是一支程序,它由
输入设备读取命令,再将其转为计算机可以了解的机械码,然后执行它。各种操作系统都有它自己的 shell,以 DOS 为例,它的 shell 就是 command.com文件。如同 DOS 下有 NDOS,4DOS,DRDOS 等不同的命令解译程序可以取代标准的command.com ,UNIX 下除了 Bourne shell(/bin/sh) 外还有 C shell(/bin/csh)、Korn shell(/bin/ksh)、Bourne again shell(/bin/bash)、Tenex C shell(tcsh)等其它的 shell。UNIX/linux将 shell 独立于核心程序之外, 使得它就如同一般的应用程序, 可以在不影响操作系统本身的情况下进行修改、更新版本或是添加新的功能。
shell是计算机用来解释你输入的命令然后决定进行何种处理的程序。shell也可以在非交互模式下调用。举个例子,可以把一些要输入的命令预先存放在文本文件里(叫做shell
脚本)然后执行该文件。可以把shell看作是DOS下面的command.com(
命令行解释器),而shell
脚本就象是DOS的
批处理文件(*.bat)。和DOS相比较,shell的功能要先进和丰富得多。