Linux操作系统课程设计.docx_第1页
Linux操作系统课程设计.docx_第2页
Linux操作系统课程设计.docx_第3页
Linux操作系统课程设计.docx_第4页
Linux操作系统课程设计.docx_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

课 程 设 计 报 告课程名称 Linux操作系统课程设计 指导教师 起止日期 2016-03-21 至 2016-06-13 学 院 信息与通信工程学院 专 业 电子信息工程 学生姓名 班级/学号 成 绩 指导老师签字 1. 课程设计概述课程编号:0BS17101课程性质:专业基础课,必修适用专业:电子信息工程学时数:16学分:1指导教师:段中钰1.1 课程设计的目的Linux操作系统课程是电信专业的一门重要的专业基础课。本课程设计是Linux操作系统课程在实践教学环节上的必要补充。本课程设计包含了一组综合设计实验,其目的是通过实践加深学生对操作系统原理的理解,提高综合运用Linux系统解决实际问题的能力。1.2 课程设计的内容本课程设计的内容与理论课程讲授的内容相配合,同步进行。在我们掌握Linux基本知识的基础上,通过相应的实验内容来加深对所学知识的理解,提高实际应用能力。除了理论课程已经学习过的内容之外,课程设计还包含了部分新的知识内容,以煅炼我们自行学习和研究的能力。这部分需要我们通过查阅man手册、教材、以及互联网上的资料等自行学习。 课程设计分为如下3个题目:1. Linux基本操作:利用Shell命令进行文件处理和C编程等基本操作,目的是熟悉基于命令的Linux操作方式,加深对命令的理解。2. Linux进程控制:利用进程控制相关的系统调用编程进行进程控制实验,观察进程从创建、运行到终止的控制过程,加深对进程概念的理解。3. Linux Shell程序设计:利用Shell语言编写脚本实现综合应用,提高Linux应用水平。本次为实验一1.3 设计原理本实验的目的是使学生理解Shell程序的执行环境和执行过程,掌握Shell语言的一般语法规则,能用bash编写简单的shell程序。实验用时5学时,其中讲解2学时,上机3学时。上机内容包括: l 编写一个shell脚本routine,实现日程提醒功能;l 编写一个shell脚本makememo,实现备忘录管理功能;l (选作)修改脚本,改进或增加新的功能。2. 实验步骤按以下步骤进行实验,记录关键步骤的运行结果。2.1 基本操作(本实验在/2014010923/exp3/目录下进行。)2.1.1 编辑备忘录在exp3目录下,编辑一个备忘录文件memo,其中的每行为一项日程安排,格式是:yyyy-mm-dd 日程提示以下是一个memo文件的例子:2014-06-03 mothers birthday2014-06-08 lunch with joe2014-06-12 call zhang2014-06-14 meeting 4pm2014-06-15 shopping with mary 2.1.2 编写日程提醒脚本在exp3目录下编写一个Shell脚本routine,完成以下功能:2.1.2.1 显示初启信息脚本启动时首先输出一些初始信息,包括程序名称与编者、当前的日期与时间、适当的问候语等,格式自定。例如:* routine v1.0 by your-sid *Good Evening!用户名Today is Tue Mar 12 19:25:30 CST 2014提示:根据当前时间显示问候语的方法参考教材例10.48,当前用户名是$USER(echo $USER),当前日期时间用date命令求出(echo Today is date)。 图 12.1.2.2 提醒用户当日的日程安排查询备忘录文件memo,显示今日的日程安排(如果有的话)。可参考实验方法说明1)。2.1.3 运行脚本2.1.3.1 执行脚本为routine脚本设置执行权(chmod 755 routine),运行routine脚本(./routine),调试并检查运行结果。提示:变换memo文件内容,检查日程提示是否正确。图 22.1.3.2 自动执行脚本编辑主目录下的.bashrc文件,将/your-sid/exp3/routine命令行加到文件末尾(注意将your-sid替换为你的学号)。重新启动“终端”,检查脚本是否能成功地自动执行。 图 32.1.4 编写备忘录管理脚本在exp3目录下编写一个Shell脚本makememo,完成以下功能:2.1.4.1 显示初启信息及菜单显示程序初启信息(程序名、编者学号等信息),显示程序的菜单,例如:makememo v1.0 by your-sid* MENU *1. xxxxx2. xxxx3. xxxxxx4. *2.1.4.2 接收并处理用户的输入根据用户的输入的菜单编号,执行相应的功能。2.1.5 运行脚本运行./makememo,调试并检查运行结果。图 4图 52.1.6 (选做)修改脚本修改routine和/或makememo脚本,改进或添加功能。可做的修改包括改善界面,增加查询功能(如查询某日或某月的日程安排),完善添加与删除功能(如增加对输入错误的处理),以及其他你认为可以做的改进。 图 6实验结论与评价这次课设实验很有意思,我学会了如何使用简单的linux编写shall程序,使用字符串比较命令时一定要注意格式一致。定义文件路径时必须与实际文件路径一致。3. 程序清单3.1 routine echo *routine v1.0 by 2014010923*hour=date +%Hcase $hour in08|09|10|11|12) echo Good Morning!$USER;13|14|15|16|17) echo Good Afternoon!$USER;18|19|20|21|22) echo Good Evening!$USER; *) echo Hello!$USER;esacecho Today is dateecho -n memo:day=date +%Fgrep $day $HOME/2014010923/exp3/memo | echo Nothing.3.2 makememo#!/bin/bashecho makememo v1.0 by 2014010923MEMOFILE=$HOME/2014010923/exp3/memoadd_memo() echo -n 输入要添加的日程项:read itemecho $item $MEMOFILEsort -o $MEMOFILE $MEMOFILEecho 日程添加以完成del_by_date() echo -n 输入要删除的日程项(dd/mm/yy):read itemsed -i /$item/d $MEMOFILEecho 日程删除完成del_by_num()set wc -l $MEMOFILEecho -n 输入要删除的日程项编号(1-$1):read numsed -i $numd $MEMOFILEecho 日程删除以完成print_menu() echo * MENU * echo 1. 显示日程 2. 添加日程 echo 3. 删除日程(按日期) 4. 删除日程(按序号) echo 5. 显示菜单 6. 退出 echo *print_menuwhile truedo echo -n 输入操作选择(1-6): read choice case $choice in 1) cat -n $MEMOFILE; 2) add_memo; 3) del_by_date; 4) del_by_num; 5) print_menu; 6) echo Bye!; break; *) echo Illegal Option; esac done3.3 makememo(选作)#!/bin/bashecho makememo v1.0 by 2014010923MEMOFILE=$HOME/2014010923/exp3/memoadd_memo() echo -n 输入要添加的日程项:read itemecho $item $MEMOFILEsort -o $MEMOFILE $MEMOFILEecho 日程添加以完成del_by_date() echo -n 输入要删除的日程项(yyyy-mm-dd):read itemsed -i /$item/d $MEMOFILEecho 日程删除完成del_by_num()set wc -l $MEMOFILEecho -n 输入要删除的日程项编号(1-$1):read numsed -i $numd $MEMOFILEecho 日程删除以完成print_menu() echo * MENU * echo 1. 显示日程 2. 添加日程 echo 3. 删除日程(按日期) 4. 删除日程(按序号) echo 5. 显示菜单 6. 查询日程 echo 7. 退出 echo *chaxun()echo 请输入您所要查询日程的日期!(yyyy-mm-dd):read mydayif grep -q $myday $MEMOFILE then echo -日程查询- sed -n /$myday/p $MEMOFILE echo 日程查询已完成 echo - else echo -日程查询- echo $myday 没有日程! echo 谢谢! echo - fiprint_menuwhile truedo echo -n 输入操作选择(1-7): read choice case $choice in 1) cat -n $MEMOFILE; 2) add_memo; 3) del_by_date; 4) del_by_num; 5) print_menu; 6) chaxun; 7) echo Bye!; break; *) echo Illega

温馨提示

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

评论

0/150

提交评论