Linux程序设计.ppt
《Linux程序设计.ppt》由会员分享,可在线阅读,更多相关《Linux程序设计.ppt(475页珍藏版)》请在咨信网上搜索。
1、Linux程序设计讲师:课程介绍课程类别:学科专业教育课程编号:N03140112总学时:32学分:2先修课程:程序设计基础主要参考书Linux环境C程序设计、linux简明教程、linux基础教程考核方式(包括作业、测验、考试等及其所占比例)考试:60%实验:30%平时:10%学时安排章节名称章节名称讲授(学时)讲授(学时)实验(学实验(学时)时)小计小计第一章第一章linux基础基础224第二章第二章 Shell程序设计程序设计325第第三三章章 Linux系系统统程程序序设设计计(一一)文文件件操操作作与与文文件件管理管理224第第四四章章 Linux下下简简单单的的C程序设计程序设计4
2、26第第五五章章 Linux系系统统程程序序设设计计(二二):进进程程控控制制和和进进程间通信程间通信426第第六六章章 Linux网网络络程程序序设设计计527共计共计201232实验项目及学目及学时分配分配序序号号实验名称实验名称实验类实验类别别学时学时数数备备注注1Linux基本命令的使用验证型22Shell程序设计设计型23文件操作与文件管理验证型24 Linux下简单C程序设计 验证型25进程控制和进程间通信设计型26网络程序设计验证型2第一章Linux基础基本要求1、了解什么是Linux,UNIX和Linux的历史,Linux/UNIX的系统结构;2、掌握Linux的基本命令和操作
3、使用,Linux程序设计的预备知识。什么是LinuxLinux系统是一种自由和开放源代码的类UNIX的完整操作系统。林纳斯本纳第克特托瓦兹(Linus Benedict Torvalds,1969年)诞生于1991 年10 月5 日。Linux存在着许多不同的Linux版本,均使用Linux内核。Linux系统基于GPL协议发布,该协议是GNU项目所创立开放源代码的公共许可证。支持各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。Linux发展历史GNU项目简介GNU项目在1983年由理查德斯托曼(RichardStallman)创立GNU项目花
4、了十余年时间创建了GCC编译器、Emacs编辑器等多个工具。所有的工具以源代码形式发布,并且无需支付任何费用。只是这些工具的改进版本和衍生品必须遵循同样的发布形式,这就形成了GPL协议。但当时缺少一个最关键的组件操作系统核心GNU项目组织结构Linux起源Minix安德鲁塔能鲍姆(AndrewTanenbaum)出于教学目的编写的类UNIX操作系统Freax(Freak+x)LinusTorvaldsLinuxAriLemmkeGNU/LinuxLinux内核与GNU工具结合体(GNU是“GNUisNotUnix”的递归缩写)Linux发展历史1991年8月25号,Linus在MINIX新闻组
5、发出了历史性的一贴,向各位使用minix的朋友征求意见。Linus自己并没预料到他的小创造将改变整个计算科学领域。1991年9月中旬,Linux0.01版问世了,并且被放到了网上。它立即引起了人们的注意。源代码被下载、测试、修改,最终被反馈给Linus。10月5号,0.02版出来了几周以后,Linux0.03版发布了。12月份,0.10版发布了。这时的Linux还显得很简陋。它只能支持AT硬盘,而且不用登录(启动就进bash)。0.11版有了不少改进,可以支持多国语言键盘、软驱、VGA、EGA、Hercules等等。Linux的版本号从0.12直接上升到了0.95、0.96.不久,Linux的
6、源代码就通过在芬兰和其它一些地方的FTP站点传遍了全世界。Linux发展历史(续)到了1992年,大约有1000人在使用Linux,值得一提的是,他们基本上都属于真正意义上的hacker1993年,大约有100余名程序员参与了Linux内核代码编写/修改工作,其中核心组由5人组成,此时Linux0.99的代码有大约有十万行,用户大约有10万左右。1994年3月,Linux1.0发布,代码量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL协议。至此,Linux的代码开发进入良性循环。很多系统管理员开始在自己的操作系统环境中尝试linux,并将修改的代码提交给核心小组。由于拥有了丰富
7、的操作系统平台,因而Linux的代码中也充实了对不同硬件系统的支持,大大的提高了跨平台移植性。Linux发展历史(续)1997年夏,大片泰坦尼克号在制作特效中使用的160台Alpha图形工作站中,有105台采用了Linux操作系统。1998年是Linux迅猛发展的一年。1月,小红帽高级研发实验室成立,同年RedHat5.0获得了InfoWorld的操作系统奖项。4月Mozilla代码发布,成为linux图形界面上的王牌浏览器。10月,Intel和Netscape宣布小额投资红帽软件,Linux获得商业认同的信号。同月,微软在法国发布了反Linux公开信,这表明微软公司开始将Linux视作了一个
8、对手来对待。Linux发展历史(续)1999年,IBM宣布与Redhat公司建立伙伴关系,以确保Redhat在IBM机器上正确运行。2000年初始,Sun公司在Linux的压力下宣布Solaris8降低售价。事实上Linux对Sun造成的冲击远比对Windows来得更大。2月RedHat发布了嵌入式Linux的开发环境,Linux在嵌入式行业的潜力逐渐被发掘出来。在4月,拓林思公司宣布了推出中国首家Linux工程师认证考试Linux发展历史(续)2001月,Oracle宣布在OTN上的所有会员都可免费索取Oracle9i的Linux版本;IBM则决定投入10亿美元扩大Linux系统的运用;8月
9、红色代码爆发,引得许多站点纷纷从windows操作系统转向linux操作系统,2002年是Linux企业化的一年。3月,内核开发者宣布新的Linux系统支持64位的计算机。2003年1月,NEC宣布将在其手机中使用Linux操作系统,代表着Linux成功进军手机领域。2007年八月,Linux基金会由开源发展实验室(OSDL)和自由标准组织(FSG)联合成立。这个基金会目的是赞助Linux创始人Linus的工作。基金会得到了主要的Linux和开源公司,包括富士通,HP,IBM,Intel,NEC,Oracle,Qualcomm,三星和来自世界各地的开发者的支持。Linux发展历史(续)2007
10、年11月,Google宣布组建开放手机联盟(OpenHandsetAlliance)和发布Android,它被称为“第一个真正开放的综合移动设备平台”。2011年5月,GoogleI/O大会发布了Chrombook。这是一款运行着所谓云操作系统ChromeOS的笔记本。ChomeOS是基于Linux内核的。2011年6月,LinusTorvalds发布了Linux3.0版本。2013年12月,Valve公司发布基于Linux的StreamOS操作系统,这是一个视频游戏控制台系统。Linux各大发行版RedHat目前RedHat分为两个系列:由RedHat公司提供收费技术支持和更新的RedHat
11、EnterpriseLinux,以及由社区开发的免费的FedoraCore。适用于服务器的版本是RedHatEnterpriseLinux,这是个收费的操作系统。优点:拥有数量庞大的用户,优秀的社区技术支持,许多创新缺点:免费版(FedoraCore)版本生命周期太短,多媒体支持不佳Linux各大发行版(续)SUSESUSE是德国最著名的Linux发行版,在全世界范围中也享有较高的声誉。SUSE自主开发的软件包管理系统YaST也大受好评。SUSE于2003年年末被Novell收购。优点:专业,易用的YaST软件包管理系统缺点:FTP发布通常要比零售版晚13个月Linux各大发行版(续)Debi
12、an GNU/LinuxDebian是菜鸟在服务器之前所采用的操作系统。Debian最早由IanMurdock于1993年创建。可以算是迄今为止,最遵循GNU规范的Linux系统。优点:遵循GNU规范,100%免费,优秀的网络和社区资源,强大的apt-get缺点:安装相对不易,stable分支的软件极度过时Linux各大发行版(续)UbuntuUbuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的Linux操作系统优点:人气颇高的论坛提供优秀的资源和技术支持,固定的版本更新周期和技术支持,可从DebianWoody直接升级缺点:还未建立成熟的商业模式Linux各大发行
13、版(续)SlackwareSlackware由PatrickVolkerding创建于1992年。算起来应当是历史最悠久的Linux发行版。Slackware依然固执的追求最原始的效率所有的配置均还是要通过配置文件来进行。优点:非常稳定、安全,高度坚持UNIX的规范缺点:所有的配置均通过编辑文件来进行,自动硬件检测能力较差Linux各大发行版(续)Knoppix由德国的KlausKnopper开发的Knoppix,是一个基于Debian的发行版。Knoppix严格算起来是一款LiveCD。可以说,在LiveCD界,Knoppix是无人能及的优点:无需安装可直接运行于CD上,优秀的硬件检测能力,
14、可作为系统急救盘使用缺点:LiveCD由于光盘的数据读取速度限制导致性能大幅下降Linux各大发行版(续)CentOSCentOS,也叫做社区企业操作系统,是企业Linux发行版领头羊RedHatEnterpriseLinux的再编译版本。RHEL是很多企业采用的Linux发行版本,但是如果想得到RedHat的服务与技术支持,用户必须向RedHat付费才可以。CentOS的开发者们使用RedHatLinux的源代码创造了一个和RHEL近乎相同的Linux。但是一切和RedHat有关的商标都被去除了。CentOS是免费的,可以使用它像使用RHEL一样去构筑企业级的Linux系统环境,但不需要向R
15、edHat付任何的费用。目前,CentOS的技术支持主要通过社区的官方邮件列表、论坛和聊天室来提供。国产操作系统免费软件与开源软件免费软件与开源软件概念并不相同,免费软件通常以二进制文件形式发布。用户虽然可以免费使用,但无权对软件进行任何修改。开源软件是将软件以源代码形式发布,并遵循GPL等开源协议,用户不仅能使用,而且还可对软件进行改进。Linux系统是开源软件,所以基于Linux系统开发必须遵循开源规则。这种开发方式最大的优势是,开发者能最大限度的利用现有代码,从而避免重复工作。Linux内核与版本内核是操作系统的心脏,系统其它部分必须依靠内核这部分软件提供的服务,例如管理硬件设备、分配系
16、统资源等。内核由中断服务程序、调度程序、内存管理程序、网络和进程间通信等系统程序共同组成。Linux内核是提供保护机制的最前端系统,它独立于普通应用程序,一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限。这种系统态和被保护起来的内存空间,统称为内核空间。内核负责管理计算机系统的硬件设备,为硬件设备提供驱动。对于操作系统上层的应用程序来说,内核是抽象的硬件,这些应用程序可通过对内核的系统调用访问硬件。这种方式简化了应用程序开发的难度,同时在一定程度上起到了保护硬件的作用。Linux内核支持几乎所有的计算机系统结构,并将多种系统结构抽象为同样的逻辑结构。Linux内核结构Android
17、系统结构Linux系统架构和目录Linux基本操作Linux系统有两种操作方法,一种是使用鼠标键盘等输入设备直接在图形界面X Window上操作,另一种是通过输入文本命令方式在控制台上操作。各种Linux发行版的操作遵循同样的原则,所以操作方法非常相似。Shell、控制台、终端Shell是一种具备特殊功能的程序,也是介于用户和Linux内核间的一个接口。Linux系统拥有多种shell,发行版中常用的是名为bash的shell。这种shell不但能执行简单的命令,还能将多个命令、条件和参数编写为程序执行。使用Linux系统进行程序开发通常需要掌握一些常用shell命令。Linux系统是一个多用
18、户多任务的分时操作系统。任何一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统,该账号的名称就是登录名。Linux系统通常有多个控制台,进入控制台后可使用shell程序操作计算机。终端是X Window里访问shell程序的接口。桌面环境GNOMEUnityKDEXFCELXDE文件和目录文件系统是在物理存储设备中存放数据的索引格式,文件和目录是数据的逻辑划分形式。Linux系统的文件类型概括起来可分为5种:普通文件、目录文件、链接文件、设备文件和管道文件。普通文件就是平时所见的大多数文件,它的特点是不包含文件系统的结构信息。目录文件是用于存放文件路径及相关
19、信息的文件,是文件系统的基本节点。目录文件使文件系统呈现出树形结构。在Linux系统中,通常所说的目录就是指目录文件。链接文件是指向另一个真实文件的链接,是一种特殊的文件结构。设备文件是保存计算机设备信息和接口的文件,这是Linux操作系统的独特形式,计算机的所有设备都以文件的形式提供给应用程序使用。管道文件是用于应用程序之间进行通信的文件。文件系统文件系统是磁盘及其逻辑分区的目录结构,一个磁盘设备可包含一个或多个文件系统,但每个文件系统必须占据硬盘中单独的一个分区。按照Linux系统对分区的命名规则,ATA接口的硬盘以字母组合hd开始,SCSI和SATA接口硬盘以字母组合sd开始。第3个字母
20、是硬盘的序号,a为第1块硬盘,b为第2块硬盘,依次类推。最后一位数字是分区的序号。文件名及路径名Linux系统的文件名由字符和数字组成,其中字符可以是大小写英文字母或其他Unicode编码的文字和符号。但不能包括“*”、“?”和“”文件名通配符。Linux系统的文件名也有类似其他操作系统的扩展名,在文件名最后一个“.”后的内容即是扩展名。例如,C语言源文件的扩展名是c,头文件的扩展名是h。Linux文件系统采用带链接的树形目录结构,即只有一个根目录。根目录可含有下级子目录或文件;子目录中又可含有更下级的子目录或者文件。这样一层一层地延伸下去,构成一棵倒置的树,如图所示。路径名可分为绝对路径和相
21、对路径,绝对路径是从根目录到目标目录或文件所经过的所有节点名称,如文件m1.c的绝对路径是“/home/shizhe/workspace/m1.c”。相对路径是某一个目录到目标目录或文件所经过的所有节点名称,如文件m1.c的相对于“/home”的相对路径是“shizhe/workspace/m1.c”。工作目录控制台或终端在某个时刻总是对应着一个目录,该目录即工作目录。在控制台或终端执行命令或程序,对某个没有指定路径的文件或子目录进行操作,控制台或终端会自动在文件或子目录前加入当前工作目录的路径。例如,执行ls命令会将工作目录下的文件和子目录名称显示出来,除非在ls命令后输入某一具体的路径名称
22、。工作目录可用“.”表示,工作目录上层父目录用“.”表示。cd命令用于改变工作目录。控制台或终端会将“”符号替换成用户起始目录的绝对路径,该符号也被认为是环境变量,Linux系统会自动维护“”符号的值。文件描述符文件描述符是一个小的非负整数,内核用以标识某一特定进程正在存访的文件。当内核打开一个现存文件或创建一个新文件时,它会返回一个文件描述符给该进程,这样该进程就能通过内核访问目标文件。按惯例,每当运行一个新程序时,所有的shell都为其打开3个文件描述符:标准输入(0)、标准输出(1)以及标准错误(2)。如果像简单命令ls那样没有做什么特殊处理,则这3个描述符都连向终端。Linux黑洞/d
23、ev/null是一个虚设的设备,俗称“Linux黑洞”,任何对/dev/null的写入都会成功,但数据会消失得无影无踪,没有任何反馈。所以经常把不想在屏幕显示的信息全部送到/dev/null中,在shell脚本中用得比较多。如:lsl/dev/null还可以用来清空文件的内容:cat/dev/nullFileName常用命令用户管理新建用户(user add)useradd UserName 新建用户后,会在/home目录下建立一个以UserName命名的文件夹,用户每次登录时自动定位到该文件夹下。为用户添加密码(password)passwd UserName删除用户(user delete
24、)userdel UserName 使用p选项可以删除用户目录下的文件及与用户相关联的其他文件。新建组群(group add)groupadd GroupName删除组群(group delete)groupdel GroupName常用命令用户管理用户身份 whoami 查看登录用户 who 选项 -a 显示所有用户的所有信息 -H 显示列标题查看用户的操作 w 某一时刻用户的行为用户间切换(substitute user)su UserName 如:su 或su root 切换为根用户 su Haison 切换为名为Haison的用户常用命令目录管理创建目录(make directory)
25、mkdir DirecName删除目录(remove directory)rmdir DirecName显示工作目录(print working directory)pwd显示目录内容(list)ls 选项 选项:-a 显示当前目录下的所有文件,包括以.开头的文件。-l 以长列表的形式显示文件列表,如:-rw-r-r-1 haison haison 18 Nov 2 10:10 haison.c常用命令目录管理改变当前目录(change directory)cd 或 cd 进入登录时的主目录 cd /进入根目录 cd .进入上一级目录 cd /home 进入系统的home目录 cd home
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 程序设计
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。