欢迎来到天天文库
浏览记录
ID:56777078
大小:549.50 KB
页数:13页
时间:2020-07-09
《实验4:文件系统实验指导.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验4:文件系统的设计与模拟实现一、实验目的和要求1.学习LINUX系统下对文件进行操作的各种命令和图形化界面的使用方法,深入学习和掌握文件管理系统的基本原理。2.掌握LINUX等操作系统下常用的系统调用,编写一个使用系统调用的例程。3.运用所学的操作系统文件管理机制的相关知识设计一个简单多用户文件系统,要求具有分级文件目录、文件分权限操作、用户管理等,模拟文件管理的工作过程,加深理解文件系统的内部功能及内部实现机制。二、实验指导(一)LINUX系统下对文件进行操作的命令和图形化界面的使用方法1、目录/proc下与系统相关的文件和目录(1)/
2、proc/$pid/fd:这是一个目录,该进程($PID号码进程)每个打开的文件在该目录下有一个对应的文件。例如:#ls/proc/851/fd0 1 2 255这表示,851号进程目前正在使用(已经打开的)文件有4个,它们的描述符分别是0、1、2、255。其中,0、1、2依次分别是进程的标准输入、标准输出和标准错误输出设备。(2)/proc/filesystems:该文件记录了可用的文件系统类型。(3)/proc/mounts:该记录了当前被安装的文件系统信息 例如:#cat/proc/mount(4)/proc/
3、$pid/maps:该文件记录了进程的映射内存区信息。 例如:#cat /proc/851/maps2.常用命令讲解ls命令用来查看用户有执行权限的任意目录中的文件列表,该命令有许多有趣的选项。例如: $ls-liah* 22684-rw-r--r--1bluherusers952Dec2818:43.profile 19942-rw-r--r--1scalishusers30Jan320:00test2.out 925-rwxr-xr-x1scalishusers378Sep22002test.sh 上面的列表
4、显示8列: 第1列指示文件的inode,因为我们使用了-i选项。剩下的列通过-l选项来进行正常显示。 第2列显示文件类型和文件访问权限。 第3列显示链接数,包括目录。 第4和第5列显示文件的所有者和组所有者。这里,所有者'bluher'属于组'users'。 第6列显示文件大小(单位为所显示的单位,而不是默认的字节数,因为我们使用了-h选项。 第7列显示日期(它看起来像是三列),包括月、日和年,以及当天的时间。 第8列显示文件名。在选项列表中使用-a将使列表中包含隐藏文件(如.profile)的列表。 处理文件 可以移动(m
5、v)、复制(cp)或删除(rm)文件和目录。明智地使用-i选项,以获得确认通常是个不错的主意。 $cp-ils.outls2.out cp:overwrite`ls2.out'? mv命令允许使用-b选项,这将在移动文件之前作一个备份拷贝。rm和cp接受功能强大但却危险的-r选项,它将在一个目录和它的文件上递归执行。 $rm-irTest rm:descendintodirectory`Test'?y 可以用mkdir来创建目录,用rmdir来删除目录。不过,因为不能用rmdir来删除包含文件的目录,所以使用rm加-r选项通常要更
6、方便些。 出于安全的原因,所有的文件都有所有权和保护。文件访问权限(或文件模式)包含之前提到的相同的10个字符: 第一个字符指示文件类型。最常见的是-代表文件,d代表目录,而l代表链接。 接下来的9个字符是三种用户类别的访问权限:文件所有者(字符2-4),用户组(5-7)和其它(8-10),其中r表示读权限,w表示写权限,x指示一个文件上的执行权限。破折号-如果出现在这九个位置的任意一个,则指示这个操作对该类别的用户禁止。 可以使用chmod命令通过字符符号或二进制掩码来设置访问权限。要使用二进制掩码,必须将三个权限组的字符表示转换成
7、二进制格式,然后转换成八进制格式: 用户类别:所有者用户组其它 字符表示:rwxr-xr-- 二进制表示:111101100 八进制表示:754 将写权限赋予用户组,可以使用: chmodg+wtest.shorchmod774test.sh 用umask命令,在/etc/init.dev文件中进行系统范围内的、或在.profile文件中进行的本地的文件权限默认设置。这个命令指示用777减去这个数字来获取默认的权限: $umask022 这将为用户创建的所有新文件生成一个默认的文件权限755。 可以用chown来修改文件的
8、所有权: $chownbluherls.out 这里,bluher是新的文件所有者。类似地,组成员资格将按以下方式修改: $chgrpdevgrpls.out
此文档下载收益归作者所有