UNIX环境高级编程.pdf
文档介绍:第1章U N I X基础知识1.1 引言所有操作系统都向它们运行的程序提供服务。典型的服务有执行新程序、打开文件、读文件、分配存储区、获得当前时间等等,本书集中阐述了U N I X操作系统各种版本所提供的服务。以严格的步进方式、不超前引用尚未说明过的术语的方式来说明U N I X几乎是不可能的(可能也会是令人厌烦的)。本章从程序设计人员的角度快速浏览U N I X,并对书中引用的一些术语和概念进行简要的说明并给出实例。在以后各章中,将对这些概念作更详细的说明。本章也对不熟悉U N I X的程序设计人员简要介绍了U N I X提供的各种服务。1.2 登录1.2.1 登录名登录U N I X系统时,先键入登录名,然后键入口令。系统在其口令文件,通常是/ e t c / p a s s w d文件中查看登录名。口令文件中的登录项由7个以冒号分隔的字段组成:登录名,加密口令,数字用户I D ( 2 2 4 ),数字组I D ( 2 0 ),注释字段,起始目录( / h o m e / s t e v e n s ),以及s h e l l程序( / b i n / k s h )。很多比较新的系统已将加密口令移到另一个文件中。第6章将说明这种文件以及存取它们的函数。1.2.2 shell登录后,系统先显示一些典型的系统信息,然后就可以向s h e l l程序键入命令。s h e l l是一个命令行解释器,它读取用户输入,然后执行命令,用户通常用终端,有时则通过文件(称为s h e l l脚本)向s h e l l进行输入。常用的s h e l l有:? Bourne shell, /bin/sh? C shell, /bin/csh? KornShell, /bin/ksh系统从口令文件中登录项的最后一个字段中了解到应该执行哪一个s h e l l。自V 7以来,Bourne shell得到了广泛应用,几乎每一个现有的U N I X系统都提供Bourne shell。C shell是在伯克利开发的,所有B S D版本都提供这种s h e l l。另外,AT & T的系统V/386 R3.2和S V R 4也提供C shell(下一章将对这些不同的U N I X版本作更多说明)。K o r n S h e l l是Bourne shell的后继者,它由S V R 4提供。K o r n S h e l l在大多数U N I X系统上运行,但在S V R 4之前,通常它需要另行购买,所以没有其他两种s h e l l流行。本书将使用很多s h e l l实例,以执行已开发的程序,其中将应用Bourne shell和K o r n S h e l l都具有的功能。更多电子书教程下载请登陆http://down./ebook 本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。Bourne shell是Steve Bourne在贝尔实验室中开发的,其控制流结构使人想起Algol 68。C shell是在伯克利由Bill Joy完成的,其基础是第6版s h e l l(不是B o u r n es h e l l)。其控制结构很像C语言,它支持一些Bourne shell没有提供的功能,如作业控制,历史机制和命令行编辑。K o r n S h e l l是David Korn在贝尔实验室中开发的,它兼容Bourne shell,并且也包含了使C shell非常流行的一些功能,如作业控制、命令行编译等。本书将使用这种形式的注释来描述历史,并对不同的U N I X实现进行比较。当我们了解了历史缘由后,采用某种特定实现技术的原因将变得清晰起来。1.3 文件和目录1.3.1 文件系统U N I X文件系统是目录和文件的一种层次安排,目录的起点称为根( r o o t ),其名字是一个字符/。目录(d i r e c t o r y)是一个包含目录项的文件,在逻辑上,可以认为每个目录项都包含一个文件名,同时还包含说明该文件属性的信息。文件属性是:文件类型,文件长度,文件所有者,文件的许可权(例如,其他用户能否能访问该文件),文件最后的修改时间等。s t a t和f s t a t函数返回一个包含所有文件属性的信息结构。第4章将详细说明文件的各种属性。1.3.2 文件名目录中的各个名字称为文件名(f i l e n a m e)。不能出现在文件名中的字符只有两个,斜线( / )和空操作符(n u l l)。斜线分隔构成路径名(在下面说明)的各文件名,空操作符则终止一个路径名。尽管如此,好的习惯是只使用印刷字符的一个子集作为文件名字符(只使用子集的理由是:如果在文件名中使用了某些s h e l l特殊字符,。