黄河科技学院操作系统实验指导书.doc_第1页
黄河科技学院操作系统实验指导书.doc_第2页
黄河科技学院操作系统实验指导书.doc_第3页
黄河科技学院操作系统实验指导书.doc_第4页
黄河科技学院操作系统实验指导书.doc_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机操作系统实验指导书学 院:信息工程学院适用专业:计算机各专业制 定 人:杨 志 武教 研 室:软件工程教研室信息工程学院2009 年 9 月前 言操作系统是计算机的核心和灵魂。操作系统软件的设计对整个计算机的功能和性能起着至关重要的作用,所以此门课也是必不可少的,是面向计算机科学与技术、网络工程、软件工程等大多数计算机专业本科生和研究生开设的一门计算机专业课程。操作系统是计算机系统的核心,操作系统课程是计算机科学与技术专业的重要必修课。本课程的目的是使学生掌握现代计算机操作系统的基本原理、基本设计方法及实现技术,具有分析现行操作系统和设计、开发实际操作系统的基本能力。操作系统实验是操作系统课程的重要组成部分,属于学科基础实验范畴。作为与相关教学内容配合的实践性教学环节,应在操作系统理论课教学过程中开设。操作系统是计算机科学与技术专业必修的专业基础课程,操作系统实验的作用是:理解操作系统的设计和实现思路,掌握典型算法。基本要求是:理解进程的概念,理解死锁,掌握银行家算法;掌握请求页式存储管理的实现原理及页面置换算法。学生应具有高级语言编程能力、具有数据结构等基础知识。III实验要求为了顺利完成操作系统课程实验,学生应做到: (1)实验前,认真学习教材以及实验指导书的相关内容,提前做好实验准备。(2)实验结束一周后提交实验报告。实验报告内容应包括:实验目的、实验内容、设计思路和流程框图,源程序(含注释)清单、测试结果以及实验总结。(3)遵守机房纪律,服从辅导教师指挥,爱护实验设备。(4)实验的验收将分为两个部分:第一部分是上机操作,随机抽查程序运行和即时提问;第二部分是提交书面的实验报告。此外杜绝抄袭现象,一经发现雷同,双方成绩均以0分计算。目 录前 言I实验要求II目 录III实验一 LINUX及其使用环境(一)1实验一 LINUX及其使用环境(二)5实验一 LINUX及其使用环境(三)8实验一 LINUX及其使用环境(四)13实验二 LINUX环境的文本编辑17实验三 Linux系统的shell编程22实验四 LINUX环境下C语言的编译及调试24实验五 LINUX环境下进程管理27实验六 Linux存储管理32实验七 LINUX中的设备加载与卸载35实验八 (LINUX环境下)OS经典算法模拟(一)36实验九 使用Windows 2000/xp注册表屏蔽桌面上的“回收站”41实验十 Linux 文件管理42实验十一(LINUX环境下)OS经典算法模拟(二)45实验一 LINUX及其使用环境(一)LINUX常用命令简介目录操作、系统询问与权限口令实验目的1. 了解Linux的命令及使用格式。2. 熟悉Linux的常用基本命令目录操作、系统询问与权限口令。实验内容1. 熟悉Linux的目录操作命令。2. 熟悉Linux的系统询问命令。3. 熟悉Linux的权限口令。实验预备预习附录一LINUX简介。实验指导1. Linux的登录与退出(1) Linux的登录在Windows2000/XP环境下,点击开始运行,载运新对话框里输入:telnet 主机的IP地址即可使PC作为终端(terminal)登录到Linux服务器(Linux Server).执行格式:telnet hostname(主机名)或 telnet 主机的IP地址例: telnet telnet 00步骤: login: (/输入username。例stu) password: (/输入密码。例1234567)(2) Linux的退出在Linux $提示符下,输入logout、exit或shutdown.例: $ logout2. Linux命令格式命令 选项 处理对象例: ls -la mydir注意:(1) 命令一般采用小写格式(Linux区分大小写)。(2) 选项通常以减号(-)连接一个或数个字符表示,用来选择一个命令的不同操作。(3) 同一行可有数个命令,命令间应以分号隔开。(4) 命令后加上&可使该命令在后台(background)执行。3. 目录操作命令和DOS相似,Linux采用树形目录管理结构,由根目录(/)开始一层一层地将子目录建构下去,各子目录以/个隔开。用户登陆(login)后,工作目录的位置称为“home directory”,由系统管理员设定。符号代表自己的“home directory”,例如:“/myfile”是指自己home目录下myfile这个文件。Linux的通配符有三种:*和?用法与DOS相同,-代表区间内的任一字符,如:test0-5即代表test0、test1、test5的集合。(1) 显示目录文件命令格式:ls -atFlgRname(name可为文件或目录名称)例: ls 显示出当前目录下的文件 ls -a 显示出的所有文件(包含隐藏文件) ls -t 按照文件最后修改时间显示文件 ls -F 显示出当前目录下的文件及其类型 ls -l 显示目录下所有文件的许可权、拥有者、文件大小、修改时间及名称 ls -lg 同上 ls -R 显示出该目录及其子目录下的文件注:ls与其它命令搭配使用可以生出很多技巧(最简单的如“ls l|more”),更多用法请ls help查看,其它命令的更多用法请输入:命令名help 查看。(2) 建新目录命令格式: mkdir directoryName例: mkdir dir1 /创建一个名为dir1的目录(3) 删除目录命令格式: rmdir directoryName 或 rm directoryName例: rmdir dir1 /删除目录dir1,系统禁止删除非空目录。 rm r dir1 /删除目录dir1及其下所有文件及子目录。 rm -rf dir1 /强制删除,不管是否空目录,且不给出提示。(4) 改变工作目录位置命令格式: cd name例:cd /改变目录位置至用户login时的working directorycd dir1 /改变目录位置至dir1目录cd user /改变目录位置至用户的working directorycd . /改变目录位置至当前目录的父目录cd ./user /改变目录位置至上父目录下的user目录cd /dirName1/dirName2 /改变目录位置至绝对路径(full path)cd - /回到进入当前目录前的父目录(5) 显示当前所在目录命令格式:pwd(6) 查看目录大小命令格式: du -s directory例:du dir1 /显示目录dir1及其子目录容量(以kb为单位) du s dir1 /显示目录dir1的总容量(7) 显示环境变量命令格式: echo例: echo $home /显示家目录 Echo $PATH /显示可执行文件搜索路径 Env /显示所有环境变量(可能很多,最好用“env |more”,或“env grep PATH”等)(8) 修改环境变量,在bash下用export,如:export PATH=$PATH:/usr/local/bin关于export 的具体用法,可以用shell的help命令:help export。4. 系统询问与权限口令(1) 查看系统中的使用者命令格式:who(2) 查看用户名命令格式:who am I /查看自己的username(3) 改变自己的username的账号与口令命令格式:su username例: su username /输入账号 password /输入密码第 49 页 共 53 页实验一 LINUX及其使用环境(二)LINUX常用命令简介文件操作实验目的1.了解Linux的文件命令及使用格式。2.熟悉Linux的常用基本命令文件操作。实验内容熟悉Linux的文件操作命令。实验预备预习附录一LINUX简介。实验指导1. 查看文件(可以是二进制文件)的内容命令格式1: cat filename命令格式2: more filename命令格式3: cat filename|more例: cat file1 /已连续显示方式,查看文件file1的内容 more file1 /已分页方式查看文件的内容 cat file1|more /同上2.删除文件命令格式: rm filename例: rm file? rm f*3.复制文件命令格式: cp -r source destination例: cp file1 fiel2 /将文件file1复制到文件file2 cp file1 dir1 /将文件fiel1复制到目录dir1 cp /tmp/file1 /将文件file1复制到当前目录cp /tmp/file1 file2 /将文件file1复制到当前目录下的文件file2cp r dir1 dir2 /(recursive copy)复制整个目录4.移动或更改文件、目录名称命令格式: mv source destination例: mv file1 file2 /将文件fiel1更名为file2 mv file1 dir1 /将文件file1移到目录dir1下 mv dir1 dir2 /将dir1目录更名为dir25比较文件(可以是二进制)或目录的内容命令格式: diff -r name1 name2 例: diff file1 fiel2 /比较fiel1和file2的不同处 diff r dir1 dir2 /比较dir1和dir2的不同处6.文件中字符串的查找命令格式: grep string file例: grep abc file1 /查找并列出串abc所在的整行文字7.文件或命令的路径寻找命令格式1:whereis command /显示命令的路径命令格式2:which command /显示路径及使用者所定义的别名命令格式3:whatis command /显示命令的功能摘要命令格式4:find search path name filename print /搜寻制定路径下某文件的路径命令格式5:locate filename根据系统预先生成的文件/目录数据库(/var/lib/slocate/slocate.db)查找匹配的文件/目录,查找速度很快,如果有刚进行的文件改变而系统未到执行时更新数据库的时间,可以打入updatedb命令,手动更新。8.建立文件或目录的链接命令格式: ln例: ln source target1 /建立source文件(已存在)的硬链接,命名为target1。 ln s source target2 /建立source文件的符号链接,命名为target2。9.文件属性的设置改变文件或目录的读、写、执行的权限。命令格式: chmod -R mode name 其中:-R为递归处理,将指定目录下所有文件及子目录一并予以处理,mode为3-8为数字,是文件/目录读、写、执行权的缩写(r:read,数字代号为“4”,w:write,数字代号为“2”,x:execute,数字代号为“1”)mode: rwx rwx rwx user group other缩写: (u) (g) (o)例: chmod 755 dir1 /将目录dir1设定为任何人皆由读取及执行的权利,但/只有拥有者可做写修改。其中7=4+2+1,5=4+1. chmod 700 file1 /将file1设为拥有者可以读、写和执行 chmod o+x file2 /为file2增加拥有者可执行的权利 chmod g+x file3 /为file3增加组使用者可执行的权利 chmod o-r file4 /为file4除去其他使用者可读取的权利10改变文件或目录所有权命令格式:chown -R username name例: chown user file1 /将文件file1改为user所有 chown R user dir1 /将目录dir1及其下所有文件和子目录改为user所有11. 检查用户所在组的名称命令格式:groups12改变文件或目录的组拥有权命令格式:chgrp -R groupname name例: chgrp vlsi file1 /将文件file1改为vlsi组所有 chgrp R image dir1 /将目录dir1及其下所有文件和子目录改为image群组13. 改变文件或目录的最后修改时间命令格式: touch name实验一 LINUX及其使用环境(三)LINUX常用命令简介进程操作实验目的1.了解Linux的文件命令及使用格式。2.熟悉Linux的常用基本命令进程操作。实验内容熟悉Linux的进程操作命令。实验预备预习附录一LINUX简介。实验指导1. 查看系统当前的进程命令格式:ps -aux例: ps 或ps x /查看系统中属于自己的进程 ps au /查看系统中所有使用者的进程 ps aux /查看系统中包含系统内部及所有使用者的进程 ps aux|grep apache /找出系统中运行的所有名称中带有“apache”串的进程2. 查看正在后台(background)中运行的进程命令格式: jobs3结束或终止进程命令格式:kill -9 PID /PID为利用ps命令所查处的进程的ID例:kill 456 或 kill -9 456 /终止进程ID为456的进程3. 在后台(background)执行process command的命令命令格式:command & /在命令后加上&,例: gcc file1 & /在后台编译file1.c注意:按下Z,暂停正在执行的进程。键入“bg”,将所暂停的进程置入background继续执行。例: gcc file1 & Zstoppedbg5结束或终止在background中的进程命令格式: kill %n例: kill %1 /终止在background中的第一个job Kill %2 /终止在background中的第二个job6.显示系统中程序的执行状态例: top q /不断更新、显示系统程序的执行状态第一行显示的项目依次为:当前时间、系统启动时间、当前系统登录用户数目、平均负载。第二行显示进程的情况,依次为:进程总数、休眠进程数、运行进程数、僵死进程数、终止进程数。第三行为CPU状态,依次为:用户占用、系统占用、有限进程占用、闲置进程占用。第四行为内存状态,依次为:平均可用内存、已用内存、空闲内存、共享内存、缓存使用内存。第五行为交换状态,依次为:平均可用交换容量、已用容量、闲置容量、高速缓存容量。PID 每个进程的ID。PPID每个进程的父进程IDUID每个进程所有者的用户IDUSER每个进程所有者的用户名PRI每个进程的优先级别NI该进程的优先级值SIZE该进程的代码大小加上数据大小再加上堆栈空间大小的总数,单位是KB.TSIZE该进程的代码大小,对于内核进程这是一个很奇怪的值。DSIZE数据和堆栈的大小。TRS文本驻留大小。D被标记为“不干净”的页项目。LIB使用的库页大小,对于ELF进程没有作用。RSS该进程占用的物理内存总数量,单位为KBSHARE该进程使用共享内存的数量。STAT该进程自启动以来所占用的总CPU时间,如果进入的是累计模式,那么该时间还包括这个进程子进程所占用的时间,且标题会变成CTIME。%CPU该进程自最近一次刷新以来所占用的CPU时间和总时间的百分比。%MEM该进程占用的物理内存占总内存的百分比。COMMAND该进程的命令名称,如果一行显示不下,则会进行截取,内存中的进程会有一个完整的命令行。按“C”停止查看。7以树状图显示执行的程序命令格式: pstree例: pstree h /列出进程树并高亮标出当前执行的程序。8监视虚拟内存命令格式:vmstatvmstat对系统的虚拟内存、进程、CPU活动进行监视,同时它也对磁盘和forks和vforks操作的个数进行汇总。不足的是:vmstat不能对某个进程进行深入分析,它仅对系统的整体情况进行分析。例如:angelhome/angel#vmstatprocs memory swap io system cpur b w swpd free buff cache si so bi bo in cs us sy id0 0 0 7180 1852 56092 48400 0 0 6 5 24 8 0 0 18其中:Procsr:等待运行的进程数,b:处于非中断睡眠状态的进程数,w:被交换出去的可运行进程数。Memoryswpd:虚拟内存使用情况,单位为KB,free:空闲的内存,单位为KB,buff:被用做缓存的内存数,单位为KB。Swapsi:从磁盘交换到内存的交换页数量,单位为KB/秒,so:从内存交换到磁盘的交换页数量,单位为KB/秒,IObi:发送到块设备的块数,单位为块/秒,bo:从块设备接收到的块数,单位为块/秒。Systemin:美妙的中断数,包括时钟中断;cs:每秒的环境(上下文)切换次数CPU(按CPU的总使用百分比显示)us:CPU使用时间;sy:CPU系统使用时间;id:闲置时间。9分析共享内存、信号量和消息队列命令格式: ipcs相关命令: ipcrm /用于给有权限的用户清除这些量,注意不要乱清除,除非该量确实失效了。例:angelhome/angel#ipcsShared Memory Segmentskey shmid owner perms bytes nattch status0x00280267 0 root 644 1048576 10x61715f01 1 root 666 32000 330x00000000 2 nobody 600 92164 11 destSamephore Arrayskey semid owner perms nsems status0x00280269 0 root 666 140x61715f02 257 root 777 1Message Queueskey msqid owner perms used-bytes messages10监视用户空间程序发出的全部系统调用strace还能显示调用的参数,以及用符号方式表示的返回值。strace从内核中接受信息,所以一个程序无论是否按调试方式编译(gcc -g)或是否被去掉了调试信息,都可以被跟踪。命令格式: strace -tTeo executable-program-name -t /用来显示调用发生的时间 -T /显示调用花费的时间 -e /限定被跟踪的调用类型 -o /将输出重定向到一个文件中类似命令: ltrace -fiS executable-program-name实验一 LINUX及其使用环境(四)LINUX常用命令简介通信、I/O及其它操作实验目的1. 了解Linux的文件命令及使用格式。2. 熟悉Linux的常用基本命令通信类操作。3. 熟悉Linux的常用基本命令I/O操作。4. 熟悉Linux的常用基本命令其它操作实验内容熟悉Linux的通信类、I/O记其它操作命令。实验预备预习附录一LINUX简介。实验指导1 本地工作站语LINUX服务期间的文件传输命令格式: ftp 主机名 或: ftp 主机的IP地址后续执行步骤:name: /输入账号password /输入密码ftphelp /显示ftp可使用的所有命令ftplcd dir1 /改变本地机当前目录为dir1ftpget file1 /将Linux服务器文件file1拷贝到本地机ftpput file2 /将本地文件file2拷贝到Linux服务器ftp!ls /显示本地机当前目录下的所有文件ftp!pwd /显示本地机当前所在目录下的所有文件ftpls /显示LINUX服务器当前目录下所有文件ftpdir /显示服务器当前目录下所有文件(略同于LINUX的ls /-l命令)ftppwd /显示LINUX服务器当前所有目录位置ftpcd dir1 /更改LINUX服务器的目录至dir1ftpmget *.c /将服务器中.c文件拷贝到本地机中ftpmput *.txt /将所有.txt文件拷贝到服务器ftpquit /结束ftp工作ftpbye /结束ftp工作2.检查与LINUX服务器连接是否正常命令格式: ping hostname或: ping IP-Address例: ping 3.将文件当做Email的内容送出命令格式: mail s “Subject-string” usernameaddressfilename例: mail s “program” userfile.c功能:将file.c当做mail的内容,送至user,subject name为program4.传送Email给本地LINUX服务器上的用户命令格式: mail username5.读取信件命令格式: mail6.列出套接字使用情况命令格式: socklist7查看网络连接命令格式:netstat8.管道(pipe-line)的使用命令格式: commang1|commang2功能: 将command1的执行结果送到command2作为输出。例: ls R1|more /已分页方式列出当前目录文件及子目录名称 cat file|more /以分页方式列出file1的内容9标准输入控制命令格式: command-linefile /将file作为command-line的输入例: mail s “mail test”.twfile1功能:将文件file1当作信件的内容,subject名称为mail test送给收信人10标准输出控制命令格式1: commandfilename功能:将command的执行结果送至指定的filename中。例: ls llist /将执行“ls -l”的结果写入文件list中命令格式2: command!filename功能:同上,若filename文件已存在,则强迫重写。命令格式3: command&filename功能:将command执行所产生的任何信息写入filename。命令格式4: commandfilename功能:将command的执行结果,附加(append)到filename.命令格式5: command&filename功能:将command执行所产生的任何信息附加于filename中。11其它常用命令(1)在线帮助命令:man命令格式: man command例: man ls /查询ls这个命令的用法(2)设定命令记录表长度:history命令格式1:set history=n例: set history=40功能:设定命令记录表长度为40(可记载执行过的前面40个命令)命令格式2: history /查看命令记录表的内容(3)显示说明:info命令格式: info command-name例: info gcc功能:查看gcc的说明,按山下箭头选定菜单,回车进入,“u”键返回上级菜单。Info不加参数则进入最上一级菜单。12用cat命令查看/proc动态文件系统目录下的文件,辨识其中的系统信息例: cat interrupts /列出当前中断占用情况 cat ioports /列出设备的硬件I/O占用情况 cat pci /列出pci设备的情况 实验二 LINUX环境的文本编辑Vi编辑器的使用实验目的1. 复习C语言程序设计基本知识2了解Linux的Vi编辑器。3. 熟悉Linux的Vi编辑器的使用。实验内容熟悉Linux的Vi编辑器,并利用它编辑一个 *.c文件。实验预备预习附录一LINUX简介。实验指导Vi编辑器是在Linux上广泛使用的中英文编辑软件。Vi是visual editor的缩写,是Linux提供给用户的一个窗口化编辑环境。进入Vi,直接执行Vi编辑程序即可。例:$Vi test.c显示器出现Vi的编辑窗口,同时Vi会将文件复制一份至缓冲区(buffer)。Vi先对缓冲区的文件进行编辑,保留在磁盘中的文件则不变。编辑完成后,使用者可决定是否要取代原来的文件。1.Vi的工作模式Vi提供二种工作模式:输入模式(Insert mode)和命令模式(command mode)。使用者进入Vi后,基础在命令模式下,此刻键入的任何字符皆被视为命令,可进行删除、修改、存盘等操作。要输入信息,应转换到输入模式。(1)命令模式在输入模式下,按ESC可切换到命令模式。命令模式下,可选用下列指令离开Vi,:q! /离开Vi,并放弃在缓冲区内刚编辑的内容:wq /将缓冲区内的资料写入磁盘中,并离开Vi:ZZ /同wq:x /同wq:w /将缓冲区内的资料写入磁盘中,但不离开Vi:q /离开Vi,若文件被修改过,则要求确认是否放弃修改的内容,/此指令可与:w配合使用。(2)命令模式下光标的移动H /左移一个字符J /下移一个字符K /上移一个字符L /右移一个字符O /移至该行行首$ /移至该行行末 /移至该行的首字符处H /移至窗口的首列M /移至窗口中间列L /移至窗口的末列G /移至该文件的末列W,W /下一个单词(w忽略标点)B,B /上一个单词(B忽略标点)+ /移至下一列的首字符处- /移至上一列的首字符处( /移至该句首) /移至该句末 /移至该段首 /移至该段末NG /移至该文件的第n列N+ /移至光标位置之后第n列n- /移至光标位置之前第n列Ctrl-d /向下半页Ctrl-f /向下一页Ctrl-u /向上半页Ctrl-b /向上一页(3)输入模式输入以下命令即可进入Vi输入模式a(append) /在光标之后加入资料A /在该行之末加入资料i(insert) /在该行之前加入资料I /在该行之首加入资料o(open) /新增一行于该行之下,/供输入资料用O /新增一行于该行之上/供输入资料用Dd /删除当前光标所在行X /删除当前光标字符X /删除当前光标之前字符U /撤销. /重做F /查找S /替换,例如:将文件中的所 /有“FOX”换成“duck”,用/“:%/FOX/duck/g”ESC /离开输入模式更多用法见info Vi实验作业(1)完成下面C语言程序的编辑工作。该程序是一个内存调度算法的模拟程序,但其中的FIFO和LRU子函数被省略,由同学们自行完成。/*现定义数据结构和全局变量。*/#include #include #define M 4 #define N 17 #define Myprintf printf(|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|n)/*表格控制*/ typedef struct page int num;/*记录页面号*/ int time;/*记录调入内存时间*/ Page;/* 页面逻辑结构,结构为方便算法实现设计*/ Page bM;/*内存单元数*/ int cMN;/*暂保存内存当前的状态:缓冲区*/ int queue100;/*记录调入队列*/ int K;/*调入队列计数变量*/ /*初始化内存单元、缓冲区*/ void Init(Page *b,int cMN) int i,j; for(i=0;iN;i+) bi.num=-1; bi.time=N-i-1; for(i=0;iM;i+) for(j=0;jN;j+) cij=-1; /*取得在内存中停留最久的页面,默认状态下为最早调入的页面*/ int GetMax(Page *b) int i; int max=-1; int tag=0; for(i=0;imax) max=bi.time; tag=i; return tag; /*判断页面是否已在内存中*/ intEquation(int fold,Page *b) int i; for(i=0;i=0) bval.time=0; for(i=0;iM;i+) if (i!=val) bi.time+; else queue+K=fold;/*记录调入页面*/ val=GetMax(b); bval.num=fold; bval.time=0; for(i=0;iM;i+) if (i!=val) bi.time+; /*FIFO与OPT的算法描述省略。*/*主程序*/ void main() int aN=1,0,1,0,2,4,1,0,0,8,7,5,4,3,2,3,4; int i,j; start: K=-1; Init(b, c); for(i=0;iN;i+) Lru(ai,b); c0i=ai; /*记录当前的内存单元中的页面*/ for(j=0;jM;j+) cji=bj.num; /*结果输出*/ printf(内存状态为:n); Myprintf; for(j=0;jN;j+) printf(|%2d ,aj); printf(|n); Myprintf; for(i=0;iM;i+) for(j=0;jN;j+) if(cij=-1) printf(|%2c ,32); else printf(|%2d ,cij); printf(|n); Myprintf; printf(n调入队列为:); for(i=0;iK+1;i+) printf(%3d,queuei); printf(n缺页次数为:%6dn缺页率:%16.6f,K+1,(float)(K+1)/N); printf(nAre you continuing!ty?); if(getche()=y) goto start; (2)列出Vi的其他用法(至少5种)实验三 Linux系统的shell编程实验目的1学习和掌握Linux系统的脚本和脚本中使用的变量。2学习和掌握shell的编程方法和shell的运行环境及程序调试。实验内容1Linux操作系统,Vi文本编辑器。2熟悉shell的种类及基本功能。3熟练掌握shell的环境变量和shell的控制结构,能编写shell程序。实验指导实例1 linux命令参数的练习。(sys31)#ex6:shell script to demostrate the shift commandecho $0 $1 $2 $3 $4 $5 $6 $7 $8 $9shiftecho $0 $1 $2 $3 $4 $5 $6 $7 $8 $9shift 4echo $0 $1 $2 $3 $4 $5 $6 $7 $8 $9#end实例2 实现字符串的翻转。(sys32)echo original order is : $*for i in $*do j=$i $jdoneecho reverse order is: $j实例3 完成一个简单的菜单。(sys33)#name: shortmenu#purpose: allow user to print a file, delete a file or quit the program#display menuecho please choose either P,D or Qecho Print a fileecho Delete a fileecho Quit the program#get uses selection read sele case $sele in P|p) echo name of file to print?read filename cat $filename; D|d) echo name of file to delete?read filename rm $filename; *) echo quit now;esac实例4.用户输入一个参数,程序判断这个参数是数字,小写字母,大写字母还是特殊字符。(sys34)#!/bin/bash#classify a characterif test $# -ne 1then echo you must enter a argument exit 1fi char=$1numchar=echo $char|wc -cif test $numchar -ne 2 then echo the argument must be a single character exitficase $char in 0-9) echo digit;a-z) echo letter; *) echo special character;esac实验习题1.编写一个shell程序,要求用户输入一串字符。并写入一个文件,文件名由用户输入。2.编写一个程序处理C程序,完成从编译到生成可执行文件的过程。要求:1)判断用户输入的文件名是否存在,若不存在,则给出提示。2)如果编译或连接出错,则将错误信息分别存入出错文件。3)编译或连接出错后,提示是否要修改源程序,若同意则启动vi编辑器,进入修改状态。4)界面友好,使用方便。实验四 LINUX环境下C语言的编译及调试GNU C编译器的使用实验目的1. 复习C语言程序设计基本知识2了解Linux的Vi编辑器。3. 熟悉Linux的Vi编辑器的使用。4练习使用LINUX的GNU C编译器。实验内容熟悉Linux的Vi编辑器,并利用它编辑一个简单的.c程序。然后利用GNU C编译器编译该程序,运行并记录运行结果。实验指导LINUX上的GNU C编辑器(GCC)是一个全功能的ANSI C兼容编译器,而一般LINUX(如SCO LINUX)用的是CC编辑器1使用GCC通常GCC后跟一些选项和文件名来使用该编辑器。命令行选项指定编译过程中的具体操作。GCC命令的基本命令格式如下:gcc options filename2GCC的常用选项GCC有超过100个编译选项可供选用,但其中只用一部分经常用到,其它的大部分可能永远不会使用。很多GCC选项高扩一个以上的字符,因此必须为每个选项指定各自的连字符,并且像大多数LINUX命令一样不能在一个单独的连字符后跟一组选项。例如,下面的命令是不同的:gcc p-g test.c /gcc pg test.c第一条命令告诉GCC编译test.c时为prof命令建立剖析(pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论