linux大作业课程设计说明书linux unix shell脚本编程

上传人:桔**** 文档编号:487394567 上传时间:2023-07-11 格式:DOC 页数:19 大小:349.50KB
返回 下载 相关 举报
linux大作业课程设计说明书linux unix shell脚本编程_第1页
第1页 / 共19页
linux大作业课程设计说明书linux unix shell脚本编程_第2页
第2页 / 共19页
linux大作业课程设计说明书linux unix shell脚本编程_第3页
第3页 / 共19页
linux大作业课程设计说明书linux unix shell脚本编程_第4页
第4页 / 共19页
linux大作业课程设计说明书linux unix shell脚本编程_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《linux大作业课程设计说明书linux unix shell脚本编程》由会员分享,可在线阅读,更多相关《linux大作业课程设计说明书linux unix shell脚本编程(19页珍藏版)》请在金锄头文库上搜索。

1、LINUX 大作业课程设计说明书题 目 LINUX/UNIX Shell编程 姓 名 学 号 1 系 别 计算机科学系 班 级 指导教师 完成日期 2010年6月26日 目 录一、引言3二、需求分析31.任务目标32.系统要求33.系统功能3三、总体设计41.功能图42.流程图43.2.1menu主菜单43.2.2add模块53.2.3delete模块。四、详细设计61.menu主菜单64.1.1运行主菜单64.1.2在menu脚本文件里将创建菜单64.1.3无效输入64.1.4无输入74.1.5当用户选择1时打印当前所有用户记录74.1.6当用户选择2时打印当前经过格式化的用户记录后74.1

2、.7当用户选择3时打印用户名和用户ID84.1.8当用户选择4时打印(格式化的)用户名和用户ID84.1.9当用户选择5时查找特定的记录82add文件94.2.1当用户在主菜单里选择6时add脚本文件被调用94.2.2输入用户名94.2.3输入密码94.2.4用户ID104.2.5组ID104.2.6登录shell104.2.7保存记录104.2.8是否继续添加113delete文件114.3.1当用户在主菜单中选择7时delete脚本文件必须被调用114.3.2用户输入一个无效的用户ID114.3.3用户简单的按回车键而没有任何输入114.3.4找不到包含有键入用户ID的记录114.3.5继

3、续删除12五、代码12 1.menu文件。2.add文件。3.delete文件。一、引言随着Linux操作系统在网络服务器、嵌入式系统等领域应用的迅速发展。Linux作为多用户、多任务的操作系统。任何要使用系统资源者必须先在系统内登记、注册,即开设用户账户,该账户包含用户名、口令、所有的shell等。为了计算机系统的安全,Linux会对每一个要求进来系统的用户验证用户名和口令。在Linux系统的/etc目录下有这样一个文件passwd,该文件里包含系统中所有用户信息的记录,记录里包含每个用户的如下信息:用户名、密码、用户ID、组ID、用户全名、用户主目录和用户登录所用的shell。设计一个脚本

4、(shell)程序实现增加、删除、查找和显示特定用户信息的功能。加深对操作系统原理的理解,掌握实际操作系统的用法,动手实践,通过循序渐进的学习各种管理功能、系统应用,用shell编程实现LINUX课程设计,将理论学习付诸实践,提高操作能力。二、需求分析1.任务目标Linux作为多用户、多任务的操作系统,其系统资源是所有用户共享的。对用户的管理是操作系统的重点。LINUX课程设计要用shell编程实现,将理论学习付诸实践。设计一个脚本(shell)程序能实现增加、删除、查找和显示特定用户信息的功能。2.系统要求程序要包括四个文件,即menu,add,delete,passwd四个文件。passw

5、d文件是用来保存用户信息;menu文件是主菜单,要求运行的时候能显示一个菜单供用户选择;add文件是用来增加信息;delete文件是用来删除信息。在主Shell脚本文件里(必须以 menu 命名)要有一个多操作选项的菜单以便用户从中选择。对于任务6和7,需要编写单独的Shell脚本文件(必须分别命名为add和delete)并且在主脚本menu文件中调用这些脚本文件。在主目录下建立一个目录,并且在作业中使用它作为工作目录。3.系统功能在主Shell脚本文件里(即menu 文件)要有一个多操作选项的菜单以便用户从中选择。在不同任务的中,这些操作能自动实现以下功能:1、 在屏幕上显示当前所有用户的记

6、录2、 在屏幕上显示当前所有用户(经过格式化和排序的)的记录3、 只在屏幕上显示用户名和用户ID4、 只在屏幕上显示(经过格式化和排序的)用户名和用户ID5、 查询并显示特定用户的记录6、 往passwd文件里增加新的用户记录7、 从passwd文件里删除某个用户记录其中: menu文件中的程序完成1,2,3,4,5功能;另外写一个add脚本文件和delete脚本文件分别实现选项6和7.当用户做了选择且所选的操作完成之后,可以再次显示主菜单以供用户做下一步选择。用while循环和case条件语句配合来完成此操作。三、总体设计1.功能图显示当前所有用户的记录显示当前所有用户经格式化后的记录显示用

7、户名和用户ID显示格式化后用户名和用户ID查找指定用户信息添加用户信息删除用户信息用户信息主菜单主菜单你的选择功能实现回车退出3.流程图3.2.1主菜单3.2.2 add模块3.2.3 delete模块主菜单是否继续删除进入delete界面输入ID是否存在是否删除进入主菜单NYYYN四、详细设计1.menu主菜单 4.1.1主菜单4.1.2在menu脚本文件里将创建如下菜单,菜单里包含供用户选择的一些操作。4.1.3无效输入当用户做了选择且所选的操作完成之后,应再次显示主菜单以供用户做下一步选择。在以上等待用户做出选择的菜单中,如果用户偶尔输入了一个代码而不是1、2、3、4、5、6、7或Q,就

8、有信息提示“无效的代码,请按回车键继续”。等用户按了回车键之后,再次显示主菜单供用户做其他选择。如图: 4.1.4无输入在以上等待用户做出选择的菜单中,如果用户简单地按了回车键,就会出现信息“无效的代码。等用户按了回车键之后,再次显示主菜单供用户做其他选择。4.1.5当用户选择了1时打印当前所有用户记录4.1.6当用户选择2时打印当前经过格式化的用户记录后4.1.7当用户选择3时,打印用户名和用户ID4.1.8当用户选择4时,打印(格式化的)用户名和用户ID4.1.9当用户选择5时,查找特定的记录 如果输入的关键字不在记录里如果用户简单地按回车键而不是输入关键字2add文件4.2.1当用户在主

9、菜单里选择6时你的add脚本文件就要被调用4.2.2输入用户名用户输入一个无效的用户名用户只按回车没有输入4.2.3输入密码输入密码时不显示要求密码长度至少达到6位以上确认密码如果与密码不符应该让用户重新输入4.2.4用户ID如果用户只是简单的按回车键如果用户输入的是一个无效的ID或者是不符合格式的ID4.2.5组ID对组ID的要求类似与用户ID,一个有效的组ID(数字、一般非超级用户的ID大等于500)4.2.6登录shell一个有效的shell必须只能是bash、sh、kash、csh中的一种如果用户只按回车没有输入的话则显示信息:“没有输入!”,并提示用户再次输入shell名4.2.7保

10、存记录4.2.8是否继续添加3delete文件4.3.1当用户在主菜单中选择7时,你的delete脚本文件必须被调用4.3.2用户输入一个无效的用户ID4.3.3用户简单的按回车键而没有任何输入4.3.4找不到包含有键入用户ID的记录4.3.5继续删除五、代码1、menu主脚本文件代码 #! /bin/sh-record_file=passwdadd_file=adddelete_file=deletewhile truedo clear echo 用户信息主菜单 echo = echo 1、打印当前所有记录 echo 2、打印当前所有记录(格式化后的) echo 3、打印用户名和用户ID e

11、cho 4、打印(格式化了的)用户名和用户ID echo 5、查询特定记录 echo 6、增加新记录 echo 7、删除记录 echo Q-退出 echo -n 你的选择是: read choice case $choice in 1)cat $record_file | tr : ; 2) #awk -F : ($3=0 | $3 499 & $3 6000) printf %-10s %-3s %-10s %-10s %-10s %-10s %-10s/n, $1,$2,$3,$4,$5,$6,$7 $record_file cat $record_file | tr : t | sort

12、 -d -k1; 3)cat $record_file | tr : , | cut -f 1,3 -d,; 4)cat $record_file | cut -f 1,3 -d:| tr : t; 5)echo -n 输入关键字: read name while test -z $name do echo 没有输入关键字 echo -n 输入关键字: read name done if( cut -f 1 -d: $record_file | grep -iq $name ) then grep -iw $name $record_file else echo 没有找到$name fi; 6)sh $add_file; 7)sh $delete_file; Q)break 10; q)break 10; *)echo -n 无效的代码 esacif te

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号