版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品文档一绪论§ 1.1 计背景Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux继承了 Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它主要用于基于 Intel x86系列CPU的计算 机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。§ 1.2 计目的在Linux系统的/etc目录下有这样一个文件passwd,该文件里包含系统中所有用户信息的记录,记录里包含每个用户的如下信息:用户名、密码、用户 ID、组ID、用户全名、 用户主目录和用户登录所
2、用的shell。请设计一个脚本(shell )程序能实现增加、删除、查找和显示特定用户信息的功能。你们可以通过创建一些UNIX/LINUX shell脚本文件来满足以上需求。二需求分析§ 2.1 统概述21.1 任务概述Linux作为多用户、多任务的操作系统,其系统资源是所有用户共享的。对用户的管理 是操作系统的重点。LINUX课程设af要用shell编程实现,将理论学习付诸实践。设计一个 脚本(shell )程序能实现增加、删除、查找和显示特定用户信息的功能。12需求规定程序要包括四个文件,即menu, add, delete , passwd四个文件。passwd文件是用来保存用
3、户信息;menu文件是主菜单,要求运行的时候能显示一个菜单供用户选择;addusers文件是用来增加信息;deluser文件是用来删除信息。在主Shell脚本文件里(必须以menu 命名)要有一个多操作选项的菜单以便用户从中选择。对于任务6和7,需要编写单独的Shell脚本文件(必须分别命名为 addusers和deluser )并且在主脚本 menu文件中调用这些脚本又件。§ 2.2 能需求在主Shell脚本文件里(必须以menu命名)要有一个多操作选项的菜单以便用户从中 选择。在不同任务的中,这些操作能自动实现以下功能:1、在屏幕上显示当前所有用户的记录2、在屏幕上显示当前所有用
4、户(经过格式化和排序的)的记录3、只在屏幕上显示用户名和用户ID4、只在屏幕上显示(经过格式化和排序的)用户名和用户 ID5、查询并显示特定用户的记录6、往passwd文件里增加新的用户记录7、从passwd文件里删除某个用户记录你可以使用UNIX/LINUX中一些比较简单的命令或命令组合来执行1、2、3、4、5的任务。对于任务 6和7,你需要编写单独的 Shell脚本文件(必须分别命名为addusers和deluser )并且在你的主脚本 menu文件中调用这些脚本文件。三系统设计§3.1结构层次图示前有户记 显当所用的录示前有户格化显当所用经式示户和户 显用名用ID示式后户和户显
5、格化用名用找定户息查指用信加户息添用信除户自3 删用信_02欢迎下载8.2.运行流程精品文档(1)总运行流程Y退出现是否主确z、选择提示错误继续选择(2) addusers模块运行流程用户添加是否正确填写信息TY添加用户信息提示错误进入主菜单(3)deluser模块用户运行流程3欢迎下载精品文档是否存在用户ID误功进入主菜单四系统实现主菜单:文件如 编辑(E) 查看(¥) 终端CD r'r 用户信息主菜单】.打印当前所仃记录2 .打印当前所仃汜量(用式化后的)工打F|J用户名和用户1D4 .打E|J(格式化了的)用户名和用户ID5 .荏制特定记录6 .隐加新纪录九删除记录5-
6、退出|你的选择是选才i 1 :打印当前所有用户你的选择是:1J oo t X 0 0 ro-o t /root /b i ri/ba s hhi in x 1 b in /b in /sb in/no Log indaeiwn x 2 2 denun /sb in /$b in/no log inadm x 3 4 adm /var/adm Zsh in/no log inIp x 4 7 Lp /va r/spoo 1/ Ipd /sb un/nolog insync x S 0 sync /sb in /b ini/sync ghuldoHMi x 6 0 ;ihuIlIoami /sbi
7、n /sbin/huiJoami ha 11 x 7 0 ha 11 /sb in /sbin/ha 11iu i I x 8 12 n® i 1 /ra r / spoo 1 /rra i 1 / sb in/no login news x 9 13 he 璃 /e t c/ne选才i 2:打印当前所有用户记录(格式化后)_ 。4欢迎下载精品文档你的选择是:2roo Lx00r oo l/r oo t/b in/ba shb i I)x11bin/bin/ sb i ii/no 1 og indaenon x22daenon/sb in/sh in/iro 1 og inadm舅3
8、4udm/va i' /adm/sb in/iio log inIpX47Ip/va r/s.poo 1 / 1 pd /sb in/no log insyncx50sync/sb in /b in/syncshuX60shy tdown/sh in /sb in/shu tiiownha 11x70ha 1 i/sb in /&b in/ha 11iw i 1xB12ma i 1/vu r /spoo 1 /nui i 1 /shin/no log i nne uskg13news/e t "news2Nbre 1 PressspaceIO cun Linue ,
9、1q'1LU111BJ选才i 3:打印用户名和用户ID你的选择是;3roo I 0b 12udin 3sync 5 shuldown 6ha IL 7 iw I & ne ws 9-NbrePre ssspace tocon t inue + 'q1to qu i l J选才i 4:打印用户名和用户你的选择是:4 r i0b in1dae imn2a<lm3Jp4sync5shu idvv(4i6ha J i7iib i 18news笠ID (格式化后)-MirePi e ssspa ce loco门 L inue # r q *to qu i l J |选才i
10、5:查询特定用户没有输入关键字和输入关键字没有记录:你的选择是消请输入K棺字:你还没仃输入另设字请输入关谯字:口 ne你输入的用户mu不存在请技Ent"返PI查找到记录:你的选梆是:5情输入美111字:rra i langra i Lang: X: SOO: 500: na i lang ; /horre /rra i 1 a ng ? /b in/ba sb 请按日Her返R :|选才i 6:添加用户添加成功:moiMocalho 比文件® 编辑运) 查看在) 终端CD 的到 市用户添加清输入用户?i : ihangsan请输入密码:66g66请输入确认拈码:666防6请
11、输入用户1口: 5口。3请输入嵬【注4003请输入普录she 11(bashPsh kash Pcsh) :&h用户添加成功法按En I“返” ;|用户名无效情况:用户名只能是数字或字母,用户名不能为空,root jij.,alhasL文件编辑延卜看看出 终端牯到 新用H添加 =请髓人用户名:近,用户名只能是数字或字母,请或新输入用户名:请输入用户名:用户名不能为空,请重新输入用户名:请崎人用户名:li£i谙输入密码密码无效:密码不能小于6 ,密码不能为空,密码只能是数字或字母,密码必须和确认密码相同请输入密码二23空碣长度不能小于6 谙输入密吗;配 用户密码只能为数字或字灯
12、情电新输入密码请输入密码:用户密码不能为空,请输入密码请输入密码:666666 请输入确认密码:fdda 两次的密同不匹配 请输入密码:666666 请输入确认密:码:66E666 请输入用户I口鼻用户ID无效:用户ID不能为空,用户ID不能小于5 0 0 ,用户 ID只能为数字请输入用户14用户I。不能为空请输入用户ID:丽用户ID只能为数字请输入用户】044用户I口不能小于500,请重新输入 请输入用户ID:5004 请输入组组ID无效:组ID不能为空,组ID不能小于5 0 0 ,组 ID只能为数字请输入组ID:组IM:能为空,请电所输入请输入组1434组ID不能小于50。.请章新输入请输
13、入第I Ad4组ID只能为黝字请愉入组1/5003请 愉人 登录 3M HEbash t ah kashtcsli) i 登录shell无效:shell只能是bash,sh,kash,csh 中的一种,shell不能空请输入普录土加 11( bash, sh kashrcsh>:你输入的写配11名不存在本系统中,请重新输A请输入登录yhell(bash&h kashfcsh);te你嫡入的11名不存在本系统中请更新愉入请愉人意录gbe I Khah f sh k3 sh F csh) : sh选才i 7:删除用户查找用户ID存在,是否要删除选 Y,删除成功:nju|jopajl)
14、o曲:文怦E) 编辑£:fifty)用户删除输入用户16502是否要删除(Y/N):Y捌脸成功清接hn te 返同:|用户ID不存在和没有输入用户ID情况:门心|门【你泡110注、文件®燃料£上)S<(V)丽删除输入用户ID: 用户I叫;能为空 输入用户65009 用户不存在请按En I门返同:| 用户ID存在,在确认删除选 N和其他字符是退出:文件虫编抑臭 H VJ 终 用户删除输入用户11>5003是否要删除(Y7NMrooL'kxIliosL文件褊抑制 音母¥用户删除输入用户】口:5。03是行要删除CY7N):NTOO tloc
15、a ItlDS t root# I选择Q退出0rmIocalbosL文件必 褊辩 查看侬 终端出 用户信息主菜单1.打印当前所仃记录4 .打印为前所仃记录(格式化后的) 机打印用户名和用户ID5 .打印f格式化了的用户名和川户I口6 .笠困特定祀求7 .增加新纪录8 .删除记浆。-退出你的选择是:Qroo t loca Ihos i roo t fl不正确选择:O陌10国1乐四11文件® 蝙辑在? 查君(山终端 用户信息主菜单1 .打印当前所有记录2 打印当葡所有记录(格式化后的)3 .打即用户名和用户ID4 .打印(格式化了的)用户名和用户MDE,杳询特定记录8 .增加新纪录9 ,
16、剧除记录Q-退出你的选择是小J nvaI id op t ion 请按Ente返|H ;|五代码实现1)主菜单代码# ! /bin/bash# 删除用户clearecho "用户删除 "echo "="while true doread -p " 输入用户 ID:" useridsif( test ' expr match "$userids" "0-9*" ' -ne ' expr length "$userids" ') then echo
17、 "输入的用户ID只能是数字,请重新输入”elif ( test -z "$userids" ) then echo "用户ID不能为空"else breakfidone8欢迎下载精品文档getuserid=$( awk -F ':' ' $3 = "'$userids'" print $3 ' passwd ) if ( test $getuserid ) thenread -p " 是否要删除(Y/N):" ackif (test "$ack&
18、quot; = "Y" ) thensed -i '/'"$userids"'/d' passwdif ( test $? -eq 0) thenecho "删除成功"elseecho "删除失败"breakfielsebreakfielseecho " 用户不存在"fi2)用户添加代码# ! /bin/bashclear# 用户名echo "新用户添加 "echo "="while truedoecho -n "
19、 请输入用户名 :" read usernamea=' expr match "$username" "0-9a-zA-Z*" 'b=' expr length "$username" 'if ( test $a -ne $b ) thenecho " 用户名只能是数字或字母, 请重新输入用户名 :"elif ( test -z "$username" ) thenecho " 用户名不能为空, 请重新输入用户名 :"else bre
20、akfi done# 用户密码while truedoread -p " 请输入密码:" passwdif ( test ' expr match "$passwd" "0-9a-zA-Z*" ' -ne ' expr length "$passwd ' )thenecho " 用户密码只能为数字或字母, 情重新输入密码"elif ( test -z "$passwd" ) thenecho " 用户密码不能为空, 请输入密码"eli
21、f ( test ' expr length "$passwd" ' -It 6 ) then echo " 密码长度不能小于6"else read -p " 请输入确认密码:" ackpwif(test "$passwd" = "$ackpw" ) then break else echo " 两次的密码不匹配"fi fi done #用户IDwhile true do read -p " 请输入用户 ID:" useridif ( te
22、st ' expr match "$userid" "0-9*" ' -ne ' expr length "$userid" ' ) then echo " 用户 ID 只能为数字"elif ( test -z "$userid") then echo " 用户 ID 不能为空 " elif ( test $userid -lt 500 ) then echo " 用户 ID 不能小于 500, 请重新输入 " else b
23、reak fi done#组 ID while true do read -p " 请输入组 ID:" groupidif ( test ' expr match "$groupid" "0-9*"' -ne ' expr length "$groupid" ' ) thenecho " 组 ID 只能为数字"elif ( test -z "$groupid" ) thenecho " 组 ID 不能为空 , 请重新输入 "
24、 elif ( test $groupid -lt 500 ) then echo " 组 ID 不能小于 500, 请重新输入 " else break fi done #登录shellwhile truedoread -p " 请输入登录shell(bash,sh kash,csh):" shellnameif (test "$shellname" != "bash" -a "$shellname" != "sh" -a "$shellname" !=
25、 "kash"-a "$shellname" != "csh" ) thenecho " 你输入的 shell 名不存在本系统中 , 请重新输入 "elsebreakfidone#添加用户userinfo="$username:$passwd:$userid:$groupid:$username:/home/$username:/bin/$sh ellname"if ( test $? -ne 1 ) thenecho $userinfo >> passwdif ( test $? -eq 0 ) thenecho " 用户添加成功"elseecho " 用户添加失败"fifi3)用户删除代码#! /bin/bash#删除用户clearecho "用户删除"echo "="while truedoread -p " 输入用户 ID:" useridsif( test ' expr match "$us
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建省南平市五夫中学高二化学上学期期末试题含解析
- 福建省南平市渭田中学2021年高二生物模拟试题含解析
- 福建省南平市太平中学高三数学文联考试题含解析
- 2 《烛之武退秦师》(说课稿)-2024-2025学年高一语文下学期同步教学说课稿专辑(统编版必修下册)
- 美术教育之光
- 解密清明节气
- 填分家协议书(2篇)
- 25王戎不取道旁李 说课稿-2024-2025学年四年级上册语文统编版
- 有偿使用场地租赁合同
- 租赁山地合同
- 无水氯化钙MSDS资料
- 专利产品“修理”与“再造”的区分
- 氨碱法纯碱生产工艺概述
- 健康管理专业建设规划
- 指挥中心大厅及机房装修施工组织方案
- 真心英雄合唱歌词
- 架空电力线路导线应力弧垂计算
- 上海交通大学留学生本科入学考试 英语
- 【校本教材】《身边的化学》高中化学校本课程
- 常住人口项目变更更正呈批表
- 产后访视技术规范
评论
0/150
提交评论