2023年Linu实验报告.pdf
《2023年Linu实验报告.pdf》由会员分享,可在线阅读,更多相关《2023年Linu实验报告.pdf(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、*M林电孑科被火片GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGYLinux应用实践课程设计报告学 院:专 业:姓 名:学 号:指导教师:王宇又年月日摘要L i n u x 诞 生 于 199 1 年,是一个自由的,免费的,源码开放的操作系统。也是开源软件中最著名的例子.其最重要的目的就是为了建立不受任何商品化软件版权制约的,全世界都能使用的类U nix兼容产品.而我们将服务器部署在L i n u x 将会更加的稳定、安全、高效以及杰出的性能。目前国内越来越多的服务器应用也开始转向lin u x 平台,学习并掌握如何使用1 i nux对计算机相关专业的学生来
2、说具有重大的意义。关键词:1 in ux,shell,gcc目录1 .前言.12 .需求分析1。2.1 课程设计重要任务.12 .2 开 发 环 境 1。2.3 相 关 工 具 的 的 介 绍 与 使 用。13 .程序设计2,3.1 概要设计.23.1.1 s h e l l 9题 目分析.23.1.2 s y s t e m 6 题目分析.33.1.3 s y s t e m 7 题 目分析.33.2 具体设计.33.2.1 s h e l l 9 过程设计.33.2.2 s y s t e m 6 过程设计4。3.2.3 s y s t e m 7 过程设计7。4.代码测试与分析7。4 .
3、1 s h e l l 9 测试与分析.74.2 s y s t e m 6 测试与分析.84.3 s y s t em 7 测试与分析.8参考文献9。心得体会.10附录1”1 .前言本 次 l i n u x 应用实践课程设计通过在1 i n u x系统下完毕s h e l l 编程和s y s t e m 编程,提高 对 l i n u x 系统使用的纯熟限度,培养以及锻炼自己的动手学习能力。通过完毕课程设计内容,让自己可以对l i n u x 拥有更加进一步的了解。由于基础知识欠缺,本次课程设计所涉及的内容较为基础,同时也有助于初学者理解和自己以后的回顾。在这次课程设计中,完毕了 l i
4、 n u x s h e l1 程序设计与s y s t e m 程序设计,通过简朴的程序设计掌握基础的s h e 1 1 编程以及g c c 的使用。2.需求分析2.1 课程设计重要任务根据课程设计任务列表,选 取 一 个 s h ell编程题目和两个系统编程题目(题目编号之和=1 5 )o本人选取的题目为为s h e l l 9,s y s t e m 6,s y s t e m 7。2.2 开发环境本次课程设计使用l i n u x 操作系统,s h e 1 1 采用的为b a s h,同时使用v i m 文本编辑工具编写代码,使用g c c 编译。各软件版本号如下:操作系统:o c e
5、 n t o s 7.2B a s h:8 4.2.4 6g c c :4.8.5v i m:o 7.42.3 相关工具的的介绍与使用 l i n u x 操作系统本次使用的1 inux操作系统为cent o s 7.2,是一个流行的linux发行版本,使用的内核版本为3.1 0.0。在本次课程设计中,操作系统版本没有具体规定,只要使用1 in u x 内核的操作系统都是可行的,建议将系统安装到虚拟机。b ashbas h(GNU Bo u r n e-Again S h e ll)是大多数Linux系统默认的s h e ll,它能运营于大多数类Unix风格的操作系统之上。1 i nu x 系
6、统上都尚有其他的S h e ll,例如tcsh、csh、ash、bsh、k sh 等等。she 1 1脚本文献大体都类同,使用的方法为在终端使用命令 b a sh fi 1ename”执 行 s h e ll脚本文献,或者在脚本文献首行添加“划/bin/b a s h ,再给脚本文献添加执行权限后执行sh e ll脚本文献。gc c通常所说的G C C 是 GUN Comp i ler C o lle c t i o n 的简称,除了编译程序之外,它还含其他相关工具,所以它能把易于人类使用的高级语言编写的源代码构建成计算机可以直接执行的二进制代码。g c c 的编译过程通常包含了四个环节,分别
7、为预解决编译一 汇编一 链接四步。可以通过如下指令来编译出一个可执行文献:gcc filenam e,c此命令执行完后会生成一个a.o u t的可执行文献。同时也可以指定生成的可执行文献名,命令如下:gcc file n ame.c-o f i lename.out此命令执行完后会生产一个名为f il e name.o u t的可执行文献。g c c 尚有许多命令,具体部分不是本文所讨论的内容。vimV i 命令是U N I X 操作系统和类U N I X 操作系统中最通用的全屏幕纯文本编辑器。L i nu x 中的v i 编辑器叫v i m,它是v i 的增强版(v i I m p rove
8、d),与 v i 编辑器完全兼容,并且实现了很多增强功能。v i 编辑器支持编辑模式和命令模式,编辑模式下可以完毕文本的编辑功能,命令模式下可以完毕对文献的操作命令,要对的使用v i 编辑器就必须纯熟掌握着两种模式的切换。3.程序设计3 .1概要设计3.1.1 shell 9题目分析问题描述:编写一个s h e l l 脚本e x 9.s h,根据键盘输入的值,给出相应的提醒输出;输 入 A -Z ,输出 U p p e r c a s e Le t t e r;输入 a-z ,输出 Lo w e r c a s e Le t t e r;输入 0 9 ,输出 D ig i t;输入其他,输出
9、 P u n c t u a t i o n,w h i t e s p a c e,o r o t h e r。算法分析:可以使用b a s h s h e 1 1中的r e a d命令接受键盘的输入,得到输入后,r e a d 命令将数据放入一个标准变量中。通过g r e p命令使用正则表达式对变量的值进行内容匹配,若匹配出大写字母则使用e c h o命令输出U p p e r c a s e L e t t e r,同理若匹配出小写或数字则输出相应的内容。3.1.2 s y s tem6 题目分析问题描述:一方面建立一个守护进程,然后让该守护进程每隔1 0 s在/tm p/d am e。
10、n.1 o g 中写入一句话。算法分析:一方面用fork()函数建立一个子进程,建立成功后退出父进程,使 用 s e t s i d()函数在子进程中创建新会话,使子进程摆脱其他进程的影响。再改变当前目录为根目录,避免在运营过程中对文献系统操作时产生的诸多麻烦。重设文献权限掩码,增强守护进程的灵活性。然后关闭从父进程中继承的文献描述符。做完以上环节后,在子进程中使用。pen()函数打开/t mp/dame。n.Io g 文献,使用s 1 e e p()函数每隔1 0 秒用w r i t e()函数向文献中写入一句话。3.1.3 system 7题目分析问题描述:在 tm p 目录下调用。pen
11、。函数,以可读可写的方式创建he 1 l o.c 文献。o p e n 函数带有 3 个 f la g 参数:O_CREATE、O_TRUNC,0_WRONLY,文献权限设立为 0 6 0 0。算法分析:使用ch d ir将当前目录改为t mp目录,使用o p e n()函数打开he 1 lo.c 文献,同时带上3个 flag 参数:O_CRE A TE、OJTRUNC、O_W R0NLY,文献权限设立为 0600。3.2具体设计3.2.1 shell 9 过程设计关键代码:r e a d aw h i l e t r u ed oi f e c h o$a|g r e p -q 10-9 a
12、 -z A-Z ;t h e no e c h o P u n c t u a t i o n ,w h i t e s p a c e,o r o t h e r”;f ii f e c h o$a|g r e p -q 5 A Z ;thene c h o U p p e r c a s e L e t t e r”f ir e a d ad o n e过程分析:使用r e a d 命令从命令行中接受键盘的输入,将接受到的数据赋值给变量a,使用e c h o 将变量 a的值通过管道传递到g r e p 命令,使用g r e p 命令对接受到的值进行匹配,使 用 i f 根据值的类型输出相应
13、的提醒,若是大写字母则输出 U p p e r c a s e L e t t e r”,小写字母则输出 L o w e r c a s eL e t t e r,数字则输出D i g i t ,若都不是则输出“P u n c t u a t i o n,w h i t e s p a c e,o ro t h e r n o最后通过w h i 1 e 循环不断地反复输入检测的过程。此处使用的r e a d命令为b a s h自带的命令,功能为接受键盘输入并赋值给变量。同样e c h o是b a s h中的输出命令,用以在命令行中进行输出显示。“I”符号为Linux中的管道符号,它能解决经由前
14、面一个指令传出的对的输出信息,然后将其传递给下一个命令,作为标准的输入。这里就是将变量a的值传递给g r e p命令,作为g r e p的输入。其中,g r e p命令是1 i n u x系统中一种强大的搜索工具,它能使用正则表达式搜索文本,并把匹配的行输出出来。由于g r e p命令默认将匹配出来的行输出,所以在上述代码中使用了-q参数,用于防止向命令行输出。在g r e p命令后的是正则表达式,A-Z用于匹配大写字母,a-z用于匹配小写字母,0-9 用于匹配数字,厂0-9 a-z AZ 用于进行非字母和数字的匹配。3.2.2 s y stem 6 过程设计关键代码:p c=fork();i
15、f(p c 0)ex it(0):setsid();c h di r(/);u m a s k(0 );for(i=0;i MAXF I LE;i+)cl o s e(i );w h i le(l)if(fd=open(/t m p/d a m e o n.I o g z z,0 CRE AT|0 WRONLYlO APPE ND,0 60 0)0).w r i t e(fd,str,len+1 );clos e(fd);sleep(10);)过程分析:一方面使用fork()函数新建一个子进程,若失败则输犯错误提醒并退出程序,成功则将使用e x i t()函数将父进程退出,此时子进程变成一个孤
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 Linu 实验 报告
限制150内