第三章UNIX的文件与目录一、文件的概念•计算机中的所有信息保存在文件中。•如:通知、程序、文本•文件是:•数据集合•字符流,或称为字节流•操作系统不对文件进行任何结构化•在UNIX系统中,文件是字节序列二、文件类型•普通文件•文本数据或代码数据•没有内部的格式•目录文件•将所有内容组织成一个表•目录内文件名的列表•特殊文件•代表系统中的设备,在/dev目录中三、路径名•由斜杠/分隔的由目录名组成的一个序列,它指示找到一个文件所必须经历的目录。•两种类型:•全路径(绝对路径):由根目录/开始•相对路径:由当前目录开始路径名举例.表示当前目录;..表示上级(父)目录例:(参看p43,图4-2)当前目录是/home/team01/home/team01/doc/mon_reportdoc/mon_report../team03/pgms/suba./test1四、与目录相关的命令•pwd•cd•mkdir•rmdir•ls工作目录•在UNIX系统中,用户总处于某个目录中。正在工作的这个目录叫工作目录或当前目录。1、显示工作目录PWD•列出正在工作的目录(PrintWorkingDirectory)pwd命令,用于显示你当前所处的目录名•pwd命令总是返回你当前所处的目录的完全路径名。•登录完成后,显示用户主目录的路径名PWD命令•图例:显示的是用户主目录的路径名。•/home/a1是用户的主目录路径名,也是用户当前工作目录的路径名。从/开始,是一个绝对路径名,表示从根目录开始直到用户主目录的路径。•a1是登录名和用户主目录名定位工作目录中的文件•工作目录是a1,若显示有文件myfirst和一个名为source的目录,其中有一个文件。a1目录中的文件myfirst的路径名是/usr/a1/myfirst,这是文件的绝对路径名。如果在工作目录中,不需要用完整的路径名指示,而只需要文件名(这里是myfirst)就足够了。定位其他目录中的文件•当文件不在工作目录时,需要指定文件所在的目录。•例如,工作目录是usr。用户source目录中的文件first.c的路径名为:a1/source/first.c。2、改变当前目录changediretcor•格式:$cddir_name•作用:从一个目录改变到另一个目录。•$cd不带任何参数时,将把你送回自己的用户主目录中。(即用户登录时自动进入的第一个目录)•$cd..将把你向上送至当前目录的父目录中。改变当前目录changediretcor•返回用户主目录:如果目录有许多层,而当前目录处在目录结构中比较深的位置时,不用输入太多字符就可以回到用户主目录会非常方便。用户可以用$HOME(保存用户主目录路径名的变量)作为cd命令的目录名。或者仅输入cd,然后按回车键,默认回到用户主目录。举例:(参见p43)•$cdhome•$cddoc•$cd•$pwd_______•$cdaaa_______3、创建目录(mkdir)•格式:$mkdirdir_name•作用:创建一个子目录,或一次创建多个子目录。•在每一个新的子目录中,均包含两个标准的项目:.(点)和..(双点)•mkdir命令带-m选项,可用来创建一个带有特定权限的子目录。Mkdir命令创建目录•[实例]•回到用户主目录,在memos目录下创建名为divid88的子目录。举例:•1.在用户主目录下创建memos和important:•$cd•$mkdirmemos•$pwd_________•$cdmemos•$pwd__________•$cd•$mkdirmemos/important•$cdmemos/important•$pwd___________$cd$mkdirmenmos$pwd/usr/david$cdmemo$pwd$_$cd$mkdirmemos/important$cdmenmos/important$pwd/usr/david/memos/important$_根目录USRdavidREPORTDraft_1phones123importantsource当前目录现在工作目录first.cmyfirstmemos(续)•注意:1、创建的目录应该不存在;2、可以在任何一级用mkdir,而不一定要在当前目录下创建。5、删除目录(rmdir)•格式:$rmdirdir_name•作用:删除不需要的目录•说明:•1.dir_name参数必须有•2.dir_name参数不能被指定为当前目录(即:要在父目录中删除子目录)•3.被删除的子目录必须为空子目录。•(即只包含.和..)一次操作多个目录•在AIX中,可同时创建多个目录,且可用一个命令删除某个目录及其所有的子目录。•在操作时要使用带-p的命令选项。•举例:$mkdir–pdir1/dir2/dir3$rmdir–pdir1/dir2/dir3有下列二种情况之一时,rmdir命令不起作用:1.待删除的目录不是空目录2.你对待删除目录没有写的权限一次操作多个目录•-P选项:一行命令可以创建一个完整的目录结构。使用-P选项在当前目录下逐级创建目录。•[注意]:创建的目录不存在。用不着非得创建当前目录的子目录。只要给出新目录的路径名,可以在任何一级目录运行该命令。举例:•在用户主目录内创建一个三层的目录:•$cd•$mkdir–pxx/yy/zz根目录USRdavidREPORTDraft_1phones123sourcefirst.cmyfirstmemosimportantxxyyzz6、显示目录中的各项(ls)•格式:$lsdir_name(dir_name是可选的)•作用:显示(列表list)目录命令•选项:-a,-R•举例:$cd,$ls(显示用户主目录中的内容)$ls-a(显示所有文件)文件名以.开头的文件是隐藏文件$ls-R(显示所有子目录的内容)列出目录中文件的详细信息(ls)•格式:$ls–l•作用:使用带-l选项的ls命令,能得到目录中的文件的详细信息•显示内容的说明:•字段1显示是文件还是目录;读写权限。•字段2显示了链接数•字段3显示了该文件的拥有者的名称•字段4显示了用户组权限所作用的用户组的名称。•字段5显示了该文件的字节数•字段6显示了该文件被最后修改的时间•字段7显示了该文件或目录的名称-l以长(long)格式显示文件的七项主要信息,例如:$ls-ldatatotal28-rwxrw-r--1zhangstudent259Jul1118:23file1-rw-rw----1zhangstudent76Sep0509:56file2drwxr-xr-x2zhangstudent48Sep0516:39hist文件名最后修改时间文件大小(字节数)文件所属用户组文件属主(所有者)文件链接数文件保护模式文件类型(-:普通d:目录c:字符设备b:块设备p:管道)如果ls命令列出的文件是设备特殊文件,则该命令的输出格式略有不同,例如:$ls–l/dev次设备号brw-rw----1rootadmin2,5Sep0509:56disk3crw-rw-rw-1rootadmin6,0Sep0516:39lp文件名最后修改时间主设备号文件所属用户组文件属主(所有者)文件链接数文件保护模式文件类型(c:字符设备b:块设备)ls命令的命令选项•-a功能:列出所有文件,包括隐藏文件(入图所示)•-C功能:以多列的格式列表,按列排序•-F功能:如果是目录,文件名后加/;如果是可执行文件,加*表示ls命令的命令选项•-l功能:按照长格式列表,显示文件的详细信息•-m功能:按页宽列文件,以逗号分隔•-p功能:如果是目录,文件名后加/•-r功能:以字母反序列表•-R功能:循环列出子目录的内容•-s功能:以文件块为单位显示文件大小•-x功能:以多列的格式列表,按行排序[说明]•1。每个选项字母前需要加连字符。•2。命令名和选项之间必须要有空格。•3。加目录的路径名列出其他目录的文件。•4。一行命令中可以多于一个选项。(续)•注意:•目录的大小是以512字节为增量的。•名称是存贮在目录之中的,其它显示的信息是存贮在inode表中的7、显示目录条目的信息•使用-i命令选项,inode序号将列在第一列。•使用-d命令选项,将只显示目录条目的信息。••可以使用不同的命令选项来显示不同的时间标记•ls–lc显示更新时间•ls–l显示更改时间•ls–lu显示访问时间显示目录条目的信息•文件类型:-表示普通文件d表示目录文件b表示块设备文件例如磁盘c表示字符设备文件例如打印机五、UNIX文件系统1.文件系统的存储结构UNIX系统可以把一个能随机存取的存储介质(如硬盘、软盘和光盘等)上的存储空间划分成一个至多个区域,每个区域都可以像独立的物理设备一样单独进行管理和数据存取,这样的存储区域,即是逻辑设备。在逻辑设备上按照一定的格式进行划分,就构成了逻辑文件系统,简称文件系统。引导块:系统上电启动时,其中的引导程序读入和装载操作系统.它不是文件系统的必要组成部分.超级块:存放文件系统的标题信息,包括文件系统大小、i节点表大小、数据区的使用状况等.i节点表:其中的每一个表项存放一个文件的静态信息:大小、类型、属主、索引表、访问权限和修改日期等.数据存储区:实际存放数据的地方.以块为单位存取引导块超级块i节点表数据存储区逻辑文件系统的存储结构2.文件系统的建立:#mkfsspecialfileblocksizegapblocksspecialfile:要建立文件系统的逻辑设备名blocksize:文件系统块的大小,通常为512字节gap:间隔因子,用于提高读写速度blocks:文件系统的大小(块数)3.文件系统的安装和拆卸建立好的文件系统在使用时,应挂接到一个目录下,这个目录通常为根目录下的一个空目录,用户访问该目录时也就访问到了挂接在该目录下的文件系统的内容.这个挂接操作就叫安装.一个文件系统不用时,可使其从安装目录上拆卸下来,该安装目录断开与该文件系统的任何联系,由此保护该文件系统不受任何非法访问.#mountspecialfiledirectoryname如:mount/dev/hd03/mnt#umountspecialfile(ordirectoryname)如:umount/dev/hd03(umount/mnt)4.文件系统的逻辑结构rootbinwhocpdatecatlslibbinbcyacclexlibz.alibm.alibc.asarincludestdio.hfile.ha.out.hdir.hspoolcronmaillpdusrunixbootmntetctmpdevmountrcttyspasswdfile.tmpex53tmp029abcttyp1fd0cdromttyp2lphd02tty02memtty01hd01图例:目录普通文件设备文件在UNIX系统中,所有静态的对象都属于“文件”的范畴,其主要目的是规范和简化上层应用程序的接口.“文件”和与其相对应的“进程”是UNIX系统中的两个最基本概念.5、目录文件的内容•目录是一种特殊的文件,它仅包含欲访问存放于其中的文件或目录所必需的信息。•目录一般比其它文件占用的空间小。•目录的作用在于将相关的文件组织在一起。•每一个目录条目,包括一个文件名(或子目录名),一个相关的inode(i节点)序数目录结构72.2..51xyz0prog296abc上级目录51.72..134file11112222222333444444/data/data/xyz/data/abc目录项长度:2+14=16字节6.索引节点(inode,i节点)磁盘i节点表中的一个表项,存放文件的静态信息.各文件之间是以其i节点号相互区别的..用户访问文件的过程•指定文件名找到相关的inode序数访问inode表找到文件的位置访问文件中包含的数据.inode表中包含了指定文件的各种相关信息。(p42图4-1)六、与文件相关的操作•c