- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[初中教育]第四章 UNIX文件系统
UNIX操作系统 第四章 UNIX 文件系统 第四章 UNIX文件系统 全面掌握UNIX的文件操作 理解UNIX的文件系统结构 第四章 UNIX文件系统 第四章 UNIX文件系统 4.1 文件和目录的层次结构 UNIX系统通过目录管理文件,文件系统组织成树状结构,目录中可以含有多个文件,也可以含有子目录。UNIX系统中,路径名分割符用正斜线/。表4-1所示为一些常见的目录和文件。与系统有关的一些主要目录的取名和在层次结构中的位置,几乎在所有UNIX系统中都相同。 表4-1 UNIX常见的目录和文件 4.2 文件和目录的命名 (1)名字长度。现在的UNIX都支持长文件名,文件名长度的最大值都在200以上,早期的UNIX至少可以支持长度为14个字符的文件名。 (2)取名的合法字符。除斜线外的所有字符都是命名的合法字符,空格、星号甚至不可打印字符也可以做文件名。一个字节的取值0~255之中,47是斜线的ASCII码,不可作为文件名,ASCII码0用作C语言的字符串结束标志,其余的254种取值都可以作为文件名。 (3)大小写字母有区别。例如:makefile,Makefile,MAKEFILE是三个不同的文件名。 4.3 shell的文件名通配符 4.3.1 规则 UNIX的文件名通配符是由shell程序解释的,不同的shell会有不同的文件名通配符规则。对几乎所有的shell来说,表4-2列出的有关文件名通配符的规则几乎都一致。 表4-2 常用的shell文件名通配符 4.3 shell的文件名通配符 4.3.2 与DOS文件名通配符的区别 (1)UNIX的文件名通配符要比DOS中的严格,无二义性。 设当前目录下有两文件xcom.exe和xcom.obj,DOS中DIR XCOM*命令会列出两个文件,而DEL XCOM*删不掉任一个文件。DOS也不允许使用类似的通配串*temp*。在UNIX中,文件名通配符允许用于任何命令,而DOS中只能用于dir/del/copy等有限的几个命令中。在UNIX中,命令cat *.c可以列出所有的.c文件内容,而在DOS中,命令TYPE *.c不可以。现在的Windows系统中,这种情况有所改观。 4.3 shell的文件名通配符 4.3.2 与DOS文件名通配符的区别 (2)关于文件扩展名。DOS中*.*匹配所有文件,UNIX中*.*要求文件名中必须含有句点,否则不匹配。UNIX中并没有把文件名中的句点做特殊的处理,它和普通的字符有着相同的地位。UNIX文件名处理中,没有所谓“扩展名”的概念。 (3)匹配子目录中的文件。在UNIX中可以使用*/*.[ch]通配符,匹配当前目录下所有一级子目录中文件名后缀为.c和.h的文件,这在DOS中不允许。 4.3 shell的文件名通配符 4.3.3 文件名通配符的处理过程 UNIX和DOS的文件名通配符看起来类似,但是,在处理过程上有所不同。了解shell的工作机理,会更深入更准确地把握shell的特性,便于正确地使用它,也能够理解shell的某些行为。UNIX处理文件名通配符的过程分三步。 (1)在shell提示符下,从键盘输入命令,输入的命令被shell所接受。 (2)shell对所键入的内容作若干种加工处理,其中含有对文件名通配符的扩展工作,生成结果命令。 (3)执行生成的结果命令。 说明(一) shell程序也是在操作系统内核支持下的应用级程序,与普通用户编写的C语言源程序编译链接之后产生的可执行程序在系统中有相同的地位。甚至,用户也可以根据自己的喜好编写自己的shell程序。从设计shell软件的程序员角度看,在shell提示符下输入命令,会在程序中得到一个字符串的输入,这是第一步;将得到的这个字符串进行加工处理,其中,含有对文件名通配符的展开工作,生成结果命令,这是第二步;第三步,调用操作系统的系统调用,创建新的进程执行命令,并把参数传递给新进程。 说明(二) shell在第二步中,含有文件名生成工作,把用空格分开的每一段作为一个“单词”,扫描每个词,从中寻找 * ? []。如果其中之一出现,则该词被识别为一个文件名通配符,用与文件名通配符相匹配的文件名表取代该词。可以匹配多个名字时,按字母序排列多个名字。如果没有找到与文件名通配符相匹配的文件名,在B-shell中不改变该词,在C-shell中产生错误。 例4.1 体验shell对文件名通配符的展开处理 (1)设当前目录下只有try.c,zap.c,arc.c三文件,在shell提示符下,键入命令: cat *.c 那
文档评论(0)