您好,欢迎访问三七文档
1《操作系统原理》实验报告书班级:学号:姓名:指导教师:2013-2014学年第一学期2实验名称:LINUX用户界面实验时间:2013年10月16日第7周星期三一、实验目的1.熟悉Linux字符操作界面,熟练掌握常用Shell命令。2.熟悉Linux中文本编辑方法,学会编辑软件vi的使用。3.了解Linux编绎器gcc的功能,掌握基于Linux平台的C程序开发。二、实验预习(预备知识的问题及回答)1.为什么在Linux系统中,诸如光盘、U盘等要先挂载而后才能使用?如何获得U盘的设备名?装载点在文件系统中的位置是什么?由于文件系统的差异,Linux在默认情况下并不支持软盘、光盘和U盘,所以需要通过装载相应盘片才可以访问其中的数据。装载点是挂载文件系统的目录位置。2.从虚拟机界面退出进入WindowsOS界面的操作是Ctrl+Alt,从WindowsOS界面进入虚拟机界面的方法是鼠标点击虚拟界面。3.权限的含义是什么?如何使用数字法设定文件的权限?(1)权限的含义Linux系统中的每个文件和目录都有相应的访问许可权限,访问权限分为只读(r),可写(w)和可执行三种。有三种不同类型的用户可对文件或目录进行访问,分别是文件所有者(u),同组用户(g)和其他用户(o)。所有的文件和目录都被创建它们的人所“拥有”,只要你是这个文件的所有者或你登录为根用户,你就拥有了改变所有者、组群和其他人权限的权利。(2)使用数字法改变权限命令格式chmod权限数值文件名说明:给指定文件赋予数值所规定的权限。在数字设定法中,每种权限设置均可用数值来代表,其中0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,这些值之和便可用来设立特定权限。所以数字属性的格式应为3个0~7的八进制数,3个数表示的次序为u、g和o。34.什么过滤操作?在Linux中如何实现?过滤操作:将一个命令(或程序)的输出作为另一个命令(或程序)的输入Linux实现的命令格式:命令|命令5.在Linux中挂载u盘并能显示其文档的中文信息,所使用的挂载命令是:命令格式mount/dev/sda1/mnt/usb。6.什么是vi?其三种操作模式的含义是什么?给出三种工作模式间的转换图。vi有3种基本工作模式:命令模式(CommandMode):vi启动后的默认模式,控制光标的移动、复制删除文字、进入输入模式和末行模式输入模式(InsertMode):进行文字输入末行模式(LastLineMode):保存文件、退出vi三、实验内容(包含实验所用命令或相关程序源代码)1.shell操作命令(给出每题所用的Shell命令或命令结果)(1)创建名为stu1、stu2的2个用户,设置密码分别为student1和student2,并将它们设为组group1中的成员。#groupaddgroup1#useraddstu1–ggroup1#sustu1$passwdstu1回车后敲入密码student1$exit命令模式输入模式末行模式vi文件名Esc键Esc键按i、o、e等键按冒号“:”退出三种模式之间转换4#useraddstu2–ggroup1#sustu2$passwdstu2回车后敲入密码student1$exit(2)在每个用户的主目录下建立2个目录,分别命名为dir1和dir2。#sustu1$cd~$mkdirdir1$exit#sustu2$cd~$mkdirdir2$exit(3)查找stu1用户主目录、下属各子目录的默认存取权限,并给出结论。#sustu1$cd..$ls–l用户主目录权限为:drwx------,即目录的用户可读、写、执行,同组和其他用户无任何权限。#sustu1$cd~$ls–ldir1目录权限为:drwxr-xr-x,即目录的用户可读、写、执行,同组用户可读、执行,其他用户可读、执行。(4)调试pwd和cd命令,回答下列关于Linux文件系统中目录的有关问题。①用户主目录的绝对路径如何表示?/home/stu1,/home/stu2②根目录如何表示?/root③.和..分别表示什么目录?子目录,父目录④~表示什么目录?用户主目录⑤当前目录如何表示?cd~(5)新建用户stu3,设置其密码为student3,并将其设置为group2中成员。尔后,以stu3登录,在其主目录下建立名为text的目录,在text目录下再建立名为dir1的子目录,并使其成为当前目录。5#groupaddgroup2#useraddstu3–ggroup2#sustu3$passwd回车后敲入密码student3$cd~$mkdirtext$mkdirdir1$cdtext/dir1(6)使用catsneakers.txt命令,分析命令行catsneakers.txt的显示结果。$catsneakers.txtbuysomesneakersthengotothecoffeeshopthenbuysomecoff^D$catsneakers.txt从键盘中创建一个名为sneakers.txt文件,文件内容为:buysomesneakersthengotothecoffeeshopthenbuysomecoff(7)使用上题的方法,在dir1目录中建立home.txt文件,其内容为:bringthecoffeehometakeoffshoesputonsneakersmakesomecoffeerelax!如下:$cd/home/stu1/dir1$cathome.txtbringthecoffeehometakeoffshoesputonsneakersmakesomecoffeerelax![ctrl+D](8)试写出实现下列功能的shell命令:①将home.txt文件移至其上级目录中(即text目录下)。$mv./home.txt②将home.txt添加到sneakers.txt尾部形成新的文件saturday.txt。$catsneakers.txtsaturday.txt$cathome.txtSaturday.txt③将text目录树从stu3用户主目录下移至stu2主目录下。【使用特权用户方法】sumv/home/stu3/text/home/stu26【修改目录权限方法】#cp/home/stu3/text/home/stu2(9)试画出上述命令后,用户stu1、stu2和stu3主目录中的目录树(3棵子树)。2.LinuxC程序开发(1)编写LinuxC程序,把一个文件的内容复制到另一个文件中,即实现简单的copy功能。要求:程序输入的第一个参数是源文件,第二个参数是目标文件。【源程序】#includestdio.h#includestdlib.hintmain(intargc,char*argv[]){FILE*in,*out;charch;if(argc!=3){printf(“Youforgottoenterafilename\n”);exit(0);}if((in=fopen(argv[1],“r”))==NULL){printf(“cannotopeninfile\n”);exit(0);}stu1dir1dir2Saturday.txtstu2dir1dir2textdir1home.txtSaturday.txtSneakers.txtstu3dir1dir2textdir1home.txtSaturday.txtSneakers.txt7if((out=fopen(argv[2],“w”))==NULL){printf(“cannotopenoutfile\n”);exit(0);}while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);【运行命令】#gcc–otestcopy.c#./testfile1.cfile2.c(2)编写LinuxC程序,列出stu2主目录中的文件信息,并将其中saturday.txt文件的权限设置为文件所有者可读可写、同组用户只读、其他用户无权限。【源程序】#includesys/types.h#includedirent.h#includestdio.h#includeerrno.hintmain(intargc,char*argv[]){DIR*dp;structdirent*dirp;intn=0;if(argc!=2){printf(“asingleargmentisrequired”);exit(0);}if((dp=opendir(argv[1]))==NULL){printf(“cannotopen%s”,argv[1]);exit(0);}while(((dirp=readdir(dp))!=NULL)&&(n=50)){if(n%1==0)printf(“”);n++;printf(“%10s\n”,dirp-d_name);}system(“chmod640/home/stu2/text/dir1/saturday.txt”);}【运行命令】#gcc–otestlist.c#./test/home/stu28实验名称:SHELL程序设计实验时间:2013年10月23日第8周星期三一、实验目的1.熟悉Shell脚本编程的步骤,掌握基于Bash的Shell脚本开发。2.掌握Shell脚本中变量、条件测试的使用。3.掌握Shell脚本中的控制流结构和函数的使用。二、实验预习(预备知识的问题及回答)1.Linux系统默认的shell语言是什么?欲查看该shell的版本,应使用什么命令?Linux系统默认的shell语言是Bashshell。欲查看该shell的版本,应使用的命令是:$echo$BASH_VERSION2.预习shell有关变量和参数的相关知识,回答下列问题。(1)假设用户进行了如下的赋值操作:$person=jenny试给出下面命令的输出结果。1)echopersonperson2)echo$personjenny3)echo‘$person’$person4)echo“$person”jenny(2)填充下列与环境变量、位置变量和预定义变量相关的表格。Shell变量定义HOME用于保存用户注册目录的绝对路径PATH保存用冒号分隔的目录路径,shell将按PATH变量中给出的顺序搜索这些目录,找到第一个与命令名一致的可执行文件将被执行。PWD当前工作目录的绝对路径名,该变量取值随cd命令的使用而变化。PS1主提示符,默认特权用户为#,普通用户为$。$0表示当前shell程序的文件名。93.写出下列expr命令的输出:(1)exprindex“value”‘a’(2)expr“value”:‘v.*u’(3)expr“aaa”:‘a\+’(4)expr“aaa”:‘a\?’(5)expr2+3(6)expr2+3(7)expr2\*3(8)expr5+`expr2+3`(9)exprlength“operatingsystem”(10)exprsubstrlinux23答:(1)2(2)4(3)3(4)1(5)2+3(6)5(7)6(8)non-numericargument(9)16(10)inu三、实验内容1.编写Shell脚本,从命令行中接收一个二元算术表达式并计算其结果。【源程序】#!/bin/bashiftest$#=3thencase$2in+)letz=$1+$3;;-)letz=$1-$3;;/)letz=$1/$3;;x|X)letz=$1*$3;;*)echo“Warning-$2invalidoperator!”exit;;esacecho“Answeris$z”elseecho“Usage-$0Value1operatorvalue2”fi【运行】chmoda+xjisuan./jisuan2+3$#表示位置参数的个数。$?表示位置参数的个数。$
本文标题:操作系统实验报告
链接地址:https://www.777doc.com/doc-5919920 .html