《Linux应用实践》课程设计.doc_第1页
《Linux应用实践》课程设计.doc_第2页
《Linux应用实践》课程设计.doc_第3页
《Linux应用实践》课程设计.doc_第4页
《Linux应用实践》课程设计.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机科学与工程学院Linux应用实践课程设计报告书 设计题目: Linux应用实践课程设计报告 专 业: 网 络 工 程 班 级: 13003602 学生姓名: 周 幸 谋 学 号: 1300360230 指导教师: 王 学 文 2015年 10 月 31 日计算机科学与工程学院课程设计任务书姓 名周幸谋学号1300360230设计题目一Shell-9设计题目二System-5设计题目三System-7设计目的、主要内容(参数、方法)及要求本课程设计应达到以下目的:1. 使学生掌握 Linux 基本操作命令;2. 培养Shell 编程能力;3. 培养Linux 系统编程能力;4. 提高 C/C+程序设计能力;5. 培养编写程序设计文档能力。工作量2周时间,共计32学时进度安排第1天:Linux概述论述;Linux系统现状与特点及安装第2天:文本编辑vi及vi的工作方式第3-5天:Linux shell程序设计第6天:GCC编译系统;GDB调试工具第7-10天:Linux环境编程第11-13天:撰写课程设计文档摘 要Linux是一套免费使用和自由传播的类UNIX操作系统,它主要用于基于Intel x86系列cpu的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的,其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。本次课程设计,主要为了熟练掌握Linux下常用的命令以及shell编程和system编程以及gcc的简单使用,对一些细节进行了详细的分析。通过本次课程设计,提高了我们对Linux的理解和实践操作综合应用能力。关键词: Linux;Shell编程;System编程目 录前言51.Linux的简介51.1什么是Linux51.2 Linux系统的主要特点61.3Linux的组成62 基本的文本编辑器及它们的使用方法72.1gedit和vi的使用72.2GCC的使用73 编程详细设计83.1Shell编程83.2System编程84 编程测试114.1 shell编程测试114.2system编程测试115 心得体会126 参考文献137 附录14前言Linux系统是一种自由和开放源代码的类UNIX操作系统。目前存在着许多不同的Linux,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。Linux是一个领先的操作系统,世界上运算最快的超级计算机运行的都是Linux操作系统。严格来说,Linux这个词本身只代表Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。Linux得名于计算机业余爱好者Linus Torvalds。Linux凭借其自由、免费、开放源代码的优势,经过来自互联网、遍布全球的程序员的努力,再加上IBM、Sun等计算机巨头的支持,Linux在手机操作系统市场中异军突起,尤其是在众多知名厂商宣布支持Linux手机操作系统之后,Linux的发展将不容忽视。由于Linux具有源代码开放、软件授权费用低、应用开发人才资源丰富等优点,便于开发个人和行业应用。这一可控认证系统,特点非常重要,因为丰富的应用是智能手机的优越性和关键卖点所在。从应用开发的角度看,由于Linux的源代码是开放的,有利于独立软件开发商(ISV)开发出硬件利用效力高、功能强大的软件,也方便行业用户开发自己的安全。1.Linux的简介1.1什么是Linux简单地说,Linux是一套免费使用和自由传播的类UNIX操作系统,他主要用于基于Intel x86系列cpu的计算机上。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的UNIX兼容产品。Linux以它的高效性和灵活性著称。它能够在个人计算机上实现全部的UNIX特性,具有多任务、多用户的能力。Linux可在GNU公共许可权限下免费获得,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。1.2 Linux系统的主要特点开放性:只系统统遵循世界标准规范,特别是遵循开放系统互联(OSI)国际标准。多用户:是指系统资源可以被不同用户使用,每个用户对自己的资源有特定的权限,互不影响。多任务:它是指计算机同时执行多个程序,而且各个程序的运行相互独立。良好的用户界面:Linux想用户提供两种界面:用户界面和系统调用。Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。设备独立性:是指操作系统把所有外部设备统一当成文件来看待,只要安装它们的驱动程序,任何用户都可以像使用文件一样,操纵、使用这些设备,二不必知道它们的具体存在形式。Linux是具有设备独立性的操作系统,它的内核具有高度适应能力,提供了丰富的网络功能,完善的内置网络是Linux一大特点。可靠的安全系统:Linux采取了许多安全技术措施,包括对读、写控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。良好的可移植性:是指将操作系统从一个平台转移到另一个平台使它仍然能按其自身的方式运行的能力。Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行1.3Linux的组成Linux的内核:内核是系统的核心,是运行程序和管理像磁盘和打印机等件设备硬件的核心程序。Linux Shell:Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。Linux文件系统:Linux文件系统是文件存放在磁盘等存储设备上的组织方法。Linux能支持多种目前的文件系统,如EXT2、EXT3、FAT、VFAT、ISO9660、NFS、SMB等。Linux应用系统:标准的Linux系统都有一整套称为应用程序的程序集,包括文本编辑器、编译语言、X Window、办公套件、Internet工具、数据库等。2 基本的文本编辑器及它们的使用方法2.1gedit和vi的使用Gedit和vi是Linux下常用的两个文本编辑器,它们的使用方法如下:1. gedit文本编辑器的使用:第一步,在shell中键入:#gedit;第二步,在弹出的窗口中编辑源程序,然后保存即可2. Vi文本编辑器的使用:Linux提供了功能强大的文本编辑器vi编辑文本的命令为:#vi 文件名 ;可以附加命令参数有:+n:打开文件,并将光标置于第n行行首+:打开文件,并将光标置于最后一行行首+/string:打开文件,并将光标置于第一行与string匹配的字符串处-r:在上次使用vi编辑时发生系统崩溃,恢复文件打开vi后,首先是命令模式,按i进入输入模式,按Esc然后出入“:”进入底行模式,输入w保存文档,其后可加要保存的文件名;输入wq/zz/x进行保存退出;输入q!不保存退出。2.2GCC的使用GCC(GNU Compiler Collection,GNU编译器集合),是一套由GNU开发的编程语言编译器。GCC原本是GNU操作系统的官方编译器,现已被大多数类Unix操作系统为标准的编译器,同样适用于微软的windows。基本使用格式:gcc optionsfilenames其中:options:编译器所需要的编译选项filenames:要编译的文件名例如本设计中用到命令:gcc system5.c -o system5将system5.c代码文件编译生成可执行文件system53 编程详细设计3.1Shell编程【问题描述与稳如要求】编写一个shell脚本ex9.sh,根据键盘输入的值,给出对应的提示输出;输入A-Z,输出Uppercase Letter;输入a-z,输出Lowercase Letter;输入0-9,输出Digit;输入其他,输出Punctuation whitespace,or other。【设计思路】根据题目看,这是一道分支结构题目。所以可选择case分支或者if elif分支结构。定义一个变量chr,从键盘读入该变量值,根据这个值的ASCII码进行if 、elif判断,满足相关条件,则用输出语句echo输出对应结果。(完整代码见附录)if $ascii le 90 a $ascii ge 65 ; thenecho “Uppercase Letter”elif $ascii ge 97 a $ascii le 122 ; thenecho “Lowercase Letter”elif $ascii ge 48 a $ascii le 57 ; thenecho “Digit”elseecho “Punctuation,whitespace,or other”3.2System编程【问题描述与任务要求】在tmp目录下调用open()函数,以可读可写的方式创建hello.c文件。Open函数带有3个flag参数:O_CREATE、O_TRUNC、O_WRONLY,文件权限设置为0600。【设计思路】本题是一道文件IO题目,只需按要求设置好参数即可,并要进行创建失败的判断检测并退出(完整代码见附录)。需要用到open和clos函数,两个函数说明以及使用如下:(1) open和close函数说明open函数是用于打开或创建文件,在打开或创建文件时可以指定文件的属性及用户的权限等各种参数。(2) open和close函数格式头文件:#include #include #include函数原型:int open(const char *pathname,flag,int perms)函数传入值:pathname :被打开的文件名(可包括路径名)flag:文件的打开方式,有如下常用:O_RDONLY:只读方式打开文件O_WRONLY:可写方式打开文件O_RDWR:读写方式打开文件O_CREAT:如果该文件存在,就创建一个新的文件,并用第三个参数为其设置权限perms:被打开文件的存取权限,为8禁止表示法函数返回值:成功:返回文件描述符;失败:-1头文件:#include函数原型:int close(int fd)函数输入值:fd:文件描述符函数返回值:成功:0;出错:-1fd=open(”/tmp/hello.c”,O_CRATE|O_TRUNC|O_WRONLY,0600);close(fd);【问题描述与任务要求】打开open函数创建的文件,然后对此文件进行读写操作(将文件打开属性改为可读可写,文件权限要做相应更改)。接着,写入“Hello! I am writing to this file!”,此时,文件指针位于文件尾部,接着再使用lseek函数将文件指针移动文件开始处,并读出10个字节并将其打印出来。【设计思路】本题是接着上一题的文件进行操作,所以重复内容不再赘述,新增文件读写操作(完整代码见附录)。需要使用到read、write、lseek函数,它们的使用和说明如下:(1) read、write和lseek函数作用read函数是用于将指定文件的文件描述符中的数据读出。当从终端设备文件中读出数据时,通常一次最多读一行;write函数是用于向打开的文件写数据,写操作从文件的当前位移量出开始,若磁盘已满或超出该文件的长度,则write函数返回失败;lseek函数是用于在指定的文件描述符中将文件指针定位到相应的位置。(2) read、write和lseek函数格式read函数的语法格式如下:头文件:#include函数原型:ssize_t read(int fd,void *buf,size_t count)函数传入值:fd:文件描述符;buf:指定存储器读出数据的缓冲区; count:指定读出的字节数。函数返回值:成功:读到的字节数;0:已到达文件尾;-1:出错Write函数的语法格式如下:头文件:#include函数原型:ssize_t write(int fd,void *buf,size_count)函数传入值:fd:文件描述符;buf:指定存储器写入数据的缓冲区;count:指定读出的字节数。函数返回值:成功“已写的字节数;-1出错。(3) lseek函数的语法格式如下头文件:#include、#include函数原型:off_t lseek(int fd,off_t offset,int whence)函数传入值:fd:文件描述符offse:偏移量,每一读写操作所需要移动的距离,单位是字节的数量,可正可负(向前移,向后移)whence:当前位置的基点:SEEK_SET:当前位置为文件开头;SEEK_CUR:当前位置为文件指针的位置;SEEK_END:当前位置为文件的结尾。函数返回值:成功:文件的当前位移;-1出错。size=write(fd,buf,len);lseek(fd,0.SEEK_SET);size=read(fd,buf_r,10);4 编程测试4.1 shell编程测试输入数据:2、a、D、.测试结果如图4-1所示 图4-14.2system编程测试System7输入数据:无测试结果如图4-2所示图4-2System5输入数据:无测试结果如图4-3所示图4-35 心得体会通过两周的课程设计,首先学会用虚拟机进行Linux系统,其次大致对Linux有一个系统的了解,能在Linux上进行简单的使用,对Linux中的各个文件的配置文件进行直观的了解。学会了如何使用gedit和vi文本编辑器进行编程,并利用gcc工具进行调试编译。从对Linux的零基础到能够在Linux下进行基本的编程。在进行课程设计题目编程中,既复习了C语言基础,也对shell编程有了初步的理解,拓展了自己是知识面,获得了一定的自学能力。在此过程中遇到的最大问题就是对于Linux操作系统的不熟悉,一些操作上不习惯和命令太多总是记不清,通过网上搜索解决了我的困惑。而对于Linux的学习不止于此,并且今后还有操作系统课程,还会继续深入学习。6 参考文献参 考 文 献1 王化成. 高级财务管理学M. 北京:中国人民大学出版社,2003.15-182 巩亦平. 中小企业财务管理中存在的问题及对策J. 财会研究,2005,(3):16-203 周鹏程, 姚芳, 王冰. 桂林旅游产业SWOT分析J. 科技广场, 2011,4:131134.4 杨波, 李文勇, 郑义恒. 基于绿色交通理念的桂林市城市交通规划研究J. 公路与汽运, 2014,5:3538.5 王录录, 黄映辉. 基于JSP的城市自驾游路线查询系统的设计J. 大连海事大学学报, 2007,33(增刊):195197.6 金妍. 车辆导航的智能查询知识库系统研究D. 大连: 大连理工大学, 2008. 7 附录Shell9#!/bin/bashwhile :do read chrif $? eq 1 ;thenbreakfiascii=printf %dn $chrif $ascii -le 90 -a $ascii -ge 65 ; thenecho Uppercase Letterelif $ascii -ge 97 -a $ascii -le 122 ; thenecho Lowercase Letterelif $ascii -ge 48 -a $ascii -le 57 ; thenecho Digitelseecho Punctuation, whitespace, or otherfidonesystem7#include#include#include#include#include#includeint main(void)int fd;if(fd=open(“/tmp/hel

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论