资源描述
考查课程报告课程名称: Linux程序设计 之 shell编程 学 院: 信息工程与自动化学院 专业年级: 2010级计算机系 班 学 号: 201010405 学生姓名: 指导教师: 梁 波 日 期: 2013-6-5 1目 录1课程目的12要求与内容13运行环境14设计步骤及实现结果14.1 linux下Shell编程及linux相关知识14.2 Linux下shell基本命令的的使用。如网络相关命令 24.3 网络配置文件与配置方法 44.4 配置NFS服务器 54.5 Ubuntu系统的学习使用操作步骤及结果 74.6 用shell编程编写一个程序实现九九乘法表104.7用shell编程编写程序及自动备份 115总结和体会 126.参考文献 13141.课程目的通过这次试验了解linux下进行Shell编程,学会用shell编程编写一些简单的程序。并了解掌握shell命令的使用。学会网络配置文件与配置方法。2.要求与内容(1)学习在linux下进行Shell编程,并了解linux相关知识,。(2)学习Linux shell基本命令的使用掌握shell命令的使用。如网络相关命令等,同时配置samba服务器。(3)用shell编程编写一个程序实现九九乘法表。(4)编写一个Shell程序,使得程序在系统时间分钟值为5的倍数的时,自动备份此目录下的.png 文件到backup中3运行环境(1)硬件:PC机(2)软件:Ubuntu 11.04操作系统、虚拟机4.设计步骤及实现结果41 linux下Shell编程及linux相关知识Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。Linux是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于计算机业余爱好者Linus Torvalds。随着InternetIntranet网络的日益普及,Linux作为一个现代的操作系统,正在各个方面得到广泛的应用。Linux在服务器、嵌入式等方面已经取得不俗的成绩,在桌面系统方面,也逐渐受到欢迎。于是Linux的安全问题也逐渐受到人们的重视。现在Linux已经在全球广泛普及开来,虽然在个人桌面版方面还逊色于Microsoft Windows系统,但在服务器领域以其良好的安全性和稳定性得到越来越多用户的认可,并被广泛使用。随着后PC时代的到来,计算机在各行各业乃至人们的日常生活中已经是无处不在,尤其是嵌入式系统应用、开发方面,Linux更具有其他操作系统无可比拟的优势。Linux的安全问题也逐渐受到人们的重视。操作系统的安全无疑是所有用户都关注的一个焦点,作为商业操作系统Windows的内核并不公开,系统接口也由其开发公司控制,设计,是否存在“后门”一直是争论的话题,毕竟关系到一个国家,企业和个人的安全:Linux以其代码开放所带来的高安全性而倍受赞誉,这也是许多重要部门和大型网站采用Linux操作系统的重要原因。Linux具有:稳定、可靠、安全的优点,并且有强大的网络功能。其中有对读、写进行权限控制、审计跟踪、核心授权等技术,这些都为安全提供了保障。4.2 Linux下shell基本命令的的使用。如网络相关命令4.2.1 ping命令ping命令用于查看网络上的主机是否在工作。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。执行ping命令可以测试本机与网络中其他计算机的连通性,因此,在组网中常常使用该命令排除网络故障。Ping命令使用ICMP协议,向目标地址发送ECHO-REQUEST数据包,如果网络是连通的,可以接收到目标地址主机发回的响应ECHO-REQUEST的数据包;否则表示目标地址不可到达。Ping命令执行后如所示:ping命令的使用其中,参数destination是必须的,它可以是主机名或IP地址;其他的为命令选项。4.2.2 ifconfig命令Ifconfig命令使LINUX核心知道软件回送和网卡这样一些网络接口,这样Linux就可以使用它们。除了上面介绍的这些用法之外,ifconfig命令用来监控和改变网络接口的状态,并且还可以带上很多命令行参数。下面是一个ifconfig的通用调用语法:#ifconfig interface -net-host address parameters其中interface是网络接口名:address是分配给指定接口的主机名或IP地址。这里使用的主机名被解析成它们的对等IP地址,这个参数是必须的。-net和-host参数分别告诉ifconfig将这个地址作为网络号或者是主机地址。执行ifconfig命令查看本地主机的网络配置信息,也可以用于配置网络硬件接口、IP地址、网络掩码、网关地址和广播地址等。命令格式:IfconfiginterfaceIfconfig interface aftype options | addressIfconfig命令执行后如图所示:ifconfig命令的使用4.2.3 netstat命令功能说明:Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。语法:netstat -acCeFghilMnNoprstuvVwx-A-ip执行netstat命令来检测TCP/IP网络配置的正确性。netstat命令执行后如图所示:netstat命令的使用4.2.4 telnet 建立多帐户测试 Linux开启telnet服务,linux提供服务是由运行在后台的守护程序(daemon)来执行。守护进程的工作就是打开1个端口(port),等待(listen)进入的连接。在C/S模式中,如果客户提请了1个连接,守护进程就创建(fork)子进程来响应这个链接,而父进程继续监听其他服务的请求。但是,对于系统所提供的每一个服务,如果都必须运行一个监听某个端口接连发生的守护进程序,那么通常以为着系统资源的浪费。为此,“拓展的网络守护进程服务程序”xinetd(xineted internt daemon).telnet服务也是由xinetd守护的。telnet命令执行后如图所示:telnet建立多帐户测试4.3 网络配置文件与配置方法4.3.1 /etc/hosts文件/etc/hosts也称为主机表,他的作用是为用户提供简单、直接的主机名到IP地址之间的转换。用户在访问网络上某台主机时可以直接使用IP地址也可以使用主机名称,但使用主机名称时必须将它翻译成计算机能识别的IP地址,利用/etc/hosts文件可以实现1种比较简单的名字解析方法:用户也可使用域名服务器来完成主机名称到IP地址的转换。4.3.2 /etc/host.confi文件/etc/host.conf时解析配置文件,它的作用时告诉计算机系统将如何进行名字解析。因此该文件包含有指向解析库的配置信息。文件的每行应该包含1个配置关键字,其后时配置信息。这些关键字可以使order,trim,multi,nospoof,和reorder。4.3.3 /etc/resolv.conf文件它记录了本机使用的主、第二、第三DNS服务器的IP地址和域名搜索路径。Linux系统为了提高可靠性,控制1个域的域名服务器往往不止一个。同样,每个主机为了提高可靠性,也设置多个域名服务器的IP地址;系统将按照用户指定的顺序逐个查询直到找到为止。4.4 配置NFS服务器4.4.1 使用mount命令来挂载另一个机器上的NFS文件系统:Mount shadowman. :/misc/export/misc/local4.4.2导出NFS文件系统,要使用NFS服务器配置工具,首先选择面板上的“主菜单”“系统配置”“服务器配置”“NFS服务器”命令,或输入redhat-config-nfs命令。4.4.3 要添加NFS 共享,单击“添加”按钮,会出现如下图所示的对话4.4.4 启动服务器使用以下命令来启动NFS进程:cd/tmp ;mkdir liuzhenzhen ; ervice nfs restart 4.4.5 配置samba服务器1、要使用该程序,要从桌面启动Samba服务器配置工具,选择面板上的“主菜单”“系统配置”“服务器配置”“Samba服务器”命令,或输入redhat-config-nfs命令。如下4.5 Ubuntu系统的学习使用操作步骤及结果:4.5.1 启动Ubuntu系统,打开终端;或使用putty连接系统(如果未安装ssh,可以使用sudo apt-get install ssh) :运行ApplicationsTerminal4.5.2查看系统信息,并将以下查看内容重定向添加到文件systemInfo.txt,最后清屏:1、 查看系统当前所有进程:运行Terminalpsps SystermInfo.txt2、 查看当前系统信息:运行Terminaluname -auname a SystermInfo.txt3、 查看硬盘分区情况:运行Terminalfdisk4、 查看/etc/fstab文件:运行Terminalcat /etc/fstabcat /etc/fstab SystermInfo.txt5、 查看系统当前的网络地址:运行Terminalifconfigifconfig SystermInfo.txtclear4.5.3系统用户数据:6、 切换到root状态:运行Terminalsu - root输入密码登录7、 创建用户(姓名拼间首字母加学号后两位,如张飞 ZF01),密码是123456:运行Terminaluseradd m dhy27passwd dhy27输入并确定密码8、 进入新用户,并查看默认所在主目录及所有登录系统的用户:运行Terminalsu dhy27lswho4.5.4 文件操作:9、 在当前用户的主目录下,创建文件夹Labl:运行Terminalmkdir Labl10、 进入Lab1文件夹,新建文件welcome.txt,写入“Hello Zhang Fei!”保存退出:运行Terminalvi welcome.txt在vi模式下创建文件11、 将b步骤生成的文件SystemInfo.txt,移动到Lab1文件夹,并设置文件权限为:文件所有者可读写,其它为只读; 并查看文件列表,权限是否设置:运行Terminalmv /home/dhy/SystermInfo.txt /home/dhy27/Labl运行Terminalchmod 644 /home/dhy27/Labl/SystermInfo.txtls l /home/dhy27/Labl12、 返回到当前用户的主目录:运行Terminalsu dhy27pwdcdpwd13、 将Lab1文件夹打包生成tar.gz文件,并删除原文件夹:运行Terminaltar cvf tar.gz /home/dhy27/Labllsrm r Labl4.6 用shell编程编写一个程序实现九九乘法表。代码记运行结果如下:乘法表代码图如下结果图如下4.7用shell编程编写程序及自动备份要求:编写一个Shell程序,使得程序在系统时间分钟值为5的倍数的时,自动备份此目录下的.png 文件到backup中4.7.1程序编写:#!/bin/bash#Program: User can backup the png files every 5 minutes. #History:2012/11/04 First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/binexport PATHecho This program helps you to backup the png files every 5 minutes.backdir=./backupminute=date +%Mnext=$($minute%5)if $next -eq 0 ;then echo backing. cp *.png $backdir echo finishedelse echo Cant backup this minute!fi4.7.2 运行结果5总结和体会 这个学期学习了Linux程序设计,在多次试验中,通过自己的实践我学习到了一下关于Linux的知识,Linux是一种自由和开放源码的类Unix操作系统。目前存在着许多不同的Linux,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于计算业余爱好者Linus Torvalds。Linux操作系统,确切地说是GNU/Linux操作系统。它的诞生、发展与UNIX、MINIX操作系统、GNU计划、POSIX标准以及Internet广泛应用有着极大的关系。Linux是能够自由传播并继承了UNIX内核的操作系统,是对UNIX的简化和改进,它既保留了UNIX系统的高安全性,同时也使其操作更加简单方便,从而使单机用户也可以使用。UNIX内核指的是操作系统底层的核心程序代码随着Intrnet技术的发展,越来越多的人通过网络认识了Linux,越来越多的人使用并改进着Linux.如果没有遍布全世界的无数Linux爱好者的无私奉献,那么Linux也不可能发展到今天的水平。此外Linux操作系统在短短的几年之内得到了非常迅猛的发展,这与Linux具有的良好特性是分不开的。Linux几乎包含了UNIX的全部功能和特性,同时又有自己的一些特点。在试验中我熟悉基本的网络命令,pingi、ifconfing、netstat以及熟悉网络配置文件与配置方法,体会Linux多用户的特点利用telnet进行要求每个同学都有相应的帐户,配置NFS服务器,实现文件系统的远程挂载。配置samba服务器,实现不同系统之间的文件共享,简单shell编程是本次试验操作的主要内容。然而要熟练掌握Linux操作系统的用法就必须动手实践,而试验就是实践的开始,试验也是对我们综合能力的考察。刚接触Linux操作系统,难免存在许多不足,而且对有一些命令的理解不是很深入。但是通过此次试验,我们可以熟练的掌握基本的网络命令、网络配置文件及其配置方法以及FTP的配置,亲身体会到了Linux的多用户的特点。在学习中我发现,书上的内容很精致,但是要利用书上所学的知识来让我们编写一个实际的程序实在是非常困难。在调试过程中屡调屡败的状态下,这是我十分着急,最后在同学、老师的热情的帮助下,一个杂乱无章的程序被修改得有条不紊,很显然结果也是最最正确的。在此,我体会到了互相交流的作用,真诚的感谢帮助我的同学、老师们,老师就是黑暗中的指明灯,没有老师的指导,就没有我们顺利的完成任务的喜悦。同学们的帮助也是我前进的力量,也让我体会到真诚的友谊。团结就是力量,在老师、同学的帮助下,我顺利完成了此次的试验。也让我体会到了成功的来之不易,只有真正付出过才有满意的收获。总之,学习一定要持有认真的态度,只有认真的对待学习,对待学习中遇到的问题,分许问题,查阅资料解决问题。在这解决问题的过程中我们能学到很多大的东西,也许最后试验没有得到正确的结果,不过这个过程给我们留下的绝对是比结果更重要的。我们要体会学习、试验的过程,同时也能感受到成功给我们带来的喜悦。在以后的学习中,一定要记住这个试验给我带来的收获,多和同学老师讨论问题,多查阅资料,这样才能提高自己的学习效率,让自己高效的学习。6.参考文献1 王景新.Linux系统管理完全手册.清华大学出版社,2008:19-27. 2 李波.Linux服务器配置与实战指南.北京:人民邮电出版社,2004:209-211.3 冯昊.LINUX服务器配置与管理.北京:清华大学出版社,2004:156-1614 尤晋元.Linux操作系统教程.西安电子科技大学出版社,2007:162-175.5 李波.Linux服务器配置与实战指南.北京:人民邮电出版社,2004:209-2116 罗文村,汤庸Linux实践及应用M北京:清华大学出版社,2OO67 鲁和杰Linux系统教学实验平台构建与比较研究【J】福建电脑,2oosOo)8 徐谡.Linux命令行技术大全.重庆:人民邮电出版社,2004:102-113.
展开阅读全文