Linux课程设计详解.docx
《Linux课程设计详解.docx》由会员分享,可在线阅读,更多相关《Linux课程设计详解.docx(18页珍藏版)》请在冰豆网上搜索。
Linux课程设计详解
摘要
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。
这是其他的操作系统所做不到的。
正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
Linux的基本思想有两点:
第一,一切都是文件;第二,每个软件都有确定的用途。
其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。
这次的课程设计为了熟悉以下内容Linux基本网络命令,配置网络文件,建立个人账户,配置samba服务器,配置vsFTp服务器,shell编程。
关键词:
Linux基本网络命令配置网络文件建立个人账户配置samba服务器配置vsFTp服务器shell编程
1.绪论
1.1引言
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以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
它主要用于基于Intelx86系列CPU的计算机上。
这个系统是由全世界各地的成千上万的程序员设计和实现的。
其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。
2.操作系统特性
2.1linux的主要特性
(1)基本思想
Linux的基本思想有两点:
第一,一切都是文件;第二,每个软件都有确定的用途。
其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。
至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
(2)发展领域
职业领域:
系统应用类(网管\系统管理和维护人员\安全管理人员中低端行业领域)待遇属于中下。
系统开发类行业(JAVA软件开发\C语言软件开发\WEB开发\嵌入式软件开发)其中嵌入式软件开发是linux应用最广的领域待遇属于中等
发展方向:
UNIX往高端领域和产业发展,例如:
AIX、HP-UX、Solaris等等。
(3)完全免费
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。
这是其他的操作系统所做不到的。
正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
(4)完全兼容POSIX1.0标准
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。
这为用户从Windows转到Linux奠定了基础。
许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
(5)多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。
多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
(6)良好的界面
Linux同时具有字符界面和图形界面。
在字符界面用户可以通过键盘输入相应的指令来进行操作。
它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。
在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
(7)支持多种平台
Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。
此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。
2001年1月份发布的Linux2.4版内核已经能够完全支持Intel64位芯片架构。
同时Linux也支持多处理器技术。
多个处理器同时工作,使系统性能大大提高。
2.2UNIX的主要特点
(1)模块化程度高
Linux的内核设计非常精巧,分成进程调度、内存管理、进程间通信、虚拟文件系统和网络接口五大部分;其独特的模块机制可根据用户的需要,实时地将某些模块插入或从内核中移走,使得Linux系统内核可以裁剪得非常小巧,很适合于嵌入式系统的需要.
(2)源码公开
由于Linux系统的开发从一开始就与GNU项目紧密地结合起来,所以它的大多数组成部分都直接来自GNU项目。
任何人、任何组织只要遵守GPL条款,就可以自由使用Linux源代码。
(3)广泛的硬件支持
Linux能支持x86、ARM、MIPS、ALPHA和PowerPC等多种体系结构的微处理器。
(4)安全性及可靠性好内核高效稳定
Linux内核的高效和稳定已在各个领域内得到了大量事实的验证。
Linux中大量网络管理、网络服务等方面的功能,可使用户很方便地建立高效稳定的防火墙、路由器、工作站、服务器等。
为提高安全性,它还提供了大量的网络管理软件、网络分析软件和网络安全软件等。
(5)具有优秀的开发工具
开发嵌入式系统的关键是需要有一套完善的开发和调试工具。
传统的嵌入式开发调试工具是在线仿真器(InCircuitEmulator,ICE),它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,从而使开发者能非常清楚地了解到程序在目标板上的工作状态,便于监视和调试程序。
在线仿真器的价格非常高,而且只适合做非常底层的调试。
如果使用的是嵌人式Linux,一旦软硬件能支持正常的串口功能,即使不用在线仿真器,也可以很好地进行开发和调试工作,从而节省了一笔不小的开发费用。
嵌入式Linux为开发者提供了一套完整的工具链(ToolChain),能够很方便地实现从操作系统到应用软件各个级别的调试。
由于UNIX系统对各种数据库,特别是关系型数据库管理系统提供了强大的支持能力,因此主要的数据库厂家,包括Oracle,Informix,Sybase,Progress等都将UNIX作为优选的运行平台,而且创造出极高的性能价格比。
3.系统设计
3.1设计的目的与意义
(1)Linux操作系统具有较好的可移植性、良好地编程环境和强大的网络工。
程,作为计算机专业的学生,Linux是一门非常重要的必修课,
(2)通过这课程设计能够全面了解Linux的基本命令和基本操作,而且通过上机操作提高自己的编程能力、程序调试能力和应用能力。
(3)本次Linux课程设计的目的就在于通过一次实践性的活动加深对这门课程的理解,使我们在感性的认识上进一步升华为理性的认识。
为后继课程的学习打下坚实的基础。
(4)通过这次课程设计能够检测自己在这门课程上学习的好坏,这是这次课程设计的意义所在。
3.2课程设计的目标
(1)熟悉基本的网络命令以及他们的使用方法,例如ping、ifconfig、netstat等网络命令。
(2)熟悉网络配置文件的配置方法。
(3)体会Linux多用户的特点,利用telnet进行。
每个人建立个自己的帐户进行测试。
(4)配置samba服务器,实现不同系统之间的文件共享。
(5)配置vsFTP服务器
(6)简单shell编程。
3.3课程设计的要求
(1)通过这次实习掌握网络命令的使用方法。
(2)掌握网络配置文件的配置方法。
(3)学会配置Samba和FTP服务器。
(4)掌握shell编程的基本知识。
4.课程设计的具体内容
4.1基本网络命令及使用方法
(1)ping命令
功能说明:
检测主机。
语法:
ping[-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]
标准用法:
ping(-选项)主机名称或IP地址
补充说明:
执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
参数:
-d使用Socket的SO_DEBUG功能。
-c<完成次数>设置完成要求回应的次数。
-f极限检测。
-i<间隔秒数>指定收发信息的间隔时间。
-I<网络界面>使用指定的网络界面送出数据包。
-l<前置载入>设置在送出要求信息之前,先行发出的数据包。
-n只输出数值。
-p<范本样式>设置填满数据包的范本样式。
-q不显示指令执行过程,开头和结尾的相关信息除外。
-r忽略普通的RoutingTable,直接将数据包送到远端主机上。
-R记录路由过程。
-s<数据包大小>设置数据包的大小。
-t<存活数值>设置存活数值TTL的大小。
-v详细显示指令的执行过程。
Ping命令执行结果如下图:
(2)ifconfig命令
语法:
ifconfig[网络设备][downup-allmulti-arp-promisc][add<地址>][del<地址>][<硬件地址>][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>]
补充说明:
ifconfig可设置网络设备的状态,或是显示当前的设置。
参数:
[网络设备]网络设备的名称。
Down关闭指定的网络设备。
up启动指定的网络设备。
-arp打开或关闭指定接口上使用的ARP协议。
前面加上一个负号用于关闭该选项。
-allmuti关闭或启动指定接口的无区别模式。
前面加上一个负号用于关闭该选项。
-promisc关闭或启动指定网络设备的promiscuous模式。
前面加上一个负号用于关闭该选项。
Add<地址>设置网络设备IPv6的IP地址。
Del<地址>删除网络设备IPv6的IP地址。
Media<网络媒介类型>设置网络设备的媒介类型。
mem_start<内存地址>设置网络设备在主内存所占用的起始地址。
Metric<数目>指定在计算数据包的转送次数时,所要加上的数目。
Mtu<字节>设置网络设备的MTU。
Netmask<子网掩码>设置网络设备的子网掩码。
Tunnel<地址>建立IPv4与IPv6之间的隧道通信地址。
-broadcast<地址>将要送往指定地址的数据包当成广播数据包来处理。
-pointopoint<地址>与指定地址的网络设备建立直接连线,此模式具有保密功能。
Ifconfig命令执行结果如下:
(3)netstat命令
功能说明:
显示网络状态。
语法:
netstat[-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
补充说明:
利用netstat指令可让你得知整个Linux系统的网络情况。
参 数:
-a或--all显示所有连线中的Socket。
-A<网络类型>或--<网络类型>列出该网络类型连线中的相关地址。
-c或--continuous持续列出网络状态。
-C或--cache显示路由器配置的快取信息。
-e或--extend显示网络其他相关信息。
-F或--fib显示FIB。
-g或--groups显示多重广播功能群组组员名单。
-h或--help在线帮助。
-i或--interfaces显示网络界面信息表单。
-l或--listening显示监控中的服务器的Socket。
-M或--masquerade显示伪装的网络连线。
-n或--numeric直接使用IP地址,而不通过域名服务器。
-N或--netlink或--symbolic显示网络硬件外围设备的符号连接名称。
-o或--timers显示计时器。
-p或--programs显示正在使用Socket的程序识别码和程序名称。
-r或--route显示RoutingTable。
-s或--statistice显示网络工作信息统计表。
-t或--tcp显示TCP传输协议的连线状况。
-u或--udp显示UDP传输协议的连线状况。
-v或--verbose显示指令执行过程。
-V或--version显示版本信息。
-w或--raw显示RAW传输协议的连线状况。
-x或--unix此参数的效果和指定"-Aunix"参数相同。
--ip或--inet此参数的效果和指定"-Ainet"参数相同。
netstat命令执行结果如下图所示:
4.2telnet建立多账户测试
功能说明:
远端登入。
语法:
telnet[-8acdEfFKLrx][-b<主机别名>][-e<脱离字符>][-k<域名>][-l<用户名称>][-n<记录文件>][-S<服务类型>][-X<认证形态>][主机名称或IP地址<通信端口>]
补充说明:
执行telnet指令开启终端机阶段作业,并登入远端主机。
参数:
-8允许使用8位字符资料,包括输入与输出。
-a尝试自动登入远端系统。
-b<主机别名>使用别名指定远端主机名称。
-c不读取用户专属目录里的.telnetrc文件。
-d启动排错模式。
-e<脱离字符>设置脱离字符。
-E滤除脱离字符。
-f此参数的效果和指定"-F"参数相同。
-F使用KerberosV5认证时,加上此参数可把本地主机的认证数据上传到远端主机。
-k<域名>使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名。
-K不自动登入远端主机。
-l<用户名称>指定要登入远端主机的用户名称。
-L允许输出8位字符资料。
-n<记录文件>指定文件记录相关信息。
-r使用类似rlogin指令的用户界面。
-S<服务类型>设置telnet连线所需的IPTOS信息。
-x假设主机有支持数据加密的功能,就使用它。
-X<认证形态>关闭指定的认证形态。
4.3配置samba服务器,实现不同系统之间的文件共享
Samba是一整套的UNIX程序(包括Linux),它可以理解SMB,即ServerMessageBlock协议。
Windows系列和OS/2操作系统都是使用SMB协议来在不同的计算机之间相互通信的。
通过在UNIX上安装Samba,就使得UNIX可以同Windows系列计算机之间相互通信,并可以使UNIX机器模拟成Windows机器。
这样,安装了Samba的Linux机器就可以模拟WindowNT的功能,它并能提供几乎全部的WindowsNT功能。
实现不同系统之间的文件共享,步骤如下图所示:
4.4配置vsFTP服务器
在众多的网络应用中,FTP(FileTransferporotocol)有着非常重要的地位。
在Internet中一个十分重要的资源就是软件资源。
而各种各样的软件资源大多数都是放在FTP服务器中的。
可以说,FTP与WEB服务几乎占据了整个Internet应用的80%以上。
FTP服务可以根据服务对象的不同分为两类:
一类是系统FTP服务器,它只允许系统上的合法用户使用;另一类是匿名FTP服务器,AnonymousFTPServer,它使用任何人都可以登录到FTP服务器上去获取文件。
标准用法:
ftp-v-d-i-n-g[主机名]
-v显示远程服务器的所有响应信息。
-d使用调试方式。
-i关闭互动模式不许问任何问题。
-n限制ftp的自动登录,即不使用.netrc文件。
-g取消全局文件名。
(1)配置参数
(2)重启配置vsFTp
(3)查询配置的vsftp
4.5简单shell编程
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。
它接收用户输入的命令并把它送入内核去执行。
实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。
不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。
Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。
总结
由于Linux的强大功能大都是用命令来实现的,要熟练掌握Linux操作系统的用法就必须动手实践,多练习系统中及各工具的命令,而课程实习就是练习和实践的开始,课程实习也是对我们综合能力的考察。
刚接触Linux操作系统,第一次做关于Linux系统的课程实习,难免存在许多不足,而且对有一些命令的理解不是很深入。
但是通过此次实习,我们可以熟练的掌握基本的网络命令、网络配置文件及其配置方法以及ftp的配置,亲身体会到了Linux的多用户的特点。
这次课设让我认识到书上的内容很精致,但是要利用书上所学的知识来让我们编写一个实际的程序实在是非常困难。
调试过程中我屡调屡败的状态下,老师和同学们给了我热情的帮助,他们指导我调试程序,说哪些是错的,哪些是多余的,哪些是必要的,一个杂乱无章的程序被修改得有条不紊,很显然结果也是最最正确的。
在此,我真诚的感谢帮助我的老师和同学们。
团结就是力量,在老师、同学的帮助下,我顺利完成了此次的课程设计。
也让我体会到了成功的来之不易,只有真正付出过才有满意的收获。
同时也让我认识到,理论知识要与实际相结合。
我们认为很简单的,实际操作起来可能非常困难,实践才是检验真理的标准。
参考文献
[1]DavidTansley著.徐炎译.Linux与UNIXShell编程指南.北京:
机械工业出版社.
[2]刘兵著.Linux实用教程[M].北京:
中国水利水电出版社.
[3]朱居正、高冰著.RedHatLinux9实用培训教程.北京:
清华大学出版社.
[4]张炯著.Unix网络编程实用技术与实例分析.北京:
清华大学出版社.
[5]顾云苏著.Linux服务器配置与优化.北京:
清华大学出版社.
[6]王景新.Linux系统管理完全手册.清华大学出版社.
[7]赵伟安.网络服务器配置与应用.西安:
中国铁道出版社.
[8]赵松涛.网络服务器配置与管理.北京:
人民邮电出版社.