Linux课程设计报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《Linux课程设计》

设计题目:shell 编程实现用户信息管理专业:软件工程

指导教师:蔡照鹏王斌斌

班级:

学号:

姓名:

同组人:

计算机科学与工程学院

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中。Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来讲,Linux这个词本身只表示Linux 内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于天才程序员林纳斯·托瓦兹。 Linux操作系统是UNIX操作系统的一种克隆系统,它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX 和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux 继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。

一、系统环境 (1)

1.1硬件环境 (1)

1.2软件环境 (1)

二、设计目的和要求 (1)

三、课程设计内容 (2)

四、总体设计 (2)

4.1部分功能模块流程图 (2)

4.2总体功能模块图 (4)

五、详细设计 (5)

5.1模块功能说明 (5)

5.2系统中shell主要命令说明 (5)

六、调试与测试 (7)

6.1调试方法 (7)

6.2测试结果的分析与讨论 (11)

七、设计中遇到的问题及解决方法 (12)

八、源程序清单 (13)

九、总结 (21)

参考文献 (22)

一、系统环境

1.1硬件环境

CPU:Intel(R) Core(TM)********************

内存:2.93 GHz,2.00GB

软件:VC6.0、VMware Workstation、CentOS

1.2软件环境

操作系统:Windows 7、 Linux

编程工具、编程语言: shell编程语言

Shell编程语言简介:

shell 是操作系统的最外层。shell 合并编程语言以控制进程和文件,以及启动和控制其它程序。shell 通过提示您输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出来管理您与操作系统之间的交互。shell 提供了与操作系统通信的方式。此通信以交互的方式(来自键盘的输入立即操作)或作为一个 shell 脚本执行。shell 脚本是 shell 和操作系统命令的序列,它存储在文件中。

二、设计目的和要求

掌握linux操作系统中shell脚本编程技术中的:变量定义、变量使用、循环控制结构、条件选择结构、用户交互、文件读写、文本内容分析以及linux重要命令的使用等。以验证学生对于shell脚本编程的掌握情况。要求学生能够利用shell脚本编程实现较为基本的功能。

Linux作为多用户、多任务的操作系统,其系统资源是所有用户共享的。对用户的管理是操作系统的重点。LINUX课程设计要用shell编程实现,将理论学习付诸实践。设计一个脚本(shell)程序能实现增加、删除、查找和显示特定用户信息的功能。

三、课程设计内容

在主Shell脚本文件里(必须以 menu 命名)要有一个多操作选项的菜单以便用户从中选择。在不同任务的中,这些操作能自动实现以下功能:

1)在屏幕上显示当前所有用户的记录

2)在屏幕上显示当前所有用户(经过格式化和排序的)的记录

3)只在屏幕上显示用户名和用户ID

4)只在屏幕上显示(经过格式化和排序的)用户名和用户ID

5)查询并显示特定用户的记录

6)往passwd文件里增加新的用户记录

7)从passwd文件里删除某个用户记录

在目录下有四个文件分别为menu,passwd,add,delete其中: menu文件中的程序完成1,2,3,4,5功能;另外写一个add脚本文件和delete脚本文件分别实现选项6和7.当用户做了选择且所选的操作完成之后,可以再次显示主菜单以供用户做下一步选择。用while循环和case条件语句配合来完成此操作。

Q:退出

四、总体设计

4.1部分功能模块流程图

(1)总体流程图

图4-1 总体流程图

(2)查看指定用户

图4-2 查看指定用户

(3)添加用户

主菜单界面

是否继续添加

进入add 界面

Y

输入信息是否

有效

Y

进入主菜单

N

N

是否保存

Y

图4-3 添加用户

(4)删除用户

图4-4 删除用户

图4-5 总体功能模块图

五、详细设计

5.1模块功能说明

shell编程用户信息管理系统中,由passwd文件,add.sh,delete.sh,menu.sh三个shell文件组成。

首先编写passwd文件,在此文件里按照/etc/passwd文件的格式[用户名:密码:用户标志号:组标志号:说明域:用户家目录:用户登录成功后使用的shell程序]写下设置的用户信息。

add.sh是对用户信息进行增加的shell程序,提示用户输入用户名,如果没有输入,则继续提示用户输入用户名,如果用户输入了则验证用户名是否符合用户名的要求,是否以非数字打头的字符和数字组成,如果不符合要求则要求用户重新输入,如果符合要求用户需要继续输入密码,然后验证密码和重新输入密码两次输入密码是否一致,若一致则需要用户继续输入用户UID,组GID,说明域,用户家目录,shell路径,若都成功的话,则把信息重定向追加到passwd文件里。

delete.sh是对用户进行删除操作的shell程序,首先需要用户输入用户需要删除的用户名,然后搜索出此用户名的信息,进行确认即可删除。

最后是menu,sh是用户的主函数,通过输入不同的值完成不同的功能,包括显示用户记录,格式化记录,显示用户名和ID,格式化显示用户名和ID,查询特定用户信息,添加新用户,删除用户。

5.2系统中shell主要命令说明

符号#!:用来告诉系统它后面的参数是用来执行该文件的程序。

变量:在shell编程中,所有的变量都由字符串组成,并且不需要对变量进行声明,直接赋值就可以,应用变量的话,用$+变量名的形式。

管道 (|):将一个命令的输出作为另外一个命令的输入。

echo :将其命令行参数中的字符串或变量的值写到标准输出设备,在显示器上显示一段文字,一般起到一个提示作用。

echo –n不换行输出

echo -e后加上\起到转义作用

重定向:将命令的结果输出到文件,而不是标准输出(屏幕)。

< :用于输入重定向

> :写入文件并覆盖旧文件

>> :加到文件的尾部,保留旧文件内容。

test命令:通常用" [ ] "来表示条件测试。注意这里的空格很重要。要确保方括号的空格。

[ -f "somefile" ] :判断是否是一个文件

[ -n "$var" ] :判断$var变量是否有值

[ expression -a expression ] :当两边的两个expression 表达式都为真

相关文档
最新文档