Linux课程设计.docx
《Linux课程设计.docx》由会员分享,可在线阅读,更多相关《Linux课程设计.docx(17页珍藏版)》请在冰豆网上搜索。
Linux课程设计
目录
前言1
正文1
1实习的目的和意义1
3实习方法和内容2
3.1实习软硬件环境说明2
3.3telnet建立多帐户测试4
3.4网络配置文件与配置方法5
3.5配置NFS服务器7
3.6配置samba服务器9
总结15
参考文献:
15
前言
Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。
Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
虽然它是由学生的业余爱好发展而来,但是现在它已经成为最为流行的免费操作系统。
Linux稳定而富有竞争力。
许多大学与研究机构都使用Linux完成他们的日常计算任务。
人们在家用PC上使用Linux,许多公司也在使用它。
Linux主要用来浏览WEB,管理WEB站点,撰写与发送EMAIL,以及玩游戏。
Linux绝对不是玩具而是具有专业水平的操作系统,它的爱好者遍及世界。
Linux的源头要追溯到最古老的UNIX。
1969年,Bell实验室的KenThompson开始利用一台闲置的PDP-7计算机开发了一种多用户,多任务操作系统【1】。
很快Unix从实验室走出来并成为了操作系统的主流,现在几乎每个主要的计算机厂商都有其自有版本的Unix。
正文
Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统【2】。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
它能运行主要的UNIX工具软件、应用程序和网络协议。
它支持32位和64位硬件。
Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
它主要用于基于Intelx86系列CPU的计算机上。
这个系统是由全世界各地的成千上万的程序员设计和实现的。
其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。
Linux以它的高效性和灵活性著称,Linux模块化的设计结构,使得它既能在价格昂贵的工作站上运行,也能够在廉价的PC机上实现全部的Unix特性,具有多任务、多用户的能力。
Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。
Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。
它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用WindowsNT一样,允许我们使用窗口、图标和菜单对系统进行操作【3】。
1实习的目的和意义
熟悉基本的网络命令,pingi、ifconfing、netstat以及熟悉网络配置文件与配置方法,体会Linux多用户的特点利用telnet进行要求每个同学都有相应的帐户,配置NFS服务器,实现文件系统的远程挂载。
配置samba服务器,实现不同系统之间的文件共享,简单shell编程是本次实习操作的主要内容【4】。
1.1掌握熟悉基本的网络命令
如:
ping、ifconfig、netstat等,每位同学在同一台主机上建立自己的帐户,利用telnet体会Linux多用户的特点,配置telnet远程登录服务【5】。
1.2掌握网络配置文件和配置方法
1.3shell编程
1.编写一个shell脚本程序,它能根据输入的命令行参数采取不同的动作:
如果是目录,则列出该目录中的文件;如果是可执行的文件,则用shell执行之;如果是可读的文件,则分屏显示其内容。
2.编写一个弹出式菜单的shell程序并实现其简单的菜单功能:
************************************************
*MENU*
*1.copy2.rename*
*3.remove4.find*
*5.exit*
************************************************
即用户按下数字1,则提示用户输入源和目的文件名后执行复制;输入数字2,则提示用户输入要更名的文件或目录名后执行更名操作;输入数字3和4分别执行删除和查找操作;输入数字5,则退出该菜单shell程序的执行【6】。
3.编写一个小九九乘法表
2实习目标与总体方案
2.1熟悉基本网络命令
在同一台主机上建立自己的帐户,利用telnet体会Linux多用户的特点。
熟悉基本的网络命令,如:
ping、ifconfig、netstat等。
2.2配置NFS服务器以及配置samba服务器
配置NFS服务器,实现文件系统的远程挂载。
配置samba服务器,实现不同系统之间的文件共享
2.3使用shell编程
使用shell编写两个程序。
第一个可以显示一个菜单,程序根据用户选择的项目进行操作,有文件拷贝、文件删除、文件重命名等。
第二个打印一个小九九乘法表。
3实习方法和内容
3.1实习软硬件环境说明
硬件:
一台联想计算机,其配置为:
CPU:
Pentium(R)Dual-CoreCPUE5400@2.7GHZ2.7GHz内存:
2GB硬盘:
500G。
软件:
RedHatLinux9.0。
3.2常用网络操作命令
1.ipconfig:
检验网卡的TCP/IP设置情况
当使用IPConfig时不带任何参数选项,那么它显示每个NIC的IP地址、子网掩码和缺省网关值。
ipconfig/all当使用all选项时,IPConfig还会显示网卡中的物理地址(MAC)及主机名等信息。
命令格式:
Ifconfig[interface]
Ifconfiginterface[aftype]options|address…
ipconfig命令执行后如图3-2-1所示:
图3.2.1ipconfig命令的使用
2.ping:
检查两台计算机之间的网络是否连通
使用方法:
pingDest_IP参数
常用参数解释:
-t连续向目标主机发送数据(按Ctrl+c中断);
-n指定发包个数,缺省值为4;
-l指定发包大小,缺省值为32字节;
Ping命令使用ICMP协议,向目标地址发送ECHO-REQUEST数据包,如果网络是连通的,可以接收到目标地址主机发回的响应ECHO-REQUEST的数据包;否则表示目标地址不可到达。
命令格式:
Ping[-LRUbdfnqrvVaAB][-ccount][-Iinterval][-lpreload][-ppattern]
[-spacketsize][-tttl][-wdeadline][-Fflowlabel][-Iinterface]
[-Mhint][-Qtos][-Ssndbuf][-Ttimestampoption][-Wtimeout]
[hop…]destination
其中,参数destination是必须的,它可以是主机名或IP地址;其他的为命令选项。
ping命令执行后如图3.2.2所示:
图3.2.2ping命令的使用
3、netstat:
显示当前计算机中正在活动的网络连接信息和状态,如活动的TCP连接、计算机侦听的端口、以太网统计信息、IP路由表等【7】。
语 法:
netstat[-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
执行netstat命令来检测TCP/IP网络配置的正确性。
netstat命令执行后如图3-3-3所示:
图3.3.3netstat命令的使用
3.3telnet建立多帐户测试
Linux开启telnet服务,linux提供服务是由运行在后台的守护程序(daemon)来执行。
守护进程的工作就是打开1个端口(port),等待(listen)进入的连接。
在C/S模式中,如果客户提请了1个连接,守护进程就创建(fork)子进程来响应这个链接,而父进程继续监听其他服务的请求。
但是,对于系统所提供的每一个服务,如果都必须运行一个监听某个端口接连发生的守护进程序,那么通常以为着系统资源的浪费。
为此,“拓展的网络守护进程服务程序”xinetd(xinetedinterntdaemon).telnet服务也是由xinetd守护的。
telnet命令执行后如图3-3-4所示:
图3.3.4telnet建立多帐户测试
3.4网络配置文件与配置方法
1、/etc/sysconfig/network
/etc/sysconfig/network文件主要用于设置基本的网络配置,包括主机名称,网关等。
文件中的内容如下:
Networking:
用于设置linux网络是否允许,取值是yes或者是no。
Hostname:
用于设置主机名称。
Gateway:
用于设置网关的IP地址。
sysconfig/network文件
2、/etc/sysconfig/network-scripts/ifcfg-ethN
网卡设备名,IP地址、子网掩码、网关等配置信息都保存在网卡配置文件中。
一块网卡对于一个配置文件,配置文件通常位于/etc/sysconfig/network-scripts/目录下。
文件名是ifcfg-ethN,N;表示第几块网卡,N是从0开始的数字。
例如第一块网卡是ifcfg-eth0,第二块网卡是ifcfg-eth1以此类推。
Linux系统支持在一块物理网卡上绑定多个IP地址。
需要建立多个网卡配置文件,其文件名的形式如:
ifcfg-ethN:
M,其中N,M均是从0开始的数字。
例如:
第一块物理网卡的第一个虚拟网卡是ifcfg-eth0:
0。
所有的网卡Ip配置文件都有如下类型的格式,具体如下:
上述配置文件中各项具体的含义如下所述:
Device:
表示当前网卡设备的设备名称
Bootproto:
获取IP地址的方式,取值为static、bootp和dhcp。
Broadcast:
广播地址。
Hwaddr:
改网络设备的mac地址。
Ipaddr:
该网络设备的IP地址。
Netmask:
该设备的子网掩码。
Network:
该设备所处的网络的网络地址。
Gateway:
网卡的网关地址。
Onboot:
设置系统启动的时候是否启动该设备。
3、/etc/hosts
/etc/hosts文件是早期实现静态域名解析的一种方法,该文件的中存储IP地址和主机名的静态的映射关系。
用于本地解析,是dns的前身。
利用该文件进行名称解析的时候,系统会直接读取该文件的IP地址和主机对应的记录【8】。
etc/hosts文件
4、/etc/resolv.conf
/etc/resolv.conf文件是dns客户端用于指定系统所用的dns服务器的IP地址,在该文件中除了可以指定dns服务器后,还可以设置当前主机所在域以及dns搜索的路径等。
该文件的默认的内容是:
Nameserver:
设置dns服务器的IP地址。
Search:
设置dns的搜索路径,即不在进行完全域名解析的时候,默认的附加域名后缀。
Domain:
设置计算机的本地域名。
5、/etc/host.conf/etc/host.conf文件用来指定如何进行域名解析。
该文件的内容通常有如下几行:
Order:
设置主机名解析的可用方法及其顺序。
可用的方法有hosts(利用/etc/hosts文件进行解析),bind(利用dns服务器解析),nis(利用网络信息服务器进行解析)
Multi:
设置是否从/etc/hosts文件中返回主机的多个IP地址,取值为on和offNospoof:
取值为on或者off。
6、/etc/services
3.5配置NFS服务器
1、使用mount命令来挂载另一个机器上的NFS文件系统:
Mountshadowman.:
/misc/export/misc/local
2、导出NFS文件系统,要使用NFS服务器配置工具,首先选择面板上的“主菜单”→“系统配置”→“服务器配置”→“NFS服务器”命令,或输入redhat-config-nfs命令。
显示如图3.5.1所示:
3.5.1NFS服务器配置
3、要添加NFS共享,单击“添加”按钮,会出现如下图所示的对话框。
3.5.2NFS共享
3.5.3NFS共享
3.5.4NFS共享
4、启动服务器
使用以下命令来启动NFS进程:
cd/tmp;mkdirliuzhenzhen;ervicenfsrestart
3.5.5NFS服务器配置
3.6配置samba服务器
1、要使用该程序,要从桌面启动Samba服务器配置工具,选择面板上的“主菜单”→“系统配置”→“服务器配置”→“Samba服务器”命令,或输入redhat-config-nfs命令【9】。
如下
图所示:
3.6.1samba服务器配置
3.6.2samba服务器配置
3.6.3samba服务器配置
2、启动服务器
使用以下命令来查看NFS守护进程的状态:
/sbin/servicesmbstatus
使用以下命令来启动NFS守护进程:
/sbin/servicesmbstart
3.7shell编程
1、编写一个shell脚本程序,它能根据输入的命令行参数采取不同的动作:
如果是目录,则列出该目录中的文件;如果是可执行的文件,则用shell执行之;如果是可读的文件,则分屏显示其内容【10】。
图3.7.1shell脚本程序源码
图3.7.2shell脚本程序结果
2.编写一个弹出式菜单的shell程序并实现其简单的菜单功能:
************************************************
*MENU*
*1.copy2.rename*
*3.remove4.find*
*5.exit*
************************************************
即用户按下数字1,则提示用户输入源和目的文件名后执行复制;输入数字2,则提示用户输入要更名的文件或目录名后执行更名操作;输入数字3和4分别执行删除和查找操作;输入数字5,则退出该菜单shell程序的执行【11】。
图3.7.3弹出式菜单源码
图3.7.4弹出式菜单运行结果图
3.编写一个小九九乘法表
图3.7.5小九九乘法表代码图
图3.7.6小九九乘法结果图
4、C编程:
分别用递归的方法求阶乘。
图3.7.7求阶乘的代码图
图3.7.8求阶乘的效果图
总结
此次课程设计总体情况良好,基本达到了该项目的所有要求,完成了实践教学的目的。
在安装和配置各个服务器时,出现过不少问题,但都通过问老师,同学或从网上查找资料最后这些问题都已经解决。
通过这次实训我学到了很多知识,对以后的学习和工作有很大帮助。
在此衷心地对老师表示感谢要熟练掌握Linux操作系统的用法就必须动手实践,而课程实习就是实践的开始,课程实习也是对我们综合能力的考察。
Linux模块是在内核空间运行的程序,实际上是一种目标对象文件,没有链接,不能独立运行,但是可以装载到系统中作为内核的一部分运行,从而可以动态扩充内核的功能。
Linux提供了内核模块这种功能强大的扩展方式,它不仅弥补了单内核的一些不足,而且对性能没有影响。
通过内核模块机制,可以方便的进行内核开发和驱动开发,而事实上Linux中大多数驱动和文件系统都是已内核模块方式实现的。
在内核模块机制下,可以随时在需要的情况下加载新的内核模块,而不需要重新编译内核和引导系统。
当内核被加载到系统中时,他就成为内核源代码的一部分,与其他内核代码地位完全相同。
模块自身并不是独立的进程,它可以认为就是核心态运行。
同样,既然内核模块和内核其他部分地位一样,这就导致在开发式必须谨慎,因为可能一个小错误就会导致整个系统崩溃。
深刻理解Linux内核模块编程,利用好Linux内核模块的优势,无论是进行Linux学习还是内核模块开发都是十分有益的
参考文献:
[1]DavidTansley著.徐炎译.Linux与UNIXShell编程指南.北京:
机械工业出版社,2000.6
[2]刘兵著.Linux实用教程[M].北京:
中国水利水电出版社,2004.7
[3]朱居正、高冰著.RedHatLinux9实用培训教程.北京:
清华大学出版社,2004.7
[4]张炯著.Unix网络编程实用技术与实例分析.北京:
清华大学出版社,2002.11
[5]顾云苏著.Linux服务器配置与优化.北京:
清华大学出版社,2001.9[6]李波.Linux服务器配置与实战指南.北京:
人民邮电出版社,2004:
209-211.
[7]Shell脚本学习指南/美罗宾著机械工业出版社。
2009.4.1
[8]罗文村,汤庸.Linux实践及应用[M].北京:
清华大学出版社,2OO6.
[9]谢蓉,巢爱棠.Linux基础及应用.北京:
中国铁道出版社,2005.
[10]刘胤杰,岳浩.Linux操作系统教程[M].北京:
机械工业出版社,2005.
[11]王波.Linux网络技术[M].北京:
机械工业出版社,2OO7.