何谓shellshell是用户与作业系统之间的交互层,用户修改其环境,设置或
取消shell的环境变量,迎合用户的需要和爱好。
shell本身就是一个电脑程序,用C语言编写,为协助用户与作业
系统之间通讯而设计,管理用户与核心(Dernel)之间对话,并
把作业系统指令换成机器代码,其实PC用户常用的DOS,本身就
是一个shell。
sshell的用途
shell的主要任务是:提示用户打入指令,读指令,转换指令为核
心所能理解的语言。其实,shell可以看作为指令解释程序,提供
一些工具,亦可以利用shell的编写工具,构造电脑程序。
SystemVshell类
SCOSystemV的shell可分为四大类:Bourneshell;Cshell;
KornShell;和菜单驱动shell。而菜单驱动shell可再细分为三
类,分别是OpenDesktop,Sysadmsh或scoadmin和客户应用程序。
每个shell都有自己特定的环境文件,可以自行修改至合用,这些
环境文件就仿如DOS的批次档案(BatchFile)。
Bourneshell
对普遍用户来说,Bourneshell可以说是第一个UNIXshell,
它是由AT&T贝尔实验室StephenBourne所编写。默认提示(
Prompt)是美元符($),其环境文件为profile文件,由於文件
档案不大,可以马上启动执行。
profile是存放在主目录下的普通正文文件(TextFile),通过
设置环境变量(Variable)和终端模式,可以使环境个人化,每
次注册进入系统时,shell会读入profile文件,并执行所列出的
指令。
每当系统管理员创建新用户的户口时,系统都会自动构造一个相
应的.profile文件;而整个系统的环境文件就放置在
/etc/.profile中。
用户可以使用vi或其他正文编器修改。若要使用env命令显示,由
於注册时已设置了这些变量,也不一定需要另行设置。
Cshell
Cshell是由Berkeley的BillJoy编写,是标准BSD(Berkeley
SystemDistributou)命令解释,其默认提示是份符(%),环境
文件则是cshrc和.login。
Cshell采用C语言,是UNIX和XENIX系统上公共软件的开发语
言,提供了方便工具,快速打入,校正和再打入命令行。
.login是Cshell的注册环境文件,负责启动shell,注册时执行
一次,而.cshrc则存放常用指令如alias等指令。譬如我们要创建
一个永久别名,把命令who|sort|more别名化为wh,在提示(%)
後,只需要键入wh即可。用户可在.cshrc□键入下面一行:
aliaswh'who/sort/more'
Kornshell
Kornshell是AT&T贝尔实验室DavidKorn所开发,是Bourne
shell的增强版本,综合了Bourneshell和Cshell的特点和约定,
而Kornshell则比Bourne和Cshell执行得更快。
Kornshell的默认提示与环境文件,跟其前身--Bourneshell一
样,同为美元符号($)和.profile文件。
进程控制
虽然同一时间,系统中运行许多进程,但是某一特定时刻,CPU只
会让一个进程使用,而CPU则在行使中的进程之间快速轮换,每
个进程所占用的时间,称为时间片。SCOSystemV为了保持、跟
踪或调度每个进程,会给每个进程一个进程标识号ID或PID。
要确定那些进程正在运行,用户可以使用ps显示阁下的进程;或
加上-e选项,显示所有进程;加-f选项,则显示的进程还包括已
启动指令的执行中进程;-ulogin显示某注册用户的进程。
在SCOUNIXSystemV中,如果阁下拥有Root指令的作用权,
就更可以看到所有进程。
当一个指令需要较长时间完成,可以在指令行後尾加入&元字符,
该指令就会在後台执行,但对交互工作方式的指令就不适用了。
菜单驱动shell
菜单驱动(Menu-Driven)shell可再细分为三项:
一、OpenDesktop
OpenDesktop采用XWindow图形用户介面,用户可用图符(Icon)
窗口和菜单操作,如OpenDesktop的作业系统就是SCOUNIX
SystemV/386。
二、系统管理员Shell:Sysadmsh或scoadmin
Sysadmsh或scoadmin则是字符介面,用户可不用学习指令行语法
和选项,就可以执行大批指令。大多数系统管理任务仅由系统管
理处理,系统管理员则有特定的根口令(RootPassword)。
三、客户应用程序
某些用户为了存取内部邮件、字处理或报表等应用程序时,方会
使用SCOSystemV,系统管理员可以装上这些程序,令它们在注
册时呈现。
许多程序提供一个菜单选项,用简单打键选取一个选项,用户毋
须记著指令和指令选项,亦能操控。