完成这一章,你能够作以下事情:
了解shell的工作原理
描述用户登录的过程
描述用户环境变量和这些环境变量的功能。
设置和修改shell变量。
了解和修改一些特殊的环境变量例如PATH ,TERM等等。
为特定的应用定制用户环境变量。
6.1 什么是shell?
shell是一个交互性命令解释器。Shell独立于操作系统,这种设计让用户可以灵活选择适合自己需要的shell。shell让你在命令行键入命令,经过shell解释后传送给操作系统(内核)执行。
这一章介绍POSIX shell提供的交互的特征。
以下是shell功能的一个汇总:
查找命令的位置并且执行相关联的程序
为shell变量赋新值
执行命令替代
处理 I/O重定向和管道功能
提供一个解释性的编程语言界面,包括tests,branches 和loops等语句
当你登录到一个unix系统,shell会为你的终端登录线索定义一些特征,然后出现你的提示符。在POSIX,Bourn,K shell中$符号为默认的提示符。C shell中默认的提示符是%号。
6.2 一些通常使用的shell
/usr/bin/sh POSIX shell
/usr/bin/ksh Korn shell
/usr/old/bin/sh Bourne shell
/usr/bin/csh C shell
/usr/bin/keysh A contest-sensitive softkey shell
/usr/bin/rksh Restricted Korn shell
/usr/bin/rsh Restricted Bourne shell
POSIX shell 、是一个POSIX兼容的命令编程语言和命令解释器。它可以从终端或者是一个文件中读取并且执行命令。POSIX在许多方面同korn shell 相似。有历史机制。支持任务控制,和其他有用的特性。
Korn shell 同POSIX shell十分类似,是由贝尔试验室的">David Korn开发的。
Bourne shell :缺乏许多在POSIX,和korn shell 中的功能。它是由Stephen R. Bourne开发的,是AT&T unix中最先使用的shell
C shell。是一个普通的语言解释器,有命令历史机制,类似C语言的语法。和任务控制工具。它是由university of California at Berkeley 的william Joy开发的。
Rsh 和rksh是Bourne shell 和Korn shell 的受限制的版本。受限制的shell在设置登录名和环境的时候比普遍的shell 有更多的限制。受限制的shell使用起来就象是具有异常现象的标准的shell。
使用受限制的shell的用户不能:
更改目录
重新设定PATH变量的值
在路径名中使用/符号。
重定向输出。