计算机科学与工程学院《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天:Linuxshell程序设计第6天:GCC编译系统;GDB调试工具第7-10天:Linux环境编程第11-13天:撰写课程设计文档摘要Linux是一套免费使用和自由传播的类UNIX操作系统,它主要用于基于Intelx86系列cpu的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的,其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。本次课程设计,主要为了熟练掌握Linux下常用的命令以及shell编程和system编程以及gcc的简单使用,对一些细节进行了详细的分析。通过本次课程设计,提高了我们对Linux的理解和实践操作综合应用能力。关键词:Linux;Shell编程;System编程目录前言........................................................91.Linux的简介...............................................91.1什么是Linux...............................................91.2Linux系统的主要特点.....................................101.3Linux的组成..............................................102基本的文本编辑器及它们的使用方法..........................112.1gedit和vi的使用.........................................112.2GCC的使用................................................113编程详细设计.............................................123.1Shell编程................................................123.2System编程...............................................124编程测试.................................................154.1shell编程测试...........................................154.2system编程测试...........................................155心得体会.................................................166参考文献.................................................177附录.....................................................18前言Linux系统是一种自由和开放源代码的类UNIX操作系统。目前存在着许多不同的Linux,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。Linux是一个领先的操作系统,世界上运算最快的超级计算机运行的都是Linux操作系统。严格来说,Linux这个词本身只代表Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。Linux得名于计算机业余爱好者LinusTorvalds。Linux凭借其自由、免费、开放源代码的优势,经过来自互联网、遍布全球的程序员的努力,再加上IBM、Sun等计算机巨头的支持,Linux在手机操作系统市场中异军突起,尤其是在众多知名厂商宣布支持Linux手机操作系统之后,Linux的发展将不容忽视。由于Linux具有源代码开放、软件授权费用低、应用开发人才资源丰富等优点,便于开发个人和行业应用。这一可控认证系统,特点非常重要,因为丰富的应用是智能手机的优越性和关键卖点所在。从应用开发的角度看,由于Linux的源代码是开放的,有利于独立软件开发商(ISV)开发出硬件利用效力高、功能强大的软件,也方便行业用户开发自己的安全。1.Linux的简介1.1什么是Linux简单地说,Linux是一套免费使用和自由传播的类UNIX操作系统,他主要用于基于Intelx86系列cpu的计算机上。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的UNIX兼容产品。Linux以它的高效性和灵活性著称。它能够在个人计算机上实现全部的UNIX特性,具有多任务、多用户的能力。Linux可在GNU公共许可权限下免费获得,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用WindowsNT一样,允许我们使用窗口、图标和菜单对系统进行操作。1.2Linux系统的主要特点开放性:只系统统遵循世界标准规范,特别是遵循开放系统互联(OSI)国际标准。多用户:是指系统资源可以被不同用户使用,每个用户对自己的资源有特定的权限,互不影响。多任务:它是指计算机同时执行多个程序,而且各个程序的运行相互独立。良好的用户界面:Linux想用户提供两种界面:用户界面和系统调用。Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。设备独立性:是指操作系统把所有外部设备统一当成文件来看待,只要安装它们的驱动程序,任何用户都可以像使用文件一样,操纵、使用这些设备,二不必知道它们的具体存在形式。Linux是具有设备独立性的操作系统,它的内核具有高度适应能力,提供了丰富的网络功能,完善的内置网络是Linux一大特点。可靠的安全系统:Linux采取了许多安全技术措施,包括对读、写控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。良好的可移植性:是指将操作系统从一个平台转移到另一个平台使它仍然能按其自身的方式运行的能力。Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行1.3Linux的组成Linux的内核:内核是系统的核心,是运行程序和管理像磁盘和打印机等件设备硬件的核心程序。LinuxShell:Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。Linux文件系统:Linux文件系统是文件存放在磁盘等存储设备上的组织方法。Linux能支持多种目前的文件系统,如EXT2、EXT3、FAT、VFAT、ISO9660、NFS、SMB等。Linux应用系统:标准的Linux系统都有一整套称为应用程序的程序集,包括文本编辑器、编译语言、XWindow、办公套件、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(GNUCompilerCollection,GNU编译器集合),是一套由GNU开发的编程语言编译器。GCC原本是GNU操作系统的官方编译器,现已被大多数类Unix操作系统为标准的编译器,同样适用于微软的windows。基本使用格式:gcc[options][filenames]其中:options:编译器所需要的编译选项filenames:要编译的文件名例如本设计中用到命令:gccsystem5.c-osystem5将system5.c代码文件编译生成可执行文件system53编程详细设计3.1Shell编程【问题描述与稳如要求】编写一个shell脚本ex9.sh,根据键盘输入的值,给出对应的提示输出;输入[A-Z],输出UppercaseLetter;输入[a-z],输出LowercaseLetter;输入[0-9],输出Digit;输入其他,输出Punctuationwhitespace,orother。【设计思路】根据题目看,这是一道分支结构题目。所以可选择case分支或者ifelif分支结构。定义一个变量chr,从键盘读入该变量值,根据这个值的ASCII码进行if、elif判断,满足相关条件,则用输出语句echo输出对应结果。(完整代码见附录)if[$ascii–le90–a$ascii–ge65];thenecho“UppercaseLetter”elif[$ascii–ge97–a$ascii–le122];thenecho“LowercaseLetter”elif[$ascii–ge48–a$ascii–le57];thenecho“Digit”elseecho“Punctuation,whitespace,orother”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函数格式头文件:#includesys/types.h#includesys/stat.h#includefcntl.h函数原型:intopen(constchar*pathname,flag,intperms)函数传入值:pathname:被打开的文件名(可包括路径名)flag:文件的打开方式,有如下常用:O_RDONLY:只读方式打开文件O_WRONLY:可写方式打开文件O_RDWR:读写方式打开文件O_CREAT:如果该文件存在,就创建一个新的文件,并用第三个参数为