运行的程序为了请求服务(例如请求IO或资源分配)以及响应中断或出错,要不断地引用操作系统的各个部分,在较高一层,关于程序和文件(其中包括系统的程序和文件)的说明信息和命令信息,是操作员控制语言,也称为控制语言或作业控制语言。系统用户使用这些语言传送有关它们的作业、资源和文件的说明和请求;机器操作员使用类似的语言控制和询问硬件资源和软件资源的分配情况,并对系统信息和错误做出响应。
定义系统和用户之间的界面,实际上都是提供一个进行通信的语言这种语言的性质在很大程度上与操作系统的类型有关。例如分时系统与批处理系统虽然都是面向作业的系统,但是它们工作方式有重要区别,因此这两种系统使用的通信语言也就有很大的不同。分时系统中,用户与系统之间可以频繁的进行交互作业用,用户易于控制其作业在系统中运行的途径,也能对系统的某些动作及时作业响应。所以分时操作系统中使用的通信语言一般比较简单,只是一组要操作使系统进行某种工作的命令,这类语言通常称为操作员控制语言。而在批处理系统中,用户一旦向系统提交子作业,就无法再对该作业的执行过程进行任何控制,因此用户必须事先给出一系列命令,明确规定执行该作业的各个步骤,或指明针对各种中间结果,应选择的运行途径等。
SHELL语言UNIX操作系统是一个分时式多用户、交互型软件系统,它和用户的界面是一种命令语言,称之为SHELL(外壳)语言,它的解释程序同样也称为SHELL(即SHELL解释程序)。
一般用法UNIX系统问世以来已取得极大成功,除了由于系统的核心部分有许多突出的优点外,作为操作系统与用户之间的接口——命令设计语言SHELL也起了不可忽视的作用。
SHELL语言本身也像高级程序设计语言一样,具有变量、控制流程、子程序及中断管理等方面的功能。[1]
特点(1)用SHELL语言编写的命令文件功能强大,易理解,已阅读,易使用,它对大多数UNIX用户来说,是最重要的一种程序。
(2)通过SHELL用户编写的大量程序组织起来,可使UNIX系统成为一个功能强大、使用方便的工具系统。
总之,SHELL虽说是一种命令语言,但其功能很强大,可与一般复杂的作业控制语言相媲美。所以SHELL构成了一个使用UNIX系统的良好环境。1
输入和输出转向命令为了便于用户和有关进程进行交互作用,它们常常就是与该进程相关的终端机输入、输出部分进行交互作用。但是某种情况下,例如用户事先已将必要的输出信息存放在某个文件上,或者希望在某个文件上得到输出信息,那么就有必要改变标准输入、输出文件,使之与指定的文件或设备连接起来,SHELL向用户提供一种手段,使得他们可以提出上述要求,这被称之为标准输入输出转向。
典例1简单命令:cat file1 file2
作用:将file1、file2依次在标准输出文件显示出来。
但如果要求改变标准输出,则可以写为:cat file1 file2 >file3
作用:标准输出转向一般普通文件file3。
注意:若转向文件file3原来并不存在,则SHELL解释库先要创建它;若它已经存在,,则认为这是一个空白文档,重新改写它。
典例2cat file1 file2 >/dev/tty03
作用:转向为另一终端显示。
cat file1 file2 >/dev/plp
作用:转向为打印机
典例3如果希望执行命令时,输出添加到某现存文件的末端,则应该使用另一种输出转向符“>>”。
cat file1 file2 >>file3
标准输入符同样也可以要求加以改变,例如:we