1 / 63

第三章 UNIX 的文件与目录

第三章 UNIX 的文件与目录. 一、 文件的概念. 计算机中的所有信息保存在文件中。 如:通知、程序、文本 文件是 : 数据集合 字符流,或称为字节流 操作系统不对文件进行任何结构化 在 UNIX 系统中,文件是字节序列. 二、文件类型. 普通文件 文本数据或代码数据 没有内部的格式 目录文件 将所有内容组织成一个表 目录内文件名的列表 特殊文件 代表系统中的设备,在 /dev 目录中 . 三、路径名. 由斜杠 / 分隔的由目录名组成的一个序列,它指示找到一个文件所必须经历的目录。

nonnie
Télécharger la présentation

第三章 UNIX 的文件与目录

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章 UNIX的文件与目录

  2. 一、 文件的概念 • 计算机中的所有信息保存在文件中。 • 如:通知、程序、文本 • 文件是: • 数据集合 • 字符流,或称为字节流 • 操作系统不对文件进行任何结构化 • 在UNIX系统中,文件是字节序列

  3. 二、文件类型 • 普通文件 • 文本数据或代码数据 • 没有内部的格式 • 目录文件 • 将所有内容组织成一个表 • 目录内文件名的列表 • 特殊文件 • 代表系统中的设备,在/dev目录中

  4. 三、路径名 • 由斜杠/分隔的由目录名组成的一个序列,它指示找到一个文件所必须经历的目录。 • 两种类型: • 全路径(绝对路径):由根目录/开始 • 相对路径:由当前目录开始

  5. 路径名举例 . 表示当前目录;. .表示上级(父)目录 例: (参看p43,图4-2) 当前目录是/home/team01 /home/team01/doc/mon_report doc/mon_report . ./tea m03/pgms/suba ./test1

  6. 四、与目录相关的命令 • pwd • cd • mkdir • rmdir • ls

  7. 工作目录 • 在UNIX系统中,用户总处于某个目录中。正在工作的这个目录叫工作目录或当前目录。

  8. 1、显示工作目录PWD • 列出正在工作的目录(Print Working Directory)pwd命令,用于显示你当前所处的目录名 • pwd命令总是返回你当前所处的目录的完全路径名。 • 登录完成后,显示用户主目录的路径名

  9. PWD 命令 • 图例:显示的是用户主目录的路径名。 • /home/a1是用户的主目录路径名,也是用户当前工作目录的路径名。从/开始,是一个绝对路径名,表示从根目录开始直到用户主目录的路径。 • a1是登录名和用户主目录名

  10. 定位工作目录中的文件 • 工作目录是a1,若显示有文件myfirst和一个名为source 的目录,其中有一个文件。a1目录中的文件myfirst的路径名是/usr/a1/myfirst,这是文件的绝对路径名。如果在工作目录中,不需要用完整的路径名指示,而只需要文件名(这里是myfirst)就足够了。

  11. 定位其他目录中的文件 • 当文件不在工作目录时,需要指定文件所在的目录。 • 例如,工作目录是usr。用户source目录中的文件first.c的路径名为:a1/source/first.c。

  12. 2、改变当前目录change diretcor • 格式:$cd dir_name • 作用:从一个目录改变到另一个目录。 • $cd 不带任何参数时,将把你送回自己的用户主目录中。(即用户登录时自动进入的第一个目录) • $cd .. 将把你向上送至当前目录的父目录中。

  13. 改变当前目录change diretcor • 返回用户主目录:如果目录有许多层,而当前目录处在目录结构中比较深的位置时,不用输入太多字符就可以回到用户主目录会非常方便。用户可以用$HOME(保存用户主目录路径名的变量)作为cd命令的目录名。或者仅输入cd,然后按回车键,默认回到用户主目录。

  14. 举例: (参见p43) • $cd home • $cd doc • $cd • $pwd _______ • $cd aaa _______

  15. 3、创建目录(mkdir) • 格式:$mkdir dir_name • 作用:创建一个子目录,或一次创建多 个子目录。 • 在每一个新的子目录中,均包含两个标准的项目:.(点) 和 ..(双点) •  mkdir 命令带-m选项,可用来创建一个带有特定权限的子目录。

  16. Mkdir命令 创建目录 • [实例] • 回到用户主目录,在memos目录下创建名为divid88的子目录。

  17. 举例: • 1.在用户主目录下创建memos和important: • $cd • $mkdir memos • $pwd _________ • $cd memos • $pwd __________ • $cd • $mkdir memos/important • $cd memos/important • $pwd ___________

  18. 当前目录 现在工作目录 $ cd $ mkdir menmos $ pwd /usr/david $ cd memo $ pwd $_ $ cd $ mkdir memos/important $ cd menmos/important $ pwd /usr/david/memos/important $_

  19. (续) • 注意:1、创建的目录应该不存在; 2、可以在任何一级用mkdir,而不一定要在当前目录下创建。

  20. 5、删除目录(rmdir) • 格式:$rmdir dir_name • 作用:删除不需要的目录 • 说明: • 1.     dir_name参数必须有 • 2.     dir_name参数不能被指定为当前目录(即:要在父目录中删除子目录) • 3. 被删除的子目录必须为空子目录。 • (即只包含. 和. .)

  21. 一次操作多个目录 • 在AIX中,可同时创建多个目录,且可用一个命令删除某个目录及其所有的子目录。 • 在操作时要使用带-p的命令选项。 • 举例: $mkdir –p dir1/dir2/dir3 $rmdir –p dir1/dir2/dir3 有下列二种情况之一时,rmdir命令不起作用: 1.       待删除的目录不是空目录 2.       你对待删除目录没有写的权限

  22. 一次操作多个目录 • -P选项:一行命令可以创建一个完整的目录结构。使用-P选项在当前目录下逐级创建目录。 • [注意]:创建的目 录不存在。用不着非得创建当前目录的子目录。只要给出新目录的路径名,可以在任何一级目录运行该命令。

  23. 举例: • 在用户主目录内创建一个三层的目录: • $cd • $mkdir –p xx/yy/zz

  24. xx yy zz

  25. 6、显示目录中的各项 (ls) • 格式:$ls dir_name (dir_name是可选的) • 作用:显示(列表 list)目录命令 • 选项:-a,-R • 举例:$cd, $ls(显示用户主目录中的内容) $ls -a(显示所有文件) 文件名以.开头的文件是隐藏文件 $ls -R(显示所有子目录的内容)

  26. 列出目录中文件的详细信息(ls) • 格式:$ls –l • 作用:使用带-l选项的ls命令,能得到目录中的文件的详细信息 • 显示内容的说明: • 字段1显示是文件还是目录;读写权限。 • 字段2显示了链接数 • 字段3显示了该文件的拥有者的名称 • 字段4显示了用户组权限所作用的用户组的名称。 • 字段5显示了该文件的字节数 • 字段6显示了该文件被最后修改的时间 • 字段7显示了该文件或目录的名称

  27. -l 以长(long)格式显示文件的七项主要信息, 例如: $ ls -l data total 28 -rwxrw-r-- 1 zhang student 259 Jul 11 18:23 file1 -rw-rw---- 1 zhang student 76 Sep 05 09:56 file2 drwxr-xr-x 2 zhang student 48 Sep 05 16:39 hist 文件名 最后修改时间 文件大小(字节数) 文件所属用户组 文件属主(所有者) 文件链接数 文件保护模式 文件类型(-:普通 d:目录 c:字符设备 b:块设备 p:管道)

  28. 如果ls 命令列出的文件是设备特殊文件, 则该命令的输 出格式略有不同, 例如: $ ls –l /dev 次设备号 brw-rw---- 1 root admin 2, 5 Sep 05 09:56 disk3 crw-rw-rw- 1 root admin 6, 0 Sep 05 16:39 lp 文件名 最后修改时间 主设备号 文件所属用户组 文件属主(所有者) 文件链接数 文件保护模式 文件类型(c:字符设备 b:块设备)

  29. ls命令的命令选项 • -a 功能:列出所有文件,包括隐藏文件(入图所示) • -C 功能: 以多列的格式列表,按列排序 • -F功能: 如果是目录,文件名后加/;如果是可执行文件,加*表示

  30. ls命令的命令选项 • -l 功能:按照长格式列表,显示文件的详细信息 • -m功能:按页宽列文件,以逗号分隔 • -p功能: 如果是目录,文件名后加/ • -r功能: 以字母反序列表 • -R功能:循环列出子目录的内容 • -s功能: 以文件块为单位显示文件大小 • -x功能: 以多列的格式列表,按行排序

  31. [说明] • 1。 每个选项字母前需要加连字符。 • 2。 命令名和选项之间必须要有空格。 • 3。 加目录的路径名列出其他目录的文件。 • 4。 一行命令中可以多于一个选项。

  32. (续) • 注意: • 目录的大小是以512字节为增量的。 •   名称是存贮在目录之中的,其它显示的信息是存贮在inode表中的

  33. 7、显示目录条目的信息 • 使用-i命令选项,inode序号将列在第一列。 • 使用-d命令选项,将只显示目录条目的信息。 • 可以使用不同的命令选项来显示不同的时间标记 • ls –lc 显示更新时间 • ls –l 显示更改时间 • ls –lu 显示访问时间

  34. 显示目录条目的信息 • 文件类型: - 表示普通文件 d表示目录文件 b表示块设备文件 例如磁盘 c表示字符设备文件 例如打印机

  35. 五、UNIX 文件系统 • 文件系统的存储结构 UNIX 系统可以把一个能随机存取的存储介质 (如硬盘、软盘和光盘等)上的存储空间划分成一 个至多个区域,每个区域都可以像独立的物理设备 一样单独进行管理和数据存取,这样的存储区域, 即是逻辑设备。在逻辑设备上按照一定的格式进行 划分,就构成了逻辑文件系统,简称文件系统。

  36. 逻辑文件系统的存储结构 引导块: 系统上电启动时, 其中的引导程序读入和装 载操作系统. 它不是文件系统的必要组成部分. 超级块: 存放文件系统的标题信息, 包括文件系统 大小、i节点表大小、数据区的使用状况等. i节点表:其中的每一个表项存放一个文件的静态信 息:大小、类型、属主、索引表、访问权限和修改 日期等. 数据存储区:实际存放数据的地方. 以块为单位存取

  37. 文件系统的建立: # mkfs specialfile blocksize gap blocks specialfile: 要建立文件系统的逻辑设备名 blocksize: 文件系统块的大小, 通常为512字节 gap: 间隔因子, 用于提高读写速度 blocks: 文件系统的大小(块数)

  38. 文件系统的安装和拆卸 建立好的文件系统在使用时, 应挂接到一个目 录下, 这个目录通常为根目录下的一个空目录, 用户 访问该目录时也就访问到了挂接在该目录下的文件 系统的内容. 这个挂接操作就叫安装. 一个文件系统不用时, 可使其从安装目录上拆卸 下来, 该安装目录断开与该文件系统的任何联系, 由 此保护该文件系统不受任何非法访问. # mount specialfile directoryname 如: mount /dev/hd03 /mnt # umount specialfile(or directoryname) 如: umount /dev/hd03 (umount /mnt)

  39. root boot unix bin usr mnt etc tmp dev • 文件系统的逻辑结构 who tty01 abc bin lib include spool passwd mem tty02 date lex stdio.h cron tmp 029 libc.a fd0 ttyp1 ttys cat yacc file.h mail ex53 cdrom ttyp2 libm.a rc ls bc hd01 a.out.h lp lpd file. tmp libz.a mount hd02 sar cp dir.h 图例: 目录 普通文件 设备文件

  40. 在 UNIX 系统中, 所有静态的对象都属于 “文件”的范畴, 其主要目的是规范和简化上 层应用程序的接口. “文件” 和与其相对应的 “进程” 是UNIX 系统中的两个最基本概念.

  41. 5、目录文件的内容 • 目录是一种特殊的文件,它仅包含欲访问存放于其中的文件或目录所必需的信息。 • 目录一般比其它文件占用的空间小。 • 目录的作用在于将相关的文件组织在一起。 • 每一个目录条目,包括一个文件名(或子目录名),一个相关的inode(i节点)序数

  42. 上级目录 /data /data/xyz 父目录 目录结构 子目录 /data/abc 目录项长度: 2 + 14 = 16字节

  43. 6. 索引节点(inode, i 节点) 磁盘 i 节点表中的一个表项, 存放文件的静态 信息. 各文件之间是以其 i 节点号相互区别的. .用户访问文件的过程 • 指定文件名找到相关的inode序数 访问inode表找到文件的位置访问文件中包含的数据 . inode表中包含了指定文件的各种相关信息。 (p42 图4-1)

  44. 六、与文件相关的操作 • cp • mv • ln • Cat (more) • rm

  45. 1、文件名及其规范 ① 文件名长度 在短文件名的系统中, 文件名最长为14字符, 在长文 件名的系统中, 文件名长度可达512字符. ② 文件名可用字符 (A ~ Z) 大写字母 ( _ ) 下划线 (a ~ z) 小写字母 ( . ) 小数点 (0 ~ 9) 数字 除此之外的所有其它字符(包括空格)不能用于文件名. 以点(.)开始的文件名是隐含文件名, 在列目录操作时通常不 显示出来. UNIX系统对文件名的含义不作任何解释, 文件名(包括 其后缀)的含义由使用者或调用程序来解释. 注意: 在UNIX系统中字母的大小写是有区别的!

  46. AIX/Linux的文件名 • 文件名命名的规则: • 只使用字母(大、小写)、数字及三个特殊符号#,@,_。也可使用.(点)。 • 文件名中不包括空格 • 文件名中不包括shell使用的特殊字符,如* ? > < / ; & ! [ ] | ‘ “ ( )。 • 不能用+号或-号作为文件名的第一个字符 • 不能与系统中的命令名相同 • 对大、小写是不同的。 • 文件名中最多包括255个字符

  47. 注意: • AIX中没有文件扩展名。 • .(点)只作为文件名中的一部分。 • 使用ls 命令是看不到以.作为文件名的第一个字符的文件的。 • 举例:myfile、 MFILE、my file • JAN_list、my.new.list

  48. touch 命令 • 作用:Touch命令是用于修改文件的访问时间 更改时间(modificated)的。并可以用来创建0字节长度的文件。 • 格式:$touch 命令参数 • 使用touch命令有两种目的。 • 1、如果命令参数中指定的文件并不存在,这个文件将被创建; • 2、如果命令参数中指定的文件存在,那么这个文件的最后一次更改时间(modificated)将被更新为当前的时间。

  49. 拷贝文件 (cp) • 格式:$cp source target • $cp file1 file2 ... Target-dir • 作用:复制文件,对文件备分。用户可把文件从某个目录复制到另一个目录 • 选项: -i:如果目标文件存在,请求确认 • -r:复制目录到新的目录 • 如果目标(target)参数中指定的是一个目录名,那么新的文件可与源文件同名。

  50. cp举例: (p55) .单个文件拷贝: (图4-9) $pwd (/home/team01/doc) $cp /home/team03/pgms/suba programa .多个文件拷贝: (图4-10) $cd /home/team01 $cp doc/programa test1 c . 不同目录之间的拷贝: (图4-11) $cd doc $ cp trio_ltr ../c

More Related