5 Solaris高级系统管理员指南

第7章、Unix的shell命令
本章将介绍:各种shell解释器共同点、标准shell介绍、C shell介绍、Korn shell介绍 。
在Solaris 2.x软件环境中提供给用户三种命令解释器:标准shell(缺省shell或Bourne shell , 本手册中我们称为标准shell)、C shell和Korn shell 。对每一个用户而言都有一个缺省的shell命令解释器 , 另外也可以在命令行中打入某种shell而重新进入另外一种shell解释器 。本章首先介绍三种shell的公共命令 , 然后再分别对它们各自的特性作一些详细介绍 。
7.1各种shell的公共命令
本节描述各种shell所使用的命令
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表7.1 各种shell解释器的基本特性
特性 Bourne C Korn
别名 无 有 有
命令编辑 无 有 有
增强的cd 无 有 有
历史 无 有 有
忽略CTRL-D 无 有 有
不同于profile的初始文件 无 有 有
作业控制 有 有 无
退出文件 无 有 有
文件的重写保护 无 有 有
与标准shell的语义兼容性 是 否 是
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
7.1.1设置某种缺省shell
在用户数据库或/etc/passwd文件中 , 注册shell是在每个用户的登记项的最后一列中设置 , 用户可以使用系统提供的管理工具或编辑本地的/etc/passwd文件来修改注册shell , 但是此用户必须是sysadm组的成员 , 即用户的组号(GID)应该是14 , 如果是在运行NIS , 则必须有建立和删除NIS 数据据库的权限 。
下面是用户更改注册shell的一些步骤:
1、按需要 , 从管理工具中打开数据库管理器窗口 。
2、 在用户数据上 , 按下SELECT , 然后再接着按SELECT来选择NIS 或无NIS 服务 。若选择NIS 则编辑Passwd数据库 , 否则编辑本地的/etc/passwd文件 。
3、 点击Load键 , 显示用户数据库窗口 。
4、 在想要编辑的用户项上按SELECT鼠标键 , 然后从编辑(Edit)菜单中选择修改(Modify)项 。
5、 修改shell项的文字域 , /bin/sh是标准shell , /bin/csh是C shell或者输入/bin/ksh作为Korn shell 。
6、 点击Modify按钮 , 修改用户缺省SHELL定义 , 只要用户重新注册进入系统 , 即使用新的shell 。
7.1.2在命令行中改变shell类型(sh , csh , ksh)
如果用户不修改用户数据库而想使用别的shell解释器 , 则可以在命令行中简单地打入所需shell的命令名即可 。
例如 , 要想使用C shell , 打入csh即可 , 缺省C shell提示符是在系统名之后跟一个百分号(%) 。
$csh
gtxa%
如果要改变为Korn shell , 则打入ksh , korn shell的缺省提示符是$
gtxa%ksh
$
7.1.3从shell解释器中退出(exit)
如果用户是在命令行中进入某种shell解释器 , 则只需打入exit和回车键 , 即可退出当前的shell解释器 , 而返回原先的shell解释器 。
$exit
gtxa%
7.1.4清除一个shell窗口(clear)
在某个shell窗口中 , 用户可以清除一个shell窗口的内容 , 并且重新显示shell的提示符到此窗口的左上角 , 例如要清除一个窗口的内容 , 可以打入clear和回车键:
gtxa%which openwin
no openwin in. /home/ignatz/usr/deskset/bin/usr/bin
/home/ignatz/bin/bin/home/bin/etc/usr/etc/usr/etc/usr/ucb
/usr/bin
gtxa%clear
此时窗口的显示内容即被清除 , 然后把提示重新显示在顶部 。
7.2标准shell
在Solaris 2.x软件环境中 , 标准shell(Bourne shell)是缺省shell , 它是由Steve Bourne先生在AT&T Bell实验室工作时开发的 , 标准shell相对而言 , 结构紧凑 , 而且简单 , 但它也提供所有的程序设计功能 , 可以实现由各种命令和过程组成的shell文件(script) 。因为如何编写shell文件已经超越本文范围 , 所以我们不在此赘述 。

推荐阅读