广西大学计算机与电子信息学院课程设计报告(2015——2016年度第一学期)名称:UNIX程序设计课程设计题目:UNIX程序设计课程设计院系:计算机与电子信息学院班级:计科132班学号:1307300358学生姓名:郭江达指导教师:葛志辉设计周数:2周成绩:日期:2015年12月27日目录1.设计任务....................................................12.设计步骤....................................................12.1开发环境配置................................................................12.2开发工具....................................................................23.程序开发步骤................................................44.遇到的问题及相应解决办法...................................125.个人体会及建议.............................................13参考文献......................................................131.设计任务设计题目、任务及完成情况的大致说明,让老师能够了解你所做工作的大体情况。(每个人都要独立完成下面三个题目,不要相互抄袭!切记!)1、完成Linux下的shell编程,要利用shell编程实现某一个具体的功能。2、完成Linux下的C语言编程,要求至少包括两个文件,比如一个test.c,test.h,test.h中包含了test.c中的声明,分别利用gcc和makefile进行编译。3、完成Linux下PHP+MySQL的编程,能够完成一个简单的具有数据库存储功能的网站。2.设计步骤2.1开发环境配置2.1.1Shell编程的开发环境Shell编程的开发环境不需要什么配置,只需在Linux系统的终端进行即可。2.1.2C语言编程的开发环境C语言在Linux系统下编程,需要dev安装包,用于编译C语言。在终端下输入“sudoapt-getinstalllibc6-dev”进行下载,在下载之前需要输入登录密码,之前已经下载好了,如下图所示:下载好后,系统会自动安装,安装完成便可在终端编译C语言程序了。2.1.3Linux下PHP+MySQL编程的开发环境这是在ubuntu上搭建LAMP,需要安装“php5”,“mysql”,“apache2”和“phpmyadmin”,如下图所示:2.2开发工具2.2.1VMwareWorkstation12虚拟机VMwareWorkstation12虚拟机简介:著名的虚拟机软件。不需要分区或重开机就能在同一台PC上使用两种以上的操作系统,完全隔离并且保护不同OS的操作环境以及所有安装在OS上面的应用软件和资料,不同的OS之间还能互动操作,包括网络、周边、文件分享以及复制贴上功能等。安装方法:1.下载虚拟机可执行文件VMware-workstation-full-12.1.0-3272444.exe2.点击运行,按照安装教程安装即可。使用方法:打开虚拟机,在“文件”菜单中选择“新建虚拟机”,然后弹出“新建虚拟机向导”,然后参照虚拟机安装步骤进行安装即可。2.2.2Linux系统LinuxMint简介:LinuxMint是一份基于Ubuntu的发行版,其目标是提供一种更完整的即刻可用体验,这包括提供浏览器插件、多媒体编解码器、对DVD播放的支持、Java和其他组件。它与Ubuntu软件仓库兼容。LinuxMint是一个为pc和X86电脑设计的操作系统因此,一个可以跑得动Windows的电脑也可以使用LinuxMint来代替Windows,或者两个都跑。既有Windows又有Linux的系统就是传说中的“双系统”。安装方法:1.下载Linux系统镜像文件linuxmint-17-kde-dvd-64bit.iso;2.在虚拟机中新建一个虚拟机,通过安装教程安装即可;使用方法:直接运行即可。2.2.3devdev简介:编译C语言程序的一个软件。安装方法:在终端上输入sudoapt-getinstalllibc6-dev,然后系统提示输入密码,输入后即可下载并自动安装。使用方法:编写好C语言代码后,利用gcc或makefile方法便可编译运行。2.2.4Apache2+php5+mysqlApache2简介:Apache2.X版本比老版本更加强大,更具可扩展性。一个多线程/多进程的混合模块使它可以充分利用各种规模的主机性能(从一台只运行小型站点的典型X86服务器到同时运行多个虚拟实例的大型主机),这正是Apache1.3所缺乏的。新版本以插件的形式提供了对一些特定平台和几个通用模块的支持。对IPV6的官方支持已经为互联网的升级做好了准备,对HTTP1.1的支持提高了代理服务器的性能。PHP5简介:PHP是一种简单、轻便的服务器端脚本语言。PHP最初是作为一个快速、实用的工具包出现的。随着MySQL数据库的发展,PHP5还绑定了新的MySQLi扩展模块,它提供了一些更加有效的方法和实用工具用于处理数据库操作。这些方法大都以面向对象的方式实现,同时也极大地提高了基于数据库的Web项目的执行速度。另外,PHP5中还改进了创建动态图片的功能,能够支持多种图片格式(如PNG、GIF、TTIF、JPGE等)。PHP5以及内置了对GD2库的支持,因此安装GD2库(主要指UNIX系统中)也不再是件难事,这使得处理图像十分简单和高效。大多数Web程序开发者依然将XML作为一个彻底的简单数据库使用。PHP5中也采用了一系列简单易用、功能强大的方法处理XML文档。MySQL简介:MySQL是一个关系型数据库管理系统。MySQL最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。安装方法:在ubuntu环境下搭建apache2+MySQL+PHP同时安装mysql管理软件phpmyadmin。首先下载安装apache2输入:sudoapt-getinstallapache2安装完毕后,在浏览器中输入:localhost显示如下图,说明安装正确。紧接着安装php5输入:sudoapt-getinstallphp5安装完毕后,再安装MySQL输入:sudoapt-getinstallmysql-server紧接着安装phpmyadmin输入:sudoapt-getinstallphpmyadmin根据提示选择,选择apache2再输入root密码和数据库密码紧接着改写/var/目录的权限。方便日后编辑网站文件。输入:sudochmod777/var/链接。输入:sudoln-s/usr/share/phpmyadmin/var/现在在浏览器中输入:localhost/phpadmin登陆后就能正确显示管理界面。使用方法:在浏览器中输入“localhost/phpmyadmin”即可进入MySQL进行操作3.程序开发步骤3.1Shell编程开发步骤:1.进入终端输入用户名和密码,登录到LinuxMint系统;2.在当前文件夹创建新文件夹“shell”;(通过“mkdirshell”创建)3.在“shell”文件夹下创建一个文件“number”;(通过“lsnumber”创建)4.打开“number”文件编写shell程序;(通过“vimnumber”打开文件进行编辑)5.编写并保存好shell程序后,输入“chmodu+xnumber”后回车再输入“./number”即可执行shell程序;3.2.1C语言编程开发步骤(利用gcc方法进行编译):1.进入终端输入用户名和密码,登录到LinuxMint系统;2.在当前文件夹创建新文件夹“c”;(通过“mkdirc”创建)3.在“c”文件夹下新建area.c和area.h两个文件;(通过“lsarea.c”和“lsarea.h”)4.分别在area.c和area.h文件中输入代码;5.通过“gcc-oareaarea.c-lm”进行编译,通过“./area”运行程序;(在这个程序中,用到了数学函数库中的函数sqrt,编译程序时,要加链接选项-lm)3.2.2C语言编程开发步骤(利用mikefile方法进行编译):1.进入终端输入用户名和密码,登录到LinuxMint系统;2.在当前文件夹创建新文件夹“makefile”;(通过“mkdirmakefile”创建)3.在“makefile”文件夹中新建“area.c”,“area.h”和“makefile”3个文件,它们的代码分别如下图所示:(注意:在makefile文件中每行需要执行的命令要以tab开头。反斜杠\是换行符。可以用#开头进行注释。clean不是一个文件,只是一个动作。)4.输入make命令后,系统会:a、读入Makefile或makefile文件b、读入被include的其他Makefilec、初始化文件中的变量d、推到隐晦规则,并分析所有规则e、为所有目标文件(包括target)创建依赖关系链f、决定那些目标要重新生成。即当目标文件不存在或其依赖文件的修改时间比目标文件的更新。g、执行生成命令5.然后输入“./area”,便可执行代码。3.3PHP+MySQL的编程开发步骤:1.打开浏览器,在地址栏中输入localhost/phpmyadmin便可转到Phpmyadmin网页,2.通过“Login”登录到mysql3.在“mysql”中新建“guojiangda”表,表中含有,“sex”,“age”,“from”和“school”;4.在“guojiangda”表中插入数据;5.查看数据;6.在终端可进行查看,输入“mysql-uroot-p”回车再输入mysql的登录密码便可进入mysql;7.输入“showdatabases;”可查看数据库;8.输入“showtables;”可查看表;9.输入“select*fromguojiangda;”可查看“guojiangda”表中的内容。4.遇到的问题及相应解决办法在Shell编程中,主要的问题是shell的语法问题,通过查阅相关资料可以大概明白shell基本语法,比如:如果脚本的前两个字符是#!,那么系统将这两个字符后面的那些字符作为用来执行该脚本的命令解释器的绝对路径名。在利用gcc方法的C语言编程中,主要的问题是.c和.h文件编写好后如何分别利用gcc和makefile执行,通过上网及查阅图书资料后大致了解了一部分内容。利用gcc方法时,首先对.c文件进行编译,而编译时,我用的是“gcc-oareaarea.c”与其他方法格式不同,但都可以进行编译。这里的“area”是编译后产生的,我理解为可执行的文件,通过“./area”即可运行。在利用makefile方法的C语言编译中,主要的问题是不理解“makefile”是什么文件,在该文件中的代码格式很奇怪,