LINUX大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013届课程大作业
《Linux基础与应用》
课程大作业
学生姓名王春景
学号5011209204
所属学院信息工程学院
专业计算机科学与技术
班级计算机13-2班
指导教师范振岐
教师职称讲师
塔里木大学教务处制
《Linux基础与应用》课程大作业
王春景摘要:Linux是操作系统,确切地说是GNU/Linux操作系统。
它的诞生、发展与UNIX、MINIX操作系统、GNU计划、POSIX标准以及Internet广泛应用有着极大的关系。
本文就从对Linux系统中的一些代码程序做了简单的介绍,如:ping、ifconfig、netstat等网络命令的使用,熟悉网络配置文件的配置方法,体会Linux多用户的特点,利用telnet 进行。
建立多个帐户进行测试。
配置NFS服务器,实现文件系统的远程挂载。
配置samba 服务器,实现不同系统之间的文件共享。
简单shell编程等几个方面对Linux系统进行了一个全面的讲解。
关键词:服务器,网络命令,文件配置
前言
简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。
这个系统是由世界各地的成千上万的程序员设计和实现的。
其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。
Linux可在GNU(“不是UNIX”工程的缩写)公共许可权限下免费获得,是一个符合POSIX标准的操作系统。
Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。
它还包括带有多个窗口管理器的
X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。
Linux不仅为用户提供了强大的操作系统功能,而且还提供了丰富的应用软件。
用户不但可以从Internet上下载Linux及其源代码,而且还可以从Internet上下载许多Linux的应用程序。
可以说,Linux本身包含的应用程序以及移植到Linux上的应用程序包罗万象,任何一位用户都能从有关Linux的网站上找到适合自己特殊需要的应用程序及其源代码,这样,用户就可以根据自己的需要下载源代码,以便修改和扩充操作系统或应用程序的功能。
这对Windows NT、Windows98、MS-DOS或OS/2等商品化操作系统来说是无法做到的。
Linux具有:稳定、可靠、安全的优点,并且有强大的网络功能。
其中有对读、写进行权限控制、审计跟踪、核心授权等技术,这些都为安全提供了保障。
在相关软件的支持下,可实现WWW、FTP、DNS、DHCP、E-mail等服务,还可作为路由器使用,利用IPCHAINS/IPTABLE网络治理工具可构建NAT及功能全面的防火墙。
熟悉基本的网络命令,pingi、ifconfing、netstat以及熟悉网络配置文件与配置方法,体会Linux多用户的特点利用telnet进行要求每个同学都有相应的帐户,配置NFS 服务器,实现文件系统的远程挂载。
配置samba服务器,实现不同系统之间的文件共享,
简单shell编程是本次实习操作的主要内容。
1.1课程大作业的目的和意义
我们是计算机科学与技术专业的本科生,《Linux 操作系统》是我们重要的必修课程。
当代社会学要大学培养出理论扎实,动手实践能力强的大学生。
所以,本次课程大作业的目的就在于通过一次实践性的活动加深对这门课程的理解,使我们在感性的认识上进一步
升华为理性的认识。
为后继课程的学习打下坚实的基础。
马克思主义唯物辩证法认为,实践是连接客观实在和人主观意识的通道和桥梁。
物质对意识的作用以及意识对物质的反作用都蕴含在实践活动当中。
也就是,实践是检验真理的唯一标准。
对这门课的学习状况的好坏,用一次课程大作业便可以检验出来。
而这,就是本次我们课程大作业的意义之所在。
1.2课程大作业的目标与总体方案
本次课程大作业主要是通过对Linux如下的几点的认真落实:
(1)通过这次实习掌握网络命令的使用方法。
(2)掌握网络配置文件的配置方法。
(3)学会配置NFS和Samba服务器。
(4)掌握shell编程的基本知识。
从而将理论知识实践化,提高对知识点的理解与运用,故做了如下的计划安排,将这项工程分为两大部分:基本命令的使用网络配置等和shell程序的编写。
首先在程序的基本命令的使用网络配置由分为几个步骤:
(1)熟悉基本的网络命令以及他们的使用方法,例如ping、ifconfig、netstat等网络命令。
(2)熟悉网络配置文件的配置方法。
(3)体会Linux多用户的特点,利用telnet进行。
每个人建立个自己的帐户进行测试。
(4)配置NFS服务器,实现文件系统的远程挂载。
(5)配置samba服务器,实现不同系统之间的文件共享。
(6)简单shell编程。
(7)gcc的简单使用。
1.3实习方法和内容
1.3.1 常用网络操作命令
1、ping命令
执行ping命令可以测试本机与网络中其他计算机的连通性,因此,在组网中常常使用该命令排除网络故障。
Ping命令使用ICMP协议,向目标地址发送ECHO-REQUEST数据包,如果网络是连通的,可以接收到目标地址主机发回的响应ECHO-REQUEST的数据包;否则表示目标地址不可到达。
Ping命令执行后如图所示:
图1.3.1.1 ping命令的使用
其中,参数destination是必须的,它可以是主机名或IP地址;其他的为命令选项。
2、ifconfig命令
执行ifconfig命令查看本地主机的网络配置信息,也可以用于配置网络硬件接口、IP地址、网络掩码、网关地址和广播地址等。
命令格式:
Ifconfig[interface]Ifconfig interface [aftype] options | address
Ifconfig命令执行后如图2-2所示:
图2.3.1.2 ifconfig命令的使用
3、netstat命令
执行netstat命令来检测TCP/IP网络配置的正确性。
netstat命令执行后如图2-3所示:
图1.3.3.3 netstat命令的使用
1.3.2 网络配置文件与配置方法
(1)/etc/hosts文件
/etc/hosts也称为主机表,他的作用是为用户提供简单、直接的主机名到IP地址之间的转换。
用户在访问网络上某台主机时可以直接使用IP地址也可以使用主机名称,但使用主机名称时必须将它翻译成计算机能识别的IP地址,利用/etc/hosts文件可以实现
1种比较简单的名字解析方法:用户也可使用域名服务器来完成主机名称到IP地址的转换。
(2)/etc/host.confi文件
/etc/host.conf时解析配置文件,它的作用时告诉计算机系统将如何进行名字解析。
因此该文件包含有指向解析库的配置信息。
文件的每行应该包含1个配置关键字,其后时配置信息。
这些关键字可以使order,trim,multi,nospoof,和reorder。
(3)/etc/resolv.conf文件
它记录了本机使用的主、第二、第三DNS服务器的IP地址和域名搜索路径。
Linux
系统为了提高可靠性,控制1个域的域名服务器往往不止一个。
同样,每个主机为了提高可靠性,也设置多个域名服务器的IP地址;系统将按照用户指定的顺序逐个查询直到找到为止。
1.3.3体会Linux多用户的特点,利用telnet进行
Linux是一个真正的多用户操作系统,这表示它可以同时接受多个用户登录。
Linux 还允许一个用户进行多次登录,这是因为Linux和许多版本的UNIX一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行多次登录。
比如说很多人用终端同时登录上机器,同时使用机器,互相不受影响可以用telnet,ssh。
一台装了Linux的联想计算机,班里每个同学都建立了自己的用户,然后通过各自的计算机用telnet来连接到装有Linux的操作系统中看,多用户共同连接却互不影响,使我们充分感受了Linux多用户的特点。
图1.3.3.4telnet建立多帐户测试
1.3.4配置NFS服务器,实现文件系统的远程挂载
1、使用mount命令来挂载另一个机器上的NFS文件系统:
Mount shadowman. :/misc/export/misc/local
2、导出NFS文件系统,要使用NFS服务器配置工具,首先选择面板上的“主菜单”→“系统配置”→“服务器配置”→“NFS服务器”命令,或输入redhat-config-nfs命
令。
显示如图2.3.5.1所示:
图1.3.4.1服务器配置
3、要添加NFS 共享,单击“添加”按钮,会出现如下图所示的对话框。
图1.3.4.2NFS共享
图1.3.4.3NFS共享
图1.3.4.4NFS共享
4、启动服务器
使用以下命令来查看NFS守护进程的状态:/sbin/service nfs status
使用以下命令来启动NFS守护进程:/sbin/service nfs start
图1.3.4.5NFS服务器配置
1.3.5配置samba服务器,实现不同系统之间的文件共享
1、要使用该程序,要从桌面启动Samba服务器配置工具,选择面板上的“主菜单”→“系统配置”→“服务器配置”→“Samba服务器”命令,或输入redhat-config-nfs 命令。
如下图所示:
图1.3.5.1 samba服务器配置
图1.3.5.2 samba服务器配置
图1.3.5.3 samba服务器配置
2、启动服务器
使用以下命令来查看NFS守护进程的状态:/sbin/service smb status
使用以下命令来启动NFS守护进程:/sbin/service smb start
图1.3.5.4 samba服务器配置
1.3.6简单shell编程
1.编写一个shell脚本程序,它能根据输入的命令行参数采取不同的动作:如果是目录,则列出该目录中的文件;如果是可执行的文件,则用shell执行之;如果是可读的文件,则分屏显示其内容。
#! /bin/sh -
read input
if [ -d $input ] ; then
echo "$input is a directory"
ls $input
elif [ -x $input ] ; then
echo "$input is a executable"
sh $input
elif [ -r $input ] ; then
echo "$input is a read file"
more $input
else
ll $input
fi
运行测试:
2.编写一个弹出式菜单的shell程序并实现其简单的菜单功能:
************************************************
* MENU *
* 1.copy 2.rename *
* 3.remove 4.find *
* 5.exit *
************************************************
即用户按下数字1,则提示用户输入源和目的文件名后执行复制;输入数字2,则提示用户输入要更名的文件或目录名后执行更名操作;输入数字3和4分别执行删除和查找操作;输入数字5,则退出该菜单shell程序的执行。
#! /bin/sh -
clear
while [ 0 ] ; do
echo "********************************************"
echo "* MENU *"
echo "* 1.copy 2.rename *"
echo "* 3.remove 4.find *"
echo "* 5.exit *"
echo "please input a number: 1~5"
echo -n " select:"
read input
echo
case "$input" in
1) echo -n "input the source fileName:"
read sname
echo
echo -n "input the destination fileName:" read dname
cp -arf $sname $dname
echo "copy finish !";;
2) echo -n "input the original fileName:"
read oname
echo
echo -n "input the new fileName:"
read rename
mv $oname $rename
echo "rename finish !";;
3) echo -n "input you want remove fileName:" read removename
rm $removename
echo " remove file finish !";;
4) echo -n "input you want find fileName:" read findname
find /home -name $findname
echo "find finish !";;
5) exit;;
*) echo "you input a invaile option !!!";; esac
done
exit 0
运行测试:
3.编写一个小九九乘法表
程序代码:
#! /bin/sh -
for (( i = 1 ; i < 10 ; i++ ))
do
for (( j = 1 ; j <= i ; j++ ))
do
echo -ne "$i*$j="`expr $i \* $j`" "
done
echo
done
运行测试:
1.3.7 gcc的简单使用
1. 递归求阶乘
#include "stdio.h"
int fun(int n)
{
if (n==1)
return 1;
else
return n*fun(n-1);
}
main()
{
int n;
printf("input a number:");
scanf("%d", &n);
printf("%d! =%d \n",n,fun(n));
}
运行测试:
2. 递归求1至n的累加
#include "stdio.h"
int fun(int n)
{
int sum = 0;
if (n == 1)
return 1;
else
return (n + fun (n-1));
}
main()
{
int n;
printf("input a number:");
scanf("%d",&n);
printf("1+.....+%d=%d \n ",n,fun(n)); }
运行测试:
3. 递归求1至n之间所有的奇数
#include "stdio.h"
void fun(int n)
{
if (n == 1){
printf("%d\n",n);
return ;
}
else{
if(n % 2){
printf("%d ",n);
}
fun (n-1);
}
}
main()
{
int n;
printf("input a number:");
scanf("%d",&n);
fun(n);
}
运行测试:
总结
由于Linux的强大功能大都是用命令来实现的,要熟练掌握Linux操作系统的用法就必须动手实践,多练习系统中及各工具的命令,而课程实习就是练习和实践的开始,课程大作业也是对我们综合能力的考察。
刚接触Linux操作系统,第一次做关于Linux系统的课程大作业,难免存在许多不足,而且对有一些命令的理解不是很深入。
但是通过此次实习,我们可以熟练的掌握基本的网络命令、网络配置文件及其配置方法以及NFS的配置,亲身体会到了Linux的多用户的特点。
这是我第一次接触Linux,书上的内容很精致,但是要利用书上所学的知识来让我们编写一个实际的程序实在是非常困难。
在调试过程中屡调屡败的状态下,我十分着急,就在这时,范老师给了我热情的帮助,范老师指导我调试程序,说哪些是错的,哪些是多余的,哪些是必要的,一个杂乱无章的程序被修改得有条不紊,很显然结果也是最最正确的。
在此,我真诚的感谢帮助我的老师,老师就是黑暗中的指明灯,没有老师的指导,就没有我们顺利的完成任务的喜悦。
老师的工作态度让我们佩服,老师的一流技术让我们信服,老师的无私奉献让我们折服。
当然,同学们的帮助也是我前进的力量,也让我体会到真诚的友谊。
团结就是力量,在老师、同学的帮助下,我顺利完成了此次的课程大作业。
也让我体会到了成功的来之不易,只有真正付出过才有满意的收获。
在此,我诚心的对所有帮助过我的老师同学们说一句:谢谢!
参考文献:
[1] 王波.Linux网络技术[M].北京:机械工业出版社,2OO7.
[2] 李波.Linux服务器配置与实战指南.北京:人民邮电出版社,2004:209-211.
[3] 罗文村,汤庸.Linux实践及应用[M].北京:清华大学出版社,2OO6.
[4] 谢蓉,巢爱棠.Linux基础及应用.北京:中国铁道出版社,2005.
[5] 许宏松,吴明行,廖世恩.Linux应用程序开发指南[M].北京:机械工业出版社,
[6] Robert Love.Linux Kernel Development.影印版[M].北京:机械工业出版社。
2006.
[7] 赵伟安.网络服务器配置与应用.西安:中国铁道出版社,2006:156-161.
[8] 赵松涛.网络服务器配置与管理.北京:人民邮电出版社,2006:133-154.
[9] 杨鹏.Linux服务器架设.北京:清华大学出版社,2003:55-59.
[10] 程立平.虚拟机Vmware的安装和使用.重庆:人民邮电出版社,2004:42-48.
[11] 赵宏,曹洁.Linux系统指南[M].成都:西南交通大学出版社。
2008.
[12] 李良玉.操作系统-Red Hat.陕西:西安电子科技大学出版社,2003:14-19.
[13] 倪春胜.高效架设Red Hat Linux服务器.北京:清华大学出版社,2003:16-17.
[14] 刘胤杰,岳浩.Linux操作系统教程[M].北京:机械工业出版社,2005.
[15] 郭玉东.Linux操作系统结构分析[M].西安:西安电子科技大学出版社,2OO2.
[16] 赵松涛.Unix系统原理与应用.北京:清华大学出版社,2004:29-31. 2000.
[17] 杨波.APACHE服务器配置全攻略.四川:电子科技大学出版社,2001:12-16.
[18] 王景新.Linux系统管理完全手册.清华大学出版社,2008:19-27.
[19] 孙培旺,毛海敏.基于vmware的linux实验教学环境的实现【J】.计算机教育.。