《Linux操作系统》课程设计任务书.docx
- 文档编号:4889218
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:21
- 大小:1.18MB
《Linux操作系统》课程设计任务书.docx
《《Linux操作系统》课程设计任务书.docx》由会员分享,可在线阅读,更多相关《《Linux操作系统》课程设计任务书.docx(21页珍藏版)》请在冰豆网上搜索。
《Linux操作系统》课程设计任务书
《Linux操作系统》课程设计任务书
一、设计题目
题目一:
shell编程--用户信息管理(模拟)
题目二:
linux环境中的LAMP开发环境搭建与应用
二、设计目的
《Linux操作系统》课程设计是网络工程专业的集中实践性环节之一,是学习完《linux操作系统》课程后进行的一次全面的综合练习。
其目的在于加深对linux操作系统的系统管理各方面技术的掌握,使学生更好地把握linux操作系统的基础命令、shell脚本技术以及各种基础服务器的配置和基本应用。
类UNIX操作系统在网络环境及手持设备环境下使用极为流行,几乎所有的网络服务器都是运行在类UNIX系统之上;基于类UNIX裁剪版本的手持设备也在市场中占有极大的比重,因此,对于网络工程专业掌握类UNIX操作系统的基本使用方法是相当重要的。
而Linux就是类UNIX中最为流行的一个分支,鉴于Linux的开源和Linux开发群的活跃特性,Linux都是高等院校计算机类专业必开设的课程。
而Linux操作系统课程设计能够更好的加强学生在课程学习中各种知识的综合应用能力和实践经验。
三、设计任务安排
本次课程设计包含两个设计内容,课程设计内容的选题要求如下:
1.以班级为单位,每个选题至少有13人选做;
2.在符合1中的选题要求后,题目可以任选,及没有严格要求必做哪一个设计内容;
3.设计内容选题名单请在课程设计开始后2天内,以电子文档方式按班级为单位提交。
四、时间安排
课程名称
班级
周次
星期
节次
时间
实验室
linux操作系统课设
网络工程091
3
全周
晚上
2011-2012-2第15-17周
东8-409
linux操作系统课设
网络工程092
3
全周
晚上
2011-2012-2第15-17周
东8-411
五、设计内容
设计内容一shell编程--用户信息管理(模拟)
1.目的和要求
掌握linux操作系统中shell脚本编程技术中的:
变量定义、变量使用、循环控制结构、条件选择结构、用户交互、文件读写、文本内容分析以及linux重要命令的使用等。
以验证学生对于shell脚本编程的掌握情况。
要求学生能够利用shell脚本编程实现较为基本的功能。
2.设计内容
在主Shell脚本文件里(必须以menu命名)要有一个多操作选项的菜单以便用户从中选择。
在不同任务的中,这些操作能自动实现以下功能:
1)在屏幕上显示当前所有用户的记录
2)在屏幕上显示当前所有用户(经过格式化和排序的)的记录
3)只在屏幕上显示用户名和用户ID
4)只在屏幕上显示(经过格式化和排序的)用户名和用户ID
5)查询并显示特定用户的记录
6)往passwd文件里增加新的用户记录
7)从passwd文件里删除某个用户记录
在目录下有四个文件分别为menu,passwd,add,delete
注:
●passwd是自建数据文件,而不是/etc/passwd这个文件,切记。
●menu、add和delete是shell脚本文件。
passwd文件中的内容具体形式如下所示:
root:
x:
0:
0:
root:
/root:
/bin/bash
linux:
x:
500:
500:
linux:
/home/linux:
/bin/bash
lianmin:
x:
503:
500:
lianmin:
/home/lianmin:
/bin/bash
如果,你选择此设计题目,请在passwd文件中,模仿以上形式,添加以你学号和姓名拼音为账户的两行记录,具体添加模式如下:
你的学号:
x:
1000:
1000:
something:
/home/你的序号:
/bin/bash
姓名的拼音:
x:
1001:
1001:
something:
/home/姓名的拼音:
/bin/bash
注意,这里添加这些类似系统用户的信息,并不是真实与用户关联的,这里只是用来进行测试shell脚本功能的数据信息而已。
1)menu脚本执行后,大概应该呈现为下图所示的情况:
假如,passwd文件中的内容如下所示:
root:
x:
0:
0:
root:
/root:
/bin/bash
linux:
x:
500:
500:
linux:
/home/linux:
/bin/bash
lianmin:
x:
503:
500:
lianmin:
/home/lianmin:
/bin/bash
080510001:
x:
800:
800:
something:
/home/080510001:
/bin/bash
zhangsan:
x:
801:
801:
something:
/home/zhangsan:
/bin/bash
2)选择菜单1时,显示的结果大概如下图所示:
3)选择菜单2时,显示的结果大概如下图所示:
4)选择菜单3时,显示的结果大概如下图所示:
5)选择菜单4时,显示的结果大概如下图所示:
6)选择菜单5,并输入需要查询的用户名时,显示的结果大概如下图所示:
7)选择菜单6,显示的结果大概如下图所示:
完成添加用户后,在调用菜单2应该能够看到新添加用户mycount的信息条目。
8)选择菜单7,通过用户ID来删除用户,显示的结果大概如下图所示:
3.设计环境
●vmware8虚拟环境、
●Ubuntu虚拟操作系统
●bash或其他shell脚本环境
4.设计提示
1)menu脚本框架提示:
#!
/bin/bash
record_file=passwd
add_file=add
delete_file=delete
a="你的选择是:
"
b="输入关键字是:
"
clear
whiletrue
do
echo"==========信息主菜单======================="
……
echo-e"你的选择是:
(等待用户输入)"
echo
readchoice
echo"$a$choice"
case$choicein
1)…..
2)…..
3)…..
4)…..
5)
whiletrue
do
echo"请输入要查询的用户名:
"
readanswer
echo"$b$answer"
if(test-z"$answer")
then
echo"你还没有输入"
continue
elif
(testhead$record_file|grep-iw$answer)#-i不区分大小写-w全符合
then
echo""
break
else
echo"你输入的用户不存在,没有找到$answer"
break
fi
done;;
6)source$add_file;;
7)source$delete_file;;
q)exit;;
Q)exit;;
*)echo"无效的代码";;
esac
echo"请按回车继续..."
readanswer
done
2)add脚本编写提示:
该脚本实现与用户的交互式添加用户信息,包括需要添加用户的:
用户名、用户密码、用户ID、组ID、全名、用户家目录、登录shell类型。
对于每一项信息需要进行单独的读取和必要验证。
下面给出添加用户名的相关代码示例:
echo-n"用户名:
"
readnewname
while(test-z$newname)
do
echo"没有输入用户名"
echo-n"用户名:
"
readnewname
done
until[`echo$newname|grep'^[a-zA-Z]*$'`]||[`echo$newname|grep'^[0-9][0-9]*$'`]||[`echo$newname|grep'^[a-zA-Z0-9]*$'`]
do
echo"用户名只包含字母和数字!
"
echo-n"用户名:
"
readnewname
done
3)delete脚本编写提示:
delete脚本通过用户ID,找到passwd文件中对应用户ID的记录,并将其删除。
同时要考虑到用户可能误操作,因此要在真正删除用户信息前,进行用户确认,如果用户不确认删除,那么就不能将用户信息记录从passwd中删除。
这就需要一个临时文件进行辅助,将删除后的效果保存于该临时文件中,只有用户确认删除后,再将临时文件内容写入到passwd文件。
否者保持passwd内容不变。
注意:
本设计题目中是对一个自建的passwd文件,而非/etc/passwd文件进行的操作。
如果在真实的环境中,要实现用户信息管理所需要考虑的事情要多的多。
比如:
文件访问权限问题、用户在系统中拥有的文件资源如何删除等。
设计内容二LAMP开发环境搭建与应用
1.目的和要求
Linux+Apache+Mysql+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。
随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。
从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案.
本设计课题期望学生能够在Ubuntu系统中搭建起一个LAMP开发环境,并完成编写一个网页,该网页中的内容应包含:
学生的个人简单信息、服务器系统相关信息等内容。
2.设计内容
1)在虚拟机环境中的Ubuntu系统中成功搭建LAMP开发环境。
2)编写一个网页,该网页能够显示完成本设计的学生信息以及apache服务器的相关信息。
3)可以在宿主机,即虚拟机运行系统中通过域名方式访问该网页。
3.设计环境
●运行于window系统下的vmware虚拟机环境
●运行于vmware虚拟机环境环境中的Ubuntu操作系统
●Linux系统的DNS服务配置套件bind9
4.设计提示:
1)LAMP开发环境搭建
(1)安装MYSQL
sudoapt-getinstallmysql-server
sudoapt-getinstallmysql-client
安装过程中会要设置用户名和密码,设置后要记住,后面会使用。
(2)安装Apache
sudoapt-getinstallapache2
(3)安装PHP
sudoapt-getinstallphp5
sudoapt-getinstalllibapache2-mod-auth-mysql
sudoapt-getinstallphp5-mysql
(4)设置Ubuntu文件执行读写权限:
LAMP组建安装好之后,PHP网络服务器根目录默认设置是在:
/var/www。
由于Linux系统的安全性原则,该目录下的文件读写权限是只允许root用户操作的,所以我们不能在www文件夹中新建php文件,也不能修改和删除,必须要先修改/var/www目录的读写权限。
在界面管理器中通过右键属性不能修改文件权限,得执行root终端命令:
sudochmod777/var/www。
然后就可以写入html或php文件了。
或者:
Øsuroot(用root用户)
Øchownusername/var/www(将username替换为您当前用户的用户名)
Øexit或者ctrl+d(退出root)
如果,ubuntu系统root用户还不可用,那是因为ubuntu系统默认root密码为空,您可以通过如下命令设置密码:
Øsudopasswd-lroot
(5)安装phpmyadmin-Mysql数据库管理
sudoapt-getinstallphpmyadmin
在安装过程中会要求选择Webserver:
apache2或lighttpd,选择apache2,按tab键然后确定。
然后会要求输入设置的Mysql数据库密码连接密码。
然后将phpmyadmin与apache2建立连接,例如:
www目录在/var/www,phpmyadmin在/usr/share/phpmyadmin目录,所以就用命令:
sudoln-s/usr/share/phpmyadmin/var/www建立连接。
在浏览器地址栏中打开http:
//localhost/phpmyadmin,测试是否工作正常。
(6)检测Apache是否正常
在浏览器中打开:
http:
//localhost/
如果出现如下信息,则表明正常。
(7)检测PHP是否正常
Ubuntu下Apache的默认安装路径为/var/www/,到其目录下新建info.php文件,文件内容为:
phpphpinfo();?
>
然后在浏览器中打开:
http:
//localhost/info.php看是否正常。
如果现实类似如下图所示状态表示PHP运行正常。
注:
在该目录直接新建文件是没有权限的,为其增加当前用户权限。
(8)检测MySql是否工作正常
上面php,Apache都已经测试过了,下面再测试一下Mysql数据库是否已经正确启用。
在/var/www目录下新建mysql_test.php:
php
$link=mysql_connect("localhost","root","123456");
if(!
$link)
{
die('Couldnotconnect:
'.mysql_error());
}
elseecho"Mysql已经正确配置";
mysql_close($link);
?
>
如果在浏览器中能够显示上图所示结果,就表示mysql运行正常。
(9)解决Firefox浏览器显示中文乱码等问题
上面在FireFox浏览器中打开mysql_test.php或phpmyadmin测试时,如果出现了中文乱码,则是默认语言设置问题,解决方法如下:
打开apache配置文件:
udogedit/etc/apache2/apache2.conf,在最后面加上:
AddDefaultCharsetUTF-8,如果还是乱码的,再将UTF-8改用gb2312。
重启Apache:
sudo/etc/init.d/apache2restart再刷新mysql_test.php中文乱码没有了。
如果要人工启动mysql:
mysql-uroot-p,根据提示输入密码。
如果重启Apache时出现:
*Restartingwebserverapache2
apache2:
Couldnotreliablydeterminetheserver’sfullyqualifieddomainname,using127.0.1.1forServerName
apache2:
Couldnotreliablydeterminetheserver’sfullyqualifieddomainname,using127.0.1.1forServerName
则还是修改apache配置文件:
sudogedit/etc/apache2/apache2.conf,在文件最后设置:
ServerName127.0.0.1
2)PHP网页设计
此次需要编写的php网页文件,通过浏览器显示需要达到如下图所示的效果:
获取以上部分系统信息的php语句如下所示:
1)服务器系统:
phpechodefined('PHP_OS')?
PHP_OS:
'未知';?
>
2)服务器软件:
phpecho$_SERVER["SERVER_SOFTWARE"];?
>
3)PHP版本:
phpechophpversion();?
>
4)MySQL服务器:
phpechomysql_get_server_info();?
>
5)服务器地址:
phpecho$_SERVER['SERVER_ADDR'];?
>
6)服务器根目录:
phpecho$_SERVER['DOCUMENT_ROOT'];?
>
7)服务器时区:
phpechodate("T",time())?
>
8)register_globals:
phpecho$onoff;?
>
9)文件上传:
phpecho$upload;?
>
10)用户主机名:
phpechogethostbyaddr($_SERVER['REMOTE_ADDR']);?
>
11)用户IP地址:
phpecho$_SERVER['REQUEST_METHOD'];?
>
3)apache服务器的域名配置
由上一步骤中,我们可以看到apache服务器的ip地址为192.168.41.136。
而平时我们访问网页时通常是使用域名来进行的。
因此,在此也希望大家能够熟悉一下Linux系统下的DNS服务的配置方法。
对于上面配置的apache服务器,如果在没有配置域名解析服务时,通常我们访问apache服务器的方式通常是:
●远程访问:
http:
//192.168.41.136
●本地访问:
http:
//127.0.0.1或http:
//localhost
而在这里我们希望能够通过我们自己的域名来访问apache服务器。
大致网络环境描述如下:
●ubuntu系统的主机名为:
whpuser,
●Ubuntu系统的IP地址为:
192.168.41.136
●windows系统的实体网卡IP地址为:
192.168.1.102
●vmware的虚拟nat网卡:
vmnet8的IP地址为:
192.168.41.1
●自定义的域:
●web服务器的机器名:
www,即访问apache服务器的域名为。
具体配置方法提示:
Linux系统中DNS服务主要使用bind9套件进行配置,因此首先需要安装好bind9.
sudoapt-getinstallbind9
安装好bind套件后,可以使用ls-l/etc/bind命令查看该目录中的文件,可以看到其中包含的一些默认DNS配置文件,其中需要修改的文件为named.conf.local。
为了满足前面给出的网络环境描述,需要配置以下几个文件的内容:
(1)named.conf.local(这个是安装后已存在的文件)
//
//Doanylocalconfigurationhere
//
zone"41.168.192.in-addr.arpa"IN{
typemaster;
file"/etc/bind/db.192.168.41";
};
zone"1.168.192.in-addr.arpa"IN{
typemaster;
file"/etc/bind/db.192.168.1";
};
zone""{
typemaster;
file"/etc/bind/";
};
//Consideraddingthe1918zoneshere,iftheyarenotusedinyour
//organization
//include"/etc/bind/zones.rfc1918";
以上斜体部分,是需要自行添加的内容。
下面根据上面添加内容中有下划线部分的文件路径指定的文件,需要自行创建和编辑内容。
(2)db.192.168.41
;db.192.168.41
;
$TTL604800
@INSOA..(
1;serial
604800;refresh
86400;retry
2419200;expire
604800);negativecacheTTL
@INNS.
136INPTR.
1INPTR.
(3)db.192.168.1
;db.192.168.1
;
$TTL604800
@INSOA..(
1;serial
604800;refresh
86400;retry
2419200;expire
604800);negativecacheTTL
@INNS.
102INPTR.
(4)
;
;
$TTL604800
@INSOA..(
1;serial
604800;refresh
86400;retry
2419200;expire
604800);negativecacheTTL
@INNS.
whpuserINA192.168.41.136
wwwINCNAMEwhpuser
windowINA192.168.41.1
window1INA192.168.1.102
编辑好以上文件文件后,需要重启bind9服务:
sudo/etc/init.d/bind9restart
通过以下命令查看服务启动中是否有错误:
tail/var/log/syslog
如果没有本质错误应该出现下图所示情况:
使用nslookup命令的交互式方式检验域名正向解析和反向解析是否正常:
以上内容成功后,应该能够使用域名在虚拟机环境运行的ubuntu中访问apache服务器,同时也能在运行虚拟机vmware的windows环境中通过域名来访问ubuntu系统中的apache服务器的网页(前提是需要将网卡的中IP配置中的主dns配置为ubuntu系统的IP地址)。
执行效果大致如下图所示:
●在Ubuntu系统中访问:
●在windows系统中访问:
六、设计要求
1.上机前请认真查询资料,并认真完成课程设计内容和报告编写工作;
2.上机时要保证到课率,并认真进行课程设计要求的内容;
3.任务完成时报告老师,上机验收运行结果,现场提问;
4.根据具体任务要求,提交源程序电子档和纸质课程设计说明书。
说明书中除了在封面应有题目、班级、姓名、学号和课程设计日期以外,其正文一般应包括:
1)课程设计目的
2)课程设计内容
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux操作系统 Linux 操作系统 课程设计 任务书
![提示](https://static.bdocx.com/images/bang_tan.gif)