扬州大学操作系统实验报告书综述.docx
《扬州大学操作系统实验报告书综述.docx》由会员分享,可在线阅读,更多相关《扬州大学操作系统实验报告书综述.docx(25页珍藏版)》请在冰豆网上搜索。
扬州大学操作系统实验报告书综述扬州大学操作系统实验报告书综述操作系统原理实验报告书班级:
软件1102学号:
姓名:
指导教师:
徐向英2012-2013学年第二学期实验名称:
LINUX用户界面实验时间:
2013年4月9日第6周星期二一、实验目的1,熟悉Linux字符操作界面,熟练掌握常用Shell命令。
2,熟悉Linux文本编辑方法,学会编辑软件VI的使用。
3,了解Linux编译器gcc的功能,掌握基于Linux平台的C程序的开发二、实验预习(预备知识的问题及回答)1为什么在Linux系统中,诸如光盘、U盘等要先挂载而后才能使用?
如何获得U盘的设备名?
装载点在文件系统中的位置是什么?
由于文件系统的差异,Linux在默认情况下并不支持软盘,光盘,U盘,所以需要通过装在相应盘片才可以访问其中的数据装载点是挂载文件系统的目录位置2从虚拟机界面退出进入WindowsOS界面的操作是Ctrl+Alt,从WindowsOS界面进入虚拟机界面的方法是鼠标点击虚拟机界面。
3权限的含义是什么?
如何使用数字法设定文件的权限?
Linux系统中的每个文件和目录都有相应的访问许可权限,访问权限分为只读(r),可写(w)和可执行三种,有三种不同类型的用户可以对文件或者目录进行访问,分别是文件所有者(u),同组用户(g)和其它用户(o)。
所有的文件和目录都被创建他们的人所拥有。
只要你是这个文件的所有者或者你登陆为用户,你就拥有了改变所有者,群组和其他人权限的权利。
使用数字法改变权限:
命令格式chmod权限数值文件名说明给指定文件赋予数值所规定的权限在数字设定法中,每种权限设置均可以用数值来代表,其中0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,这些值之和便可以用来设定特定权限。
4什么过滤操作?
在Linux中如何实现?
过滤操作:
将一个命令的输出作为一个命令的输入Linux实现的命令格式:
命令|命令5在Linux中挂载u盘并能显示其文档的中文信息,所使用的挂载命令是:
Mount/dev/sdal/mnt/usb。
6什么是vi?
其三种操作模式的含义是什么?
给出三种工作模式间的转换图。
命令模式:
vi启动后的默认模式,控制光标的移动,复制删除文字,进入输入模式和末行模式输入模式:
进行文字输入末行模式:
保存文件,退出VI三、实验内容(包含实验所用命令或相关程序源代码)1shell操作命令(给出每题所用的Shell命令或命令结果)
(1)创建名为stu1、stu2的2个用户,设置密码分别为student1和student2,并将它们设为组group1中的成员。
#groupaddgroup1#useraddstu1ggroup1#sustu1Spasswdstu1回车后敲入密码student1$exit#useraddstud2ggroup1#sustu2$passwdstu2$exit
(2)在每个用户的主目录下建立2个目录,分别命名为dir1和dir2。
#sustu1$cd$mkdirdir1$exit#sustu2$cd$mkdirdir2$exit(3)查找stu1用户主目录、下属各子目录的默认存取权限,并给出结论。
#sustu1$cd.$ls-1用户主目录权限为:
drwx-,即目录的用户可读,写,执行,同组和其它的用户无任何权限#sustu$cd$ls-1Dir1目录权限为:
drwxr-xr-x,即目录的用户可读,写,执行(4)调试pwd和cd命令,回答下列关于Linux文件系统中目录的有关问题。
用户主目录的绝对路径如何表示?
/home/stu1/home/stu2根目录如何表示?
/root和分别表示什么目录?
子目录,父目录表示什么目录?
用户主目录当前目录如何表示?
Cd(5)新建用户stu3,设置其密码为student3,并将其设置为group2中成员。
尔后,以stu3登录,在其主目录下建立名为text的目录,在text目录下再建立名为dir1的子目录,并使其成为当前目录。
#groupaddgroup2#useraddstu3ggroup2#sustu3$passwd回车后敲入密码student3$cd$mkdirtext$mkdirdir1$cdtext/dir1(6)使用catsneakers.txt命令,分析命令行catsneakers.txt的显示结果。
$catsneakers.txtbuysomesneakersthengotothecoffeeshopthenbuysomecoffD$catsneakers.txt从键盘中创建一个名为sncakers.txt文件,文件内容为:
buysomesncakersThengotothecoffeeshopThenbuysomecoff(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。
$catcneakers.txtasturday.txt$cathome.txtSaturday.txt将text目录树从stu3用户主目录下移至stu2主目录下。
【使用特权用户方法】sumv/home/stu3/text/home/stu2【修改目录权限方法】#cp/home/stu3/text/home/stu2(9)试画出上述命令后,用户stu1、stu2和stu3主目录中的目录树(3棵子树)。
2LinuxC程序开发
(1)编写LinuxC程序,把一个文件的内容复制到另一个文件中,即实现简单的copy功能。
要求:
程序输入的第一个参数是源文件,第二个参数是目标文件。
【源程序】#include#include#include#includeIntmain(intargc,char*argv)FILE*in,*out;Charch;If(argc!
=3)Printf(“youforgottoenterafilenamen”);Exit(0);If(in=fopen(argv1,”r”)=NULLPrintf(“cannitopenoutfilen”);Exit(0);If(out=fopen(argv2,”w”)=NULLPrntf(“cannotopenoutfile”);Exit(0);While(!
feof(in)fputc(in),out);Fclose(in);Fclose(out);【运行命令】#gccotestcopy.c#./testfile1.cfile2.c
(2)编写LinuxC程序,列出stu2主目录中的文件信息,并将其中saturday.txt文件的权限设置为文件所有者可读可写、同组用户只读、其他用户无权限。
【源程序】#include#include#include#includeIntmain(intargc,char*argv)DIR*dp;Structdirent*dirp;Intn=0;If(arge!
=2)Printf(“asignleargementisrequired”);Exit(0);If(dp=opendir(argv1)=NULL)Printf(“cannotopen%s”,args1);Exit(0);While(dirp=readdir(dp)!
=NULL)&(nd_name);System(“chmod640/home/stu2/text/dir1/Saturday.txt”)【运行命令】#gccotestlist.c#./test.home/stu2实验名称:
SHELL程序设计实验时间:
2013年4月11日第6周星期4一、实验目的熟悉SHELL脚本编程的步骤,掌握基于Bash的Shell脚本开发。
二、实验预习(预备知识的问题及回答)1.Linux系统默认的shell语言是什么?
欲查看该shell的版本,应使用什么命令?
Bashshell$echo$BASH_VERSION2.预习shell有关变量和参数的相关知识,回答下列问题。
(1)假设用户进行了如下的赋值操作:
$person=jenny试给出下面命令的输出结果。
1)echopersonperson2)echo$personjenny3)echo$person$person4)echo“$person”jenny
(2)填充下列与环境变量、位置变量和预定义变量相关的表格。
Shell变量定义HOME保存用户注册目录的绝对路径PATH保存用冒号分割的目录路径PWD当前工作目录的据对路径名PS1主提示符,特权用户为#,普通用户为$0当前shell程序的文件名$#位置参数的个数$?
前一个命令执行后返回的状态$当前进程的PID3写出下列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)exprsubstrlinux2324312+356mon-numericargument16inu三、实验内容1编写Shell脚本,从命令行中接收一个二元算术表达式并计算其结果。
【源程序】#!
/bin/bashIftest$#=3ThenCases2in+)letz=$1+$3;-)letz=$1-$3;/)letz=$1/$3;x|x)letz=$1*$3;*)echo”warning-$2invalidoperator!
”exit;EsacEcho”answerissz”ElseEcho”usage-$0value1operatorvalue2”fi【运行】Chmoda+xjisuan./jisuan2+32编写一个以文件列表作为输入的过滤器程序,要求文件名含有以句点“.”分隔的后缀,过滤器输出每个文件的不带句点和后缀的文件名。
【源程序】ReadflagWhiletest“$flag”DoLocation=expr$location=1Basename=exprsubstr=”$flag”1$locationEcho$basecnameReadflagdone【运行】Chmoda+xletter./letter3将下面的shell脚本命名为myscript,分析其功能:
count=$#cmd=echowhile$countgt0docmd=$cmd$countcount=expr$