Linux程序设计实验报告.doc
47页"Linu*程序设计"实验指导书实验类别:课实验实验课程名称:Linu*程序设计实验室名称:软件工程专业实验室实验课程N03140112 总学时:32 学分: 2 适用专业:软件工程先修课程:Linu*操作系统、C程序设计实验在教学培养方案中地位、作用:通过讲授Linu*的操作使用、系统构造和Linu*环境下的程序设计,使学生对Linu*操作系统获得一个全面的认识和掌握一方面,学生通过学习系统程序设计,能够复习操作系统中的根本概念,对文件管理、进程控制有更深入的理解;另一方面,学生学会在Linu*环境下工作,进一步熟悉C语言程序设计和数据构造的知识,编写进展系统维护的脚本文件和实用化的大型应用程序,如网络应用程序同时,本课程为学生进一步学习其它后续课程〔如高级操作系统、Linu*核源代码分析、嵌入式系统等〕打下根底"Linu*程序设计"实验大纲Linu* Program Design课程类别:学科专业教育课程课程名称:Linu*程序设计开课单位:软件学院课程N03140112总学时:32 学分:2适用专业:软件工程先修课程:程序设计根底一、实验教学目标熟练掌握shell编程、熟练使用linu*系统、掌握进程控制和进程间通信,学会编写网络程序,学会在linu*环境中编写web程序。
养成一种良好的程序设计风格二、实验环境 Linu*三、实验教材及参考书:[1] 实验指导书〔自编讲义〕[2]"Linu*环境C程序设计"徐诚高莹婷等清华大学2021.1[3]"linu*入门到精通"忆智清华大学2021.1四、实验成绩评定方式根据学生在实验过程中的认真程度、上机结果验收情况以及实验报告撰写质量,进展综合评定五、实验工程及学时分配序号实验名称实验类别学时数备注1Linu*根本命令的使用验证型22Shell程序设计设计型23文件操作与文件管理验证型24Linu*下简单C程序设计验证型25进程控制和进程间通信设计型26网络程序设计验证型2六、实验容及要求实验一 Linu*根本命令的使用1、实验目的〔1〕学习和掌握Linu*的根本命令〔2〕增强学生对Linu*的学习兴趣2、实验容〔1〕linu*的登录操作〔2〕常用根本命令的使用实验二 Shell程序设计1、实验目的〔1〕.Shell程序设计中变量的使用;〔2〕.理解通道的概念并初步掌握它的使用方法;〔3〕.掌握算术操作、字符串操作、逻辑操作、文件操作;〔4〕.掌握if then fi、if then elif fi、case、while、for等控制语句;〔5〕.在shell脚本中使用函数;2、实验容〔1〕.通过对shell程序的调试,理解变量$*,$0,$1,$2,$3,$的含义;〔2〕.Shell顺序程序设计;〔3〕.Shell分支程序与多分支程序设计;〔4〕.Shell循环程序设计。
实验三文件操作与文件管理1、实验目的〔1〕.熟悉Linu*下常用的操作指令〔2〕.加深对文件,目录,文件系统等概念的理解〔3〕.掌握Linu*文件系统的目录构造〔4〕.掌握有关Linu*文件系统操作的常用命令〔5〕.了解有关文件平安方面的知识2、实验容Linu*文件系统操作的常用命令实验四 Linu*下简单C程序设计1、实验目的〔1〕学习和掌握gcc等Linu*的开发调试环境〔2〕学会在Linu*下编写C程序2、实验容〔1〕学习GCC编译程序〔2〕学习并分别使用标准C的文件操作函数和Linu*的系统调用创立一个对学生根本信息进展操作〔插入、修改和删除〕的C程序实验五进程控制和进程间通信1、实验目的为了理解和掌握UNI*和Linu*进程通信系统调用的功能,这里给出了进程通信实现机制中使用的系统调用命令的格式和如何利用系统调用命令进展进程通信编程,以便通过学习,提高学生对进程通信系统调用的编程能力2、实验容编写一个有名管道程序一个〔客户〕进程从键盘循环读一系列字符,将这些字符和发送者的pid发给效劳器进程,让其统计输入的是字符还是数字,分别为多少个,完成后再向客户进程发回效劳的结果,由客户进程输出。
实验六网络程序设计1、实验目的〔1〕.理解Socket概念;〔2〕.理解并掌握Socket模型下获得本机IP信息的方法;〔3〕.理解并发效劳器模型,掌握通用套接字开发技术;〔4〕.掌握Linu*平台数据构造的传送方法2、实验容〔1〕.编写获得本机IP信息的程序;〔2〕.编写基于并发效劳器模式的网络通信原型系统;〔3〕.要求至少综合使用到实验目的中提到的三条或三条以上容"Linu*程序设计"实验指导书实验类别:课实验实验课程名称: Linu*程序设计实验室名称:软件工程专业实验室实验课程 N03140112 总学时: 32 学分: 2 适用专业:软件工程先修课程:操作系统、C程序设计实验在教学培养方案中地位、作用:通过讲授Linu*的操作使用、系统构造和Linu*环境下的程序设计,使学生对Linu*操作系统获得一个全面的认识和掌握一方面,学生通过学习系统程序设计,能够复习操作系统中的根本概念,对文件管理、进程控制有更深入的理解;另一方面,学生学会在Linu*环境下工作,进一步熟悉C语言程序设计和数据构造的知识,编写进展系统维护的脚本文件和实用化的大型应用程序,如网络应用程序。
同时,本课程为学生进一步学习其它后续课程〔如高级操作系统、Linu*核源代码分析、嵌入式系统等〕打下根底实验一 Linu*根本命令的使用1、实验目的〔1〕学习和掌握Linu*的根本命令〔2〕增强学生对Linu*的学习兴趣2、实验容〔1〕linu*的登录操作〔2〕常用根本命令的使用3、实验要求〔1〕实验前认真预习实验容,详细了解本实验所涉及到的相关理论知识〔2〕填写完整的实验报告4、实验步骤步骤1:以user_login用户身份并使用telnet登录Linu*效劳器,按照提示创立自己的账户和口令步骤2:使用新创立的用户账户和口令登录Linu*系统,观察登录后的界面步骤3:使用pwd命令观察当前的工作目录,然后用ls命令查看当前目录下的容,尝试使用-a,-l,-F,-A,-lF等不同选项并比拟不同之处步骤4:在当前目录下建立一个名为test的新目录,然后将工作目录切换到test下,尝试将/etc目录下的文件passwd拷贝到该目录下〔cp 源文件目的目录〕观察当前目录下的passwd文件的属主和文件权限步骤5:尝试向当前目录下的passwd文件和/etc/passwd文件分别写入一些新容〔可使用echo "字符串〞 >>文件的命令〕,看看操作能否成功,如果不能成功,请说明原因。
用cat命令浏览文件password的容,用more命令进展浏览翻页操作,再用less命令浏览文件的容比拟这几个命令的不同之处步骤6:用ls命令查看test下文件的权限,用mv命令更改文件password的文件名为test.t*t,尝试用chown和chgrp更改文件的属主为root、组为root,看看能否成功,不成功,请说明原因尝试用chomd将文件权限为"-rw-------〞看看能否成功,不成功,请说明原因步骤7:用rm命令删除test目录下的所有文件,再用rmdir命令删除test目录〔想一想有没有一条命令将目录及目录下的所有文件删除,写出这条命令〕步骤8:使用ps命令查看当前系统的进程,并利用man命令获取ps命令的参数,写出获取当前终端进程执行情况的ps命令步骤9:使用df命令查看当前系统已安装的文件系统的空间使用情况,记录结果步骤10:使用du命令查看用户的工作目录占用了多少空间,记录结果步骤11:使用free命令查看存资源的使用情况,记录结果实验二 Shell程序设计1、实验目的〔1〕.Shell程序设计中变量的使用;〔2〕.理解通道的概念并初步掌握它的使用方法;〔3〕.掌握算术操作、字符串操作、逻辑操作、文件操作;〔4〕.掌握if then fi、if then elif fi、case、while、for等控制语句;〔5〕.在shell脚本中使用函数;2、实验容〔1〕.通过对shell程序的调试,理解变量$*,$0,$1,$2,$3,$的含义;〔2〕.Shell顺序程序设计;〔3〕.Shell分支程序与多分支程序设计;〔4〕.Shell循环程序设计。
3、实验要求〔1〕实验前认真预习实验容,详细了解本实验所涉及到的相关理论知识〔2〕填写完整的实验报告4、实验步骤1 vi的使用步骤1:以root用户身份登录进入Linu* 系统步骤 2:启动Vi,切换到输入模式,输入一段英文:This ia an e*ercise! We use Vi to edit it. Left,down,up,right 步骤3:尝试匹配其中的一串字符,写出这命令及执行结果匹配格式:/正则表达式元字符说明. 匹配任意一个字符[abc] 匹配方括号中的任意一个字符可以使用-表示字符围,如[a-z0-9]匹配小写字母和阿拉伯数字[^abc] 在方括号开头使用^符号,表示匹配除方括号中字符之外的任意字符\d 匹配阿拉伯数字,等同于[0-9]\D 匹配阿拉伯数字之外的任意字符,等同于[^0-9]\* 匹配十六进制数字,等同于[0-9A-Fa-f]\* 匹配十六进制数字之外的任意字符,等同于[^0-9A-Fa-f]\w 匹配单词字母,等同于[0-9A-Za-z_]\W 匹配单词字母之外的任意字符,等同于[^0-9A-Za-z_]\t 匹配
\S 匹配非空白字符,等同于[^ \t]\* 匹配 * 字符\. 匹配 . 字符\/ 匹配 / 字符\\ 匹配 \ 字符\[ 匹配 [ 字符 匹配0-任意个\+ 匹配1-任意个\" 匹配0-1个\{n,m} 匹配n-m个\{n} 匹配n个\{n,} 匹配n-任意个\{,m} 匹配0-m个$ 匹配行尾^ 匹配行首\< 匹配单词词首\> 匹配单词词尾代码:/\w\+\s\+\w\+$/^\w\+\s\+\w\+/ia\s\+步骤4:尝试替换其中的一串字符,写出这命令及执行结果替换命令: :s/正则表达式/替换字符串/选项代码::%s/ia/is 全局替换,%表示全局:1,4s/ia/is 只替换1-4行:s/ia/is 注意当前行的问题,如果在当前行进展替换会出现找不到模式的情况步骤5:尝试复制/删除其中的一行或几行文本,写出命令及执行结果按【Esc】然后输入dd【连续两次】删除一行文本步骤6:尝试复制/删除其中的一个单词或几个字符,写出命令及执行结果按【Esc】将光标移动到要替换的位置然后输入r再输入替换字符将第四行第一个字母。





