欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

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

    • 资源ID:2387995       资源大小:317KB        全文页数:19页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    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.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继续删除12五、代码12 1.menu文件。2.add文件。3.delete文件。一、引言随着Linux操作系统在网络服务器、嵌入式系统等领域应用的迅速发展。Linux作为多用户、多任务的操作系统。任何要使用系统资源者必须先在系统内登记、注册,即开设用户账户,该账户包含用户名、口令、所有的shell等。为了计算机系统的安全,Linux会对每一个要求进来系统的用户验证用户名和口令。在Linux系统的/etc目录下有这样一个文件passwd,该文件里包含系统中所有用户信息的记录,记录里包含每个用户的如下信息:用户名、密码、用户ID、组ID、用户全名、用户主目录和用户登录所用的shell。设计一个脚本(shell)程序实现增加、删除、查找和显示特定用户信息的功能。加深对操作系统原理的理解,掌握实际操作系统的用法,动手实践,通过循序渐进的学习各种管理功能、系统应用,用shell编程实现LINUX课程设计,将理论学习付诸实践,提高操作能力。二、需求分析1.任务目标Linux作为多用户、多任务的操作系统,其系统资源是所有用户共享的。对用户的管理是操作系统的重点。LINUX课程设计要用shell编程实现,将理论学习付诸实践。设计一个脚本(shell)程序能实现增加、删除、查找和显示特定用户信息的功能。2.系统要求程序要包括四个文件,即menu,add,delete,passwd四个文件。passwd文件是用来保存用户信息;menu文件是主菜单,要求运行的时候能显示一个菜单供用户选择;add文件是用来增加信息;delete文件是用来删除信息。在主Shell脚本文件里(必须以 menu 命名)要有一个多操作选项的菜单以便用户从中选择。对于任务6和7,需要编写单独的Shell脚本文件(必须分别命名为add和delete)并且在主脚本menu文件中调用这些脚本文件。在主目录下建立一个目录,并且在作业中使用它作为工作目录。3.系统功能在主Shell脚本文件里(即menu 文件)要有一个多操作选项的菜单以便用户从中选择。在不同任务的中,这些操作能自动实现以下功能:1、 在屏幕上显示当前所有用户的记录2、 在屏幕上显示当前所有用户(经过格式化和排序的)的记录3、 只在屏幕上显示用户名和用户ID4、 只在屏幕上显示(经过格式化和排序的)用户名和用户ID5、 查询并显示特定用户的记录6、 往passwd文件里增加新的用户记录7、 从passwd文件里删除某个用户记录其中: menu文件中的程序完成1,2,3,4,5功能;另外写一个add脚本文件和delete脚本文件分别实现选项6和7.当用户做了选择且所选的操作完成之后,可以再次显示主菜单以供用户做下一步选择。用while循环和case条件语句配合来完成此操作。三、总体设计1.功能图显示当前所有用户的记录显示当前所有用户经格式化后的记录显示用户名和用户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,就有信息提示“无效的代码,请按回车键继续”。等用户按了回车键之后,再次显示主菜单供用户做其他选择。如图: 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当用户在主菜单里选择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保存记录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 " echo "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 -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 test "$choice"= "6" -o "$choice"= "7"thenBreak;fi echo -n "按回车键继续。" read answerdone 2、add脚本文件代码#! /bin/sh-record_file=passwdwhile truedo clear echo " 用户信息主菜单 " echo "=" echo "输入新用户的具体情况 " echo " "#=用户名=# while true do echo -n "用户名:" read name if test -z $name then echo "没有输入用户名" continue fi if test $name = "N" -o $name = "n" then sh menu exit fi if (echo $name |grep -q 'A-Za-z0-9*$' && echo $name | grep -q 'A-Za-z' ) then if (grep -wq $name $record_file ) then echo "该用户名已存在,请重新输入!" else break fi else echo "用户名只包含字母和数字,并且要以字母开头" continue fi done#=密码=#while truedo echo -n "密码:" read -s pwd1 echo if test -z $pwd1 then echo "密码不能为空!请重新输入!" continue fi if test $pwd1 = "N" -o $pwd1 = "n" then # sh menu exit fi if test expr length $pwd1 -ge 6 then echo -n "确认密码:" read -s pwd2 echo if test $pwd1 = $pwd2 then break else echo "密码不一致!请重新输入!" fi else echo "密码长度至少要6位!请重新输入!" fidone #=用户ID=#while true do echo -n "用户ID:" read id if test -z $id then echo "没有键入ID" continue fi if test $id = "N" -o $id = "n" then # sh menu exit fiif (echo $id | grep -q '0-9*$' && test $id -ge 500 -a $id -le 60000) then if (cut -f 3 -d : $record_file| grep -w $id) then echo "ID已存在,请键入别的ID" continue else break fi else echo "ID必须大于等于500小于等于60000" continue fidone#=组ID=#while truedo echo -n "组ID:" read gid if test -z $gid then echo "没有键入组ID" fi if test $gid = "N" -o $gid = "n" then # sh menu exit fi if (echo $gid | grep -q '0-9*$' && test $gid -ge 500 -a $gid -le 60000) then if(cut -f 3 -d : $record_file | grep -w $gid) then echo "ID已经存在,请键入别的大于等于500小于60000的数!" continue else break fi else echo "组ID必须大于等于500小于等于60000" continue fidone#=主目录=#echo 主目录:$name#=登录shell=#while truedo echo -n 登录shell: read she if test -z $she then echo "没有输入!" continue fi if test $she = "N" -o $she = "n" then sh menu exit fi if test $she = 'bash' -o $she = 'sh' -o $she = 'kash' -o $she = 'csh' then break else echo "输入的shell名不在本系统范围内!" continue fidone#=用户全名=#while truedo echo -n "用户全名:" read fullname if test -z $fullname then echo "没有输入!" continue fi if test $fullname = "N" -o $fullname = "n" then # sh menu exit fi break done#=主目录=#echo 主目录:$name#=添加用户=# useradd $name:$pwd1:$id:$gid:$fullname:/home/$name:/bin/$she >>$record_file; echo "保存成功!" echo "$name $pwd1 $id $gid $fullname /home/$name /bin/$she" echo -n "再增加一个吗?(Y/N)" read choice if test $choice = "Y" -o $choice = "y" then continue exit else if test $choice = "N" -o $choice = "n" then sh menu exit fi fidone3、detele脚本文件代码#! /bin/sh-record_file=passwdclearecho "删除用户记录"while truedo echo -n "输入用户ID:" read uid if test -z $uid then echo "没有输入!" continue fi if test $uid = "N" -o $uid = "n" then # sh menu exit fi if test $uid -ge 500 -a $uid -le 60000 then name=awk -F: '$3="'$uid'"' $record_file | cut -f 1 -d: if (! test -z $name ) then awk -F: '$3="'$uid'"' $record_file echo -n "确认删除? Y 或 N :" read an if (test $an = "Y" -o $an = "y") then userdel -r $name echo "记录删除" echo -n "再删除一个? Y 或 N :" read an2 if (test $an2 = "Y" -o $an2 = "y") then continue elif (test $an = "N" -o $an = "n") then # sh menu exit fi elif (test $an = "N" -o $an = "n") then # sh menu exit else # sh menu exit fi else echo "没有找到$uid" fi else echo "无效的用户ID" continue fiecho "按回车继续."read answersh menuexitdone 4、 passwd文件root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologinlinux:x:500:500:linux:/home/linux:/bin/bashooo:123456:506:505:ooos:/home/ooo:/bin/bash

    注意事项

    本文(linux大作业课程设计说明书linux unix shell脚本编程 .doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开