第8章 Linux编程.ppt

上传人:qwe****56 文档编号:70021252 上传时间:2023-01-14 格式:PPT 页数:67 大小:2.08MB
返回 下载 相关 举报
第8章 Linux编程.ppt_第1页
第1页 / 共67页
第8章 Linux编程.ppt_第2页
第2页 / 共67页
点击查看更多>>
资源描述

《第8章 Linux编程.ppt》由会员分享,可在线阅读,更多相关《第8章 Linux编程.ppt(67页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第8章章 Linux编程编程 通常,通常,Linux的发行版中包含很多文本的发行版中包含很多文本编辑器及软件开发工具。其中很多是基于编辑器及软件开发工具。其中很多是基于C和和C+、PHP、Perl等应用程序开发的。本等应用程序开发的。本章首先介绍章首先介绍Red Hat Linux下一些常见的文下一些常见的文本编辑器及编译工具的使用,然后介绍本编辑器及编译工具的使用,然后介绍Linux内核的编译和定制。内核的编译和定制。8.1 文本编辑器文本编辑器 Linux下有很多编辑器,如下有很多编辑器,如KDE下的下的kwrite,GNOME下的下的gedit,X Window下下的的vim、Emac

2、s以及命令行下的以及命令行下的vi、pico、nano等。其中历史最悠久、使用最广泛的等。其中历史最悠久、使用最广泛的就是就是vi及其增强版及其增强版vim。本节将以。本节将以vi为主,为主,介绍介绍Linux下常见的文本编辑器。下常见的文本编辑器。8.1.1 认识认识vi vi是是Linux系统的第一个全屏幕交互式系统的第一个全屏幕交互式编辑器,从诞生至今它一直得到广大用户编辑器,从诞生至今它一直得到广大用户的青睐,历经数十年仍然是的青睐,历经数十年仍然是Linux用户主要用户主要使用的文本编辑工具,足见其强大的功能。使用的文本编辑工具,足见其强大的功能。vi是是“Visual Interf

3、ace”的简称,可以的简称,可以执行输出、删除、查找、替换、块操作等执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所需要对其进行定制,这是其他编辑程序所没有的。没有的。vi相当简洁,没有菜单,只有命令且相相当简洁,没有菜单,只有命令且相当丰富。其常用命令将在后文中进行详细当丰富。其常用命令将在后文中进行详细介绍。介绍。vi有三种基本工作模式:命令行模式、有三种基本工作模式:命令行模式、文本输入模式和末行模式。文本输入模式和末行模式。1命令行模式命令行模式2文本输入模式文本输入模式3末行模式末行模式8

4、.1.2 启动启动vi编辑器编辑器 使用使用vi进行编辑工作的第一步是进入该进行编辑工作的第一步是进入该编辑界面,编辑界面,Linux提供的进入提供的进入vi编辑器界面编辑器界面的命令如表的命令如表8-1所示。所示。命命 令令说说 明明vi filenamevi filename打开或新建文件,并将光标置于第一行首打开或新建文件,并将光标置于第一行首vi+n filenamevi+n filename打开文件,并将光标置于第打开文件,并将光标置于第n n行首行首vi+filenamevi+filename打开文件,并将光标置于最后一行首打开文件,并将光标置于最后一行首vi+/pattern f

5、ilenamevi+/pattern filename打开文件,并将光标置于第一个与打开文件,并将光标置于第一个与patternpattern匹配的匹配的串处串处vi-r filenamevi-r filename在上次正用在上次正用vivi编辑时发生系统崩溃,恢复编辑时发生系统崩溃,恢复filenamefilenamevi filename1.vi filename1.filenamenfilenamen打开多个文件,依次进行编辑打开多个文件,依次进行编辑表表8-18-1进入进入vivi命令命令8.1.3 显示显示vi中的行号中的行号 vi中的许多命令都要用到行号及行数等中的许多命令都要用到

6、行号及行数等数值。若编辑的文件较大时,人工确定行数值。若编辑的文件较大时,人工确定行号非常不方便。为此号非常不方便。为此vi提供了给文本加行号提供了给文本加行号的功能。这些行号显示在屏幕的左边,而的功能。这些行号显示在屏幕的左边,而相应行的内容则显示在行号之后。在末行相应行的内容则显示在行号之后。在末行方式下输入命令即可显示行号。方式下输入命令即可显示行号。:se nu8.1.4 光标移动操作(光标移动操作(Cursor)全屏幕文本编辑器中,光标的移动操作全屏幕文本编辑器中,光标的移动操作无疑是最经常使用的操作了。用户只有熟无疑是最经常使用的操作了。用户只有熟练地使用移动光标的这些命令,才能迅

7、速练地使用移动光标的这些命令,才能迅速准确地到达所期望的位置进行编辑。准确地到达所期望的位置进行编辑。vi中的中的光标移动既可以在命令模式下,也可以在光标移动既可以在命令模式下,也可以在文本输入模式下,但操作的方法存在区别。文本输入模式下,但操作的方法存在区别。在文本输入模式下,可直接使用键盘上在文本输入模式下,可直接使用键盘上的四个方向键移动光标。的四个方向键移动光标。在命令模式下,有很多移动光标的方法。在命令模式下,有很多移动光标的方法。不但可以使用四个方向键来移动光标,还不但可以使用四个方向键来移动光标,还可以用可以用h、j、k、l这四个键代替四个方向键这四个键代替四个方向键来移动光标。

8、来移动光标。vi除了可以用向下键将光标下移外,还除了可以用向下键将光标下移外,还可以用数字键和可以用数字键和“+”键将光标下移一行或键将光标下移一行或n行(不包括本行在内),但此时光标下移行(不包括本行在内),但此时光标下移之后将位于该行的第一个字符处,示例及之后将位于该行的第一个字符处,示例及说明如下。说明如下。若希望光标上移之后,光标位于该行的若希望光标上移之后,光标位于该行的行首,则可以使用命令行首,则可以使用命令“-”。8.1.6 文本插入命令(文本插入命令(Insert)在命令模式下用户输入的任何字符都被在命令模式下用户输入的任何字符都被vi当作命令加以解释执行,如果用户要将输当作命

9、令加以解释执行,如果用户要将输入的字符当作是文本内容时,则首先应将入的字符当作是文本内容时,则首先应将vi的工作模式从命令模式切换到文本输入模的工作模式从命令模式切换到文本输入模式。式。vi提供了两个插入命令:提供了两个插入命令:i和和I。1i命令命令 插入文本从光标所在位置前开始,并且插入文本从光标所在位置前开始,并且插入过程中可以使用键删除错误的输入。插入过程中可以使用键删除错误的输入。2I命令命令 该命令是将光标移到当前行的行首,然该命令是将光标移到当前行的行首,然后在其前插入文本。后在其前插入文本。8.1.7 附加命令(附加命令(append)vi提供了两个附加插入命令:提供了两个附加

10、插入命令:a和和A。1a命令命令 该命令用于在光标当前所在位置之后追该命令用于在光标当前所在位置之后追加新文本。新输入的文本放在光标之后,加新文本。新输入的文本放在光标之后,在光标后的原文本将相应地向后移动。在光标后的原文本将相应地向后移动。2A命令命令 该命令与该命令与a命令不同的是,命令不同的是,A命令将把命令将把光标挪到所在行的行尾,从那里开始插入光标挪到所在行的行尾,从那里开始插入新文本。当输入新文本。当输入A命令后,光标自动移到该命令后,光标自动移到该行的行尾。行的行尾。8.1.12 退出退出vi(exit)当编辑完文件,准备退出当编辑完文件,准备退出vi返回到返回到shell时,可

11、以使用以下几种方法。时,可以使用以下几种方法。(1)在命令模式中,连按两次大写字母)在命令模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则若当前编辑的文件曾被修改过,则vi保存该保存该文件后退出,返回到文件后退出,返回到shell;若当前编辑的文;若当前编辑的文件没被修改过,则件没被修改过,则vi直接退出,返回到直接退出,返回到shell。(2)在末行模式下,输入命令)在末行模式下,输入命令:w。vi保存当保存当前编辑文件,但并不退出,而是继续等待前编辑文件,但并不退出,而是继续等待用户输入命令。在使用用户输入命令。在使用w命令时,可以再给命令时,可以再给编辑文件起一个新的文件名。编

12、辑文件起一个新的文件名。8.1.13 设置设置vi 和其他和其他Linux程序一样,程序一样,vi也可以通过也可以通过配置文件来进行默认设置。全局的配置文配置文件来进行默认设置。全局的配置文件位于件位于“/etc/vim/vimrc”。而用户个人。而用户个人也可以拥有自己独立的配置文件,配置文也可以拥有自己独立的配置文件,配置文件位于件位于“/.vimrc”。8.1.14 其他文本编辑器其他文本编辑器 除了除了vi外,外,Linux还有很多其他文本编还有很多其他文本编辑器。辑器。图图8-1 GNOME8-1 GNOME下的下的geditgedit8.2 Linux编程编程gcc编译编译 Lin

13、ux作为一款流行的开源操作系统,作为一款流行的开源操作系统,其下的编程工具也相当丰富。前一节介绍其下的编程工具也相当丰富。前一节介绍了常用的编辑器,可以编写源代码。本节了常用的编辑器,可以编写源代码。本节将介绍如何通过将介绍如何通过gcc将源代码编译成可执行将源代码编译成可执行的程序。的程序。8.2.1 介绍介绍gcc gcc(GNU Compiler Collection)是)是GNU推出的功能强大、性能优越的多平台推出的功能强大、性能优越的多平台编译器,即以前的编译器,即以前的GNU C编译器(编译器(GNU C Compiler)。)。gcc是可以在多种平台上编是可以在多种平台上编译出可

14、执行程序的编译器集合,集成译出可执行程序的编译器集合,集成C、C+、Objective C、Fortran、Java、Fortran和和Pascal等多种语言编译器。等多种语言编译器。因为因为gcc可以对多种编程语言的源码进可以对多种编程语言的源码进行编译,为了不至于混淆,行编译,为了不至于混淆,gcc通过文件后通过文件后缀进行区分。缀进行区分。8.2.2 gcc的基本用法和常用选项的基本用法和常用选项 gcc命令的基本用法如下所示:命令的基本用法如下所示:gcc options filenames gcc编译器具有如下几类选项。编译器具有如下几类选项。(1)编译选项)编译选项(2)优化选项)

15、优化选项(3)调试和剖析选项)调试和剖析选项 一些实际使用中常用的编译选项。一些实际使用中常用的编译选项。(1)-x language filename(2)-x none filename(3)-c(4)-S(5)-E(6)-o(7)-pipe(8)-ansi(9)-fno-asm(10)-fcond-mismatch(11)-funsigned-char、-fno-signed-char、-fsigned-char和和-fno-unsigned-char(12)-include file(13)-imacros file(14)-Dmacro(15)-Dmacro=defn(16)-Uma

16、cro(17)-undef(18)-Idir(19)-I(20)-idirafter dir(21)-nostdinc(22)-C(23)-M(24)-MD(25)-l library(26)-Ldir(27)-O0、-O1、-O2、-O3(28)-g(29)-gstabs(30)-gstabs+(31)-ggdb(32)-static(33)-share(34)-traditional(35)-w(36)-Wall预处理预处理-编译编译-汇编汇编-链接链接预处理预处理-编译-汇编-链接预处理预处理-编译-汇编-链接预处理预处理-编译编译-汇编汇编-链接预处理预处理-编译编译-汇编汇编-链接链

17、接8.3 Linux编程编程gdb调试调试8.3.1 gdb简介简介 gdb是一个功能相当强大的调试器,能是一个功能相当强大的调试器,能在程序运行时观察程序的内部结构和内存在程序运行时观察程序的内部结构和内存堆栈的情况。总体说来,堆栈的情况。总体说来,gdb具有如下几个具有如下几个主要的功能。主要的功能。(1)监视程序中变量的值)监视程序中变量的值(2)设置程序断点)设置程序断点(3)逐行执行代码)逐行执行代码8.3.2 gdb的基本用法的基本用法 gdb支持很多的命令,用户可以使用其支持很多的命令,用户可以使用其实现不同的功能。这些命令从简单的文件实现不同的功能。这些命令从简单的文件装入到检

18、查所调用的堆栈内容的复杂命令。装入到检查所调用的堆栈内容的复杂命令。命命 令令说说 明明filefile装入想要调试的可执行文件装入想要调试的可执行文件killkill终止正在调试的程序终止正在调试的程序listlist列出产生执行文件的源代码的一部分列出产生执行文件的源代码的一部分nextnext执行一行源代码但不进入函数内部执行一行源代码但不进入函数内部stepstep执行一行源代码而且进入函数内部执行一行源代码而且进入函数内部runrun执行当前被调试的程序执行当前被调试的程序quitquit终止终止gdbgdbwatchwatch监视一个变量的值而不管它何时被改变监视一个变量的值而不管

19、它何时被改变breakbreak在代码里设置断点,这将使程序执行到这里时被挂起在代码里设置断点,这将使程序执行到这里时被挂起makemake不退出不退出gdbgdb的情况下,就可以重新产生可执行文件的情况下,就可以重新产生可执行文件shellshell能不离开能不离开gdbgdb就执行就执行UNIX shellUNIX shell命令命令表表8-28-2基本基本gdbgdb命令命令8.3.3 gdb的实例的实例 本小节将通过一个本小节将通过一个gdb调试程序的实例调试程序的实例介绍如何调试程序。以下为待调试的程序介绍如何调试程序。以下为待调试的程序源代码,文件名为源代码,文件名为test.c。

20、其功能是向用户。其功能是向用户显示一个简单的问候,然后再以字母反序显示一个简单的问候,然后再以字母反序将该问候显示出来。将该问候显示出来。修改后string2size-i-18.4 Linux编程编程使用使用make 在在Linux环境中,环境中,make是一个非常重是一个非常重要的编译命令。不管是自己进行项目开发要的编译命令。不管是自己进行项目开发还是安装应用软件,用户都会经常用到还是安装应用软件,用户都会经常用到make或或make install命令。命令。利用利用make工具,可以将大型的开发项工具,可以将大型的开发项目分解成为多个更易于管理的模块,分块目分解成为多个更易于管理的模块,

21、分块编译对于一个包括几百个源文件的应用程编译对于一个包括几百个源文件的应用程序,使用序,使用make和和makefile工具就可以简洁工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相明快地理顺各个源文件之间纷繁复杂的相互关系。互关系。多个源文件生成一个可执行文件多个源文件生成一个可执行文件 对于如此多的源文件,如果每次都要键对于如此多的源文件,如果每次都要键入入gcc命令进行编译的话,那么对程序员来命令进行编译的话,那么对程序员来说将是一件非常困难的事情。而说将是一件非常困难的事情。而make工具工具则可自动完成编译工作,并且可以只对程则可自动完成编译工作,并且可以只对程序员在上次编译后修改

22、过的部分进行编译。序员在上次编译后修改过的部分进行编译。因此,有效地利用因此,有效地利用make和和makefile工工具可以大大提高项目开发的效率,也可以具可以大大提高项目开发的效率,也可以大大地减少程序中出现的错误。下面本节大大地减少程序中出现的错误。下面本节将详细介绍将详细介绍make及其描述文件及其描述文件makefile。8.4.1 makefile文件文件 make工具最主要最基本的功能是通过工具最主要最基本的功能是通过makefile文件来描述源程序之间的相互关文件来描述源程序之间的相互关系并自动维护编译工作。系并自动维护编译工作。在在Linux系统中,习惯使用系统中,习惯使用“

23、Makefile”作为作为makefile的文件名。如的文件名。如果要使用其他文件作为果要使用其他文件作为makefile,则可利,则可利用类似下面的用类似下面的make命令选项指定命令选项指定makefile文件。文件。#make-f Makefile.debug makefile文件作为一种描述文档一般需文件作为一种描述文档一般需要包含以下内容。要包含以下内容。(1)宏定义)宏定义(2)源文件之间的相互依赖关系)源文件之间的相互依赖关系(3)可执行的命令)可执行的命令8.4.2 make命令命令 make命本身可带有四种参数:标志、命本身可带有四种参数:标志、宏定义、描述文件名和目标文件名。其标宏定义、描述文件名和目标文件名。其标准形式如下:准形式如下:make flags macro definitions targets 通常,通常,makefile中还定义中还定义clean目标,目标,可用来清除编译过程中的中间文件。可用来清除编译过程中的中间文件。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com