Linux课程设计报告.docx





《Linux课程设计报告.docx》由会员分享,可在线阅读,更多相关《Linux课程设计报告.docx(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Linux 课程设计设计题目: shell 编程实现用户信息治理专业:软件工程指导教师:蔡照鹏 王斌斌班级:学号:姓名:同组人:计算机科学与工程学院1前言Linux 是一种自由和开放源码的类 Unix 操作系统,存在着很多不同的Linux 版本,但它们都使用了 Linux 内核。Linux 可安装在各种计算机硬件设备中。Linux 是一个领先的操作系统,世界上运算最快的 10 台超级计算机运行的都是 Linux 操作系统。严格来讲,Linux 这个词本身只表示 Linux 内核,但实际上人们已经习惯了用 Linux 来形容整个基于 Linux 内核,并且使用 GNU 工程各种工具和数据库的操作
2、系统。Linux 得名于天才程序员林纳斯托瓦兹。 Linux 操作系统是 UNIX 操作系统的一种克隆系统,它诞生于1991 年的 10 月 5 日这是第一次正式向外公布的时间。以后借助于Internet 网络,并通过全世界各地计算机爱好者的共同努力,已成为今日世界上使用最多的一种 UNIX 类操作系统,并且使用人数还在迅猛增长。Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Un
3、ix 以网络为核心的设计思想,是一共性能稳定的多用户网络操作系统。它主要用于基于Intel x86 系列 CPU 的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的 Unix 兼容产品。3名目一、系统环境11.1 硬件环境11.2 软件环境1二、设计目的和要求1三、课程设计内容2四、总体设计24.1 局部功能模块流程图24.2 总体功能模块图4五、具体设计55.1 模块功能说明55.2 系统中 shell 主要命令说明5六、调试与测试76.1 调试方法76.2 测试结果的分析与争论11七、设计中遇到的问题及解决方法
4、12八、源程序清单13九、总结21参考文献22一、系统环境1.1 硬件环境CPU:IntelR CoreTM 内存:2.93 GHz,2.00GB软件:VC6.0、VMware Workstation、CentOS1.2 软件环境操作系统:Windows 7、 Linux编程工具、编程语言: shell 编程语言Shell 编程语言简介:shell 是操作系统的最外层。shell 合并编程语言以把握进程和文件,以及启动和把握其它程序。shell 通过提示您输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出来治理您与操作系统之间的交互。shell 供给了与操作系统通信的方式。此通信以
5、交互的方式(来自键盘的输入马上操作)或作为一个 shell 脚本执行。shell 脚本是 shell 和操作系统命令的序列,它存储在文件中。二、设计目的和要求把握 linux 操作系统中 shell 脚本编程技术中的:变量定义、变量使用、循环把握构造、条件选择构造、用户交互、文件读写、文本内容分析以及linux 重要命令的使用等。以验证学生对于shell 脚本编程的把握状况。要求学生能够利用 shell 脚本编程实现较为根本的功能。Linux 作为多用户、多任务的操作系统,其系统资源是全部用户共享的。对用户的治理是操作系统的重点。LINUX 课程设计要用 shell 编程实现, 将理论学习付诸
6、实践。设计一个脚本shell程序能实现增加、删除、查找和显示特定用户信息的功能。1三、课程设计内容在主 Shell 脚本文件里必需以 menu 命名要有一个多操作选项的菜单以便用户从中选择。在不同任务的中,这些操作能自动实现以下功能:1) 在屏幕上显示当前全部用户的记录2) 在屏幕上显示当前全部用户经过格式化和排序的的记录3) 只在屏幕上显示用户名和用户 ID4) 只在屏幕上显示经过格式化和排序的用户名和用户 ID5) 查询并显示特定用户的记录6) 往 passwd 文件里增加的用户记录7) 从 passwd 文件里删除某个用户记录在名目下有四个文件分别为 menu,passwd,add,de
7、lete 其中: menu 文件中的程序完成 1,2,3,4,5 功能;另外写一个add 脚本文件和delete 脚本文件分别实现选项 6 和 7.当用户做了选择且所选的操作完成之后,可以再次显示主菜单以供用户做下一步选择。用 while 循环和 case 条件语句协作来完成此操作。Q:退出四、总体设计4.1 局部功能模块流程图(1) 总体流程图主菜单你的选择功能实现回车退出图 4-1 总体流程图(2) 查看指定用户图 4-2 查看指定用户(3) 添加用户主菜单界面N进入add 界面Y是否连续添加输入信息是否有效YY是否保存N进入主菜单图 4-3 添加用户3(4) 删除用户主菜单界面N进入de
8、lete界面Y是否连续删除输入ID 是否存在YY是否删除N进入主菜单图 4-4 删除用户用户信息主菜单删除用户信息4.2 总体功能模块图显显显显显查添示示示示示找加当当用当经指用前前户前格定户所所名所式用信有有和有化户息用用用用后信户户户户的息的记录经格式化的ID用户名和用图 4-5总体功能模块图5五、具体设计5.1 模块功能说明shell编 程 用 户 信 息 管 理 系 统 中 , 由 passwd文 件 ,add.sh,delete.sh,menu.sh 三个 shell 文件组成。首先编写 passwd 文件,在此文件里依据/etc/passwd 文件的格式用户名:密码:用户标志号:组
9、标志号:说明域:用户家名目:用户登录成功后使用的 shell 程序写下设置的用户信息。add.sh 是对用户信息进展增加的 shell 程序,提示用户输入用户名,假设没有输入,则连续提示用户输入用户名,假设用户输入了则验证用户名是否符合用户名的要求,是否以非数字打头的字符和数字组成,假设不符合要求则要求用户重输入,假设符合要求用户需要连续输入密码,然后验证密码和重输入密码两次输入密码是否全都,假设全都则需要用户连续输入用户UID,组GID,说明域,用户家名目,shell 路径,假设都成功的话,则把信息重定向追加到 passwd 文件里。delete.sh 是对用户进展删除操作的 shell 程
10、序,首先需要用户输入用户需要删除的用户名,然后搜寻出此用户名的信息,进展确认即可删除。最终是 menu,sh 是用户的主函数,通过输入不同的值完成不同的功能,包括显示用户记录,格式化记录,显示用户名和 ID,格式化显示用户名和 ID, 查询特定用户信息,添加用户,删除用户。5.2 系统中 shell 主要命令说明符号 #!: 用来告知系统它后面的参数是用来执行该文件的程序。变量: 在 shell 编程中,全部的变量都由字符串组成,并且不需要对变量进展声明,直接赋值就可以,应用变量的话,用$+变量名的形式。管道 (|): 将一个命令的输出作为另外一个命令的输入。echo :将其命令行参数中的字符
11、串或变量的值写到标准输出设备,在显示器上显示一段文字,一般起到一个提示作用。echo n 不换行输出echo -e 后加上起到转义作用重定向:将命令的结果输出到文件,而不是标准输出屏幕。 :写入文件并掩盖旧文件 :加到文件的尾部,保存旧文件内容。test 命令:通常用“ “来表示条件测试。留意这里的空格很重要。要确保方括号的空格。 -f “somefile“ :推断是否是一个文件 -n “$var“ :推断$var 变量是否有值 expression -a expression :当两边的两个 expression 表达式都为真 -z string :string 长度是 0 integer1
12、 -eq integer2 :当 integer1 等于 integer2 integer1 -ne integer2 :当 integer1 不等于 integer2 “if“ 表达式: 假设条件为真则执行then 后面的局部: if .; then.elif .; then.else.ficase 表达式:可以用来匹配一个给定的字符串,而不是数字。case . in.) do something here ; esactr “:“ “ “:把冒号换成空格sort:对制定文件中的行按要求进展排序sort -k 1 $dataSource;/按第一个域进展排序expr 命令:对表达式进展运算e
13、xpr match $string substring 命令在 string 字符串中匹配 substring 字符串,然后返回匹配到的 substring 字符串的长度,假设找不到则返回 0。expr length $string 求出字符串的长度字符串过滤命令 grep:字符串搜寻与过滤,显示所在行的相关信息。grep -i string1 string2在 string2 里查找 string1,是大小写无关的搜寻grep -n $deleteUser $dataSource:显示查找含有$deleteUser 信息,并且在最前面加上行号。cat file.txt: 输出文件内容到标准输
14、出设备屏幕上read var: 提示用户输入,并将输入赋值给变量cut:从文件或标准输入中读取内容,并截取每一行的特定局部,然后将结果送到标准输出。-d sep:指定 sep 作为输入文件域分隔符,默认为 Tab。cut 不支持用空格隔开的列。cut 分隔符只能识别冒号,逗号,句号,tab 键等非空格作为分隔符的文件或命令执行结果。cut -d“:” -f 1,3 /etc/passwd:用冒号为分隔符,输出/etc/passwd 文件的第 1,3列。sed:是流编辑器,对它的输入流进展按指定格式的转换。是一个根本的查找替换程序,可以从标准输入读入文本,并将结果输出到标准输出屏幕。sed 的操
15、作对象:一般文件,数据流,一个命令的执行结果。sed -n 2p student.txt:输出 student.txt 文件中的其次行sed -e “$rowID d“ $dataSource:删除含有$rowID 的这一行信息awk:字符串列截取功能。默认分隔符为白空格。可以用-F 指定分隔符。语法:awk 条件动作 fileawk printf$2“t”$6 student.txt:输出 student.txt 的第 2 列和第 6 列。六、调试与测试6.1 调试方法1、正常输入shell 程序在/root/linlin/1 下系统主界面:71、显示当前全部记录2、格式化显示当前全部用户信
16、息:3、显示用户名和用户 ID84、格式化显示用户名和 ID5、查询特定用户信息:6、添加用户97、删除用户8、退出102、特别输入1、假设输入的非 17 或 Q2、假设搜寻的用户不存在,提示出错信息3、假设删除的用户不存在,提示出错信息6.2 测试结果的分析与争论在测试中首先要测试各功能是否能够正常执行,是否可以正常显示系统中用户信息,是否可以格式化系统中全部用户信息,显示和格式化用户名和ID,查询特定用户信息。假设输入的选项系统中不存在,也会提示用户此选项不是系统供给的功能,假设在 passwd 文件中没有所要查询的用户的信息, 那么会提示此查找的用户信息不存在。删除用户的时候,删除的用户
17、假设不存在,也会提示此用户不存在。1七、设计中遇到的问题及解决方法1、开头不太明白shell 编程的语法,例如expr 的用法,expr match 是从字符串的开头匹配,假设字符串开头就不匹配,即使中间可以匹配,照旧返回 0。3、经过对文件测试才知道 grep -n $deleteUser $dataSource 此句是输入要查找的含有$deleteUser 的信息,并且在总的信息前会有查找信息在原来文件中的行号。4、sed -e “$rowID d“ $dataSource tempFile; 此句中 d 表示删除$rowID 行的信息,并且把$dataSource 中删除$rowID 后
18、的信息建的方式重定向输出到tempFile 文件中。2、awk -F “:“ ”$1 = “”$userName”“ print $0 ” $dataSource;此句中的特别变量$0 用于存储整条记录的内容,而$1 表示每条记录的第一个域。12八、源程序清单(1) Menu.sh 文件1#! /bin/bash dataSource=”passwd”; addUsers=“./add.sh“; deleteUsers=“./delete.sh“; CheckDataSourceFileExistif -f2 $dataSource then#文件存在return 0;else#文件不存在cl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 课程设计 报告

限制150内