SCO UNIX基础讲座--第二讲shell环境

何谓shell shell是用户与作业系统之间的交互层 , 用户修改其环境 , 设置或
取消shell的环境变量 , 迎合用户的需要和爱好 。

shell本身就是一个电脑程序 , 用C语言编写 , 为协助用户与作业
系统之间通讯而设计 , 管理用户与核心(Dernel)之间对话 , 并
把作业系统指令换成机器代码 , 其实PC用户常用的Dos , 本身就
是一个shell 。

sshell的用途

shell的主要任务是:提示用户打入指令 , 读指令 , 转换指令为核
心所能理解的语言 。其实 , shell可以看作为指令解释程序 , 提供
一些工具 , 亦可以利用shell的编写工具 , 构造电脑程序 。

System V shell类

SCO System V的shell可分为四大类:Bourne shell;C shell;
Korn Shell;和菜单驱动shell 。而菜单驱动shell可再细分为三
类 , 分别是Open Desktop , Sysadmsh或scoadmin和客户应用程序 。

每个shell都有自己特定的环境文件 , 可以自行修改至合用 , 这些
环境文件就仿如DOS的批次档案(Batch File) 。

Bourne shell

对普遍用户来说 , Bourne shell可以说是第一个Unix shell  ,
它是由AT&T贝尔实验室Stephen Bourne所编写 。默认提示(
Prompt)是美元符($) , 其环境文件为profile文件 , 由於文件
档案不大 , 可以马上启动执行 。

profile是存放在主目录下的普通正文文件(Text File) , 通过
设置环境变量(Variable)和终端模式 , 可以使环境个人化 , 每
次注册进入系统时 , shell会读入profile文件 , 并执行所列出的
指令 。

每当系统管理员创建新用户的户口时 , 系统都会自动构造一个相
应的.profile文件;而整个系统的环境文件就放置在
/etc/.profile中 。

用户可以使用vi或其他正文编器修改 。若要使用env命令显示 , 由
於注册时已设置了这些变量 , 也不一定需要另行设置 。

C shell

C shell是由Berkeley的Bill Joy编写 , 是标准BSD(Berkeley
System Distributou)命令解释 , 其默认提示是份符(%) , 环境
文件则是cshrc和.login 。

C shell采用C语言 , 是UNIX和XENIX系统上公共软件的开发语
言 , 提供了方便工具 , 快速打入 , 校正和再打入命令行 。

.login是C shell的注册环境文件 , 负责启动shell , 注册时执行
一次 , 而.cshrc则存放常用指令如alias等指令 。譬如我们要创建
一个永久别名 , 把命令who|sort|more别名化为wh , 在提示(%)
後 , 只需要键入wh即可 。用户可在.cshrc□键入下面一行:
alias wh "who/sort/more"

Korn shell

Korn shell是AT&T贝尔实验室David Korn所开发 , 是Bourne
shell的增强版本 , 综合了Bourne shell和C shell的特点和约定 ,
而Korn shell则比Bourne和C shell执行得更快 。

Korn shell的默认提示与环境文件 , 跟其前身--Bourne shell一
样 , 同为美元符号($)和.profile文件 。

进程控制

虽然同一时间 , 系统中运行许多进程 , 但是某一特定时刻 , CPU只
会让一个进程使用 , 而CPU则在行使中的进程之间快速轮换 , 每
个进程所占用的时间 , 称为时间片 。SCO System V为了保持、跟
踪或调度每个进程 , 会给每个进程一个进程标识号ID或PID 。

要确定那些进程正在运行 , 用户可以使用ps显示阁下的进程;或
加上-e选项 , 显示所有进程;加-f选项 , 则显示的进程还包括已
启动指令的执行中进程;-u login显示某注册用户的进程 。

在SCO UNIX System V中 , 如果阁下拥有Root指令的作用权 ,
就更可以看到所有进程 。

推荐阅读