PIGWORLD

学无止境

1.3 登录

1.3 登录

登录名

当我们登录UNIX系统时,我们输入我们的登录名,然后是口令。系统接着就在密码文件中扫描我们的登录名,密码文件通常位于/etc/passwd。如果我们在密码文件中查看我们的登录项,将会看到它是由7个冒号分离的部分组成的:登录名,加密口令,用户的数字ID205),组的数字ID105),一个注释段,起始目录(/home/sar),还有shell(注:以后直接用shell代表解释器)程序(/bin/ksh)。

    sar:x:205:105:Stephen Rago:/home/sar:/bin/ksh

所有新的系统已经把加密口令移到另一个文件中了。在第六章,我们将查看这些文件和一些函数来访问他们。

Shell

一旦我们登录后,一些特定的系统信息就显示出来,接着我们就可以在shell中输入命令。(一些系统在你登录后,会启动窗口管理程序,但是一般来说,你会以在其中一个窗口中运行shell来结束。)shell是一个命令行解释器,它读入用户的输入并且执行命令。用户通常从终端(一个交互式的shell),或者某些时候从一个文件(被称为shell教本)向shell输入。通常使用的shell总结在图1.2中。

名字

路径

FreeBSD 5.2.1

Linux 2.4.22

Mac OS X 10.3

Solaris 9

Bourne shell

/bin/sh

*

link to bash

Link to bash

*

Bourne-again shell

/bin/bash

Optional

*

*

*

C shell

/bin/csh

link to tcsh

Link to tcsh

link to tcsh

*

Korn shell

/bin/ksh

 

 

 

*

TENEX C shell

/bin

*

*

*

*

1.2 UNIX系统常用shell

系统从密码文件中登录项的最后一个字段中了解到应该执行哪一个shell

Bourne shell,由Steve Bourne在贝尔实验室开发,自Version 7以来一直在使用,并且被目前几乎所有的UNIX系统所支持。The control-flow constructs of the Bourne shell are reminiscent of Algol 68

C shell是由Bill Joy在伯克利开发的,被所有的BSD发行版支持。另外,C shell也被AT&TSystem V/386 Release 3.2System V Release 4SVR4)所支持。(我们将在下一章中更详细介绍这两个版本UNIX系统的不同。)C shell构建于第六版的shell,而不是Bourne shell。它的control flow更像C语言,它也支持一些其它的,Bourne shell所不支持的特性:job control, a history mechanism, and command line editing

Korn shell被认为是对Bourne shell的成功者,它最先被SVR4所支持。Korn shell是由David Korn在贝尔实验室开发的,运行于大多数的UNIX系统上。在SVR4之前,Korn shell是一个收费组件,所以它并没有其它两个shell流行。它也和Bourne shell兼容,同时包含了使得C shell流行的那些特性:job control, command line editing, and so on

Bourne-again shell是由所有Linux系统所支持的GNU shell。它被设计为与POSIX一致,同时仍然与Bourne shell兼容。它同时支持C shellKorn shell的特性。

TENEX C shellC shell的增强版本。它从TENEX操作系统(1972年开发于Bolt BeranekNewman)借用了许多特性,比如命令补全。TENEX C shell对于C shell增加了许多特性,其通常被作为C shell的替代品。

Linux使用Bourne-again shell作为默认shell。事实上,/bin/sh就是/bin/bash的连接。FreeBSDMac OS X的默认shellTENEN C shell,由于C shell的程序设计语言被广泛的认为很难使用,所有他们使用Bourne shell作为他们的系统(administrativeshell脚本。Solaris有继承于BSDSystem V的,在图1.2中所列出的所有shell。大多数这些shell的免费部分能够在因特网上得到。

通过本书,我们将展示互动的shell例子来执行我们所开发的程序。这些例子使用Bourne shellKorn shellBourne-again shell的共同特性。

posted on 2006-01-03 21:56 PIGWORLD 阅读(279) 评论(0)  编辑 收藏 引用 所属分类: 《UNIX环境高级编程(第二版)》翻译


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理