学习情境2项目1 Vi编辑器_第1页
学习情境2项目1 Vi编辑器_第2页
学习情境2项目1 Vi编辑器_第3页
学习情境2项目1 Vi编辑器_第4页
学习情境2项目1 Vi编辑器_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

Linux网络服务器配置管理项目实训教程杨云等编著中国水利水电出版社

1.项目课题引入

2.Vi编辑器的使用方法

3.Linux中C语言程序的编辑

4.Linux中C语言程序的运行

5.现场演示案例课题引入——项目背景在Linux操作系统中设计一个C语言程序,当程序运行时显示如下的运行效果:课题引入——项目分析完成本项目需要解决的问题:1、在Linux下我们使用什么工具进行程序和文字的编辑。2、在Linux操作系统中我们如何编译和运行C程序3、我们编写的程序如何在Linux操作系统中进行调试。课题引入——教学目标学习本课需要实现的教学目标:掌握Vi编辑器的启动和退出掌握Vi编辑器的工作模式熟悉Vi编辑器的基本命令掌握C/C++编译器gcc的使用掌握Linux下程序设计的一般方法课题引入——应达到的职业能力学生学习本课后应该具有的职业能力:熟练掌握Vi编辑器的使用方法能够利用Vi编辑器进行文字编辑工作能够使用gcc进行C/C++程序的编译和调试能够独立完成基本的Linux程序项目问题一—Vi编辑器的使用Vi编辑器包含的主要内容有:

Vi编辑器的启动与退出Vi编辑器的工作模式Vi编辑器的常用命令Vi编辑器的简介Vi是Visualinterface的简称,它可以执行输出、删除、查找、替换、块操作等众多文本操作用户可以根据自己的需要对Vi进行定制,这是其他编辑程序所没有的。Vi不是一个排版程序,它不像WORD或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。Vi是全屏幕文本编辑器,它没有菜单,只有命令。Vi的启动在系统提示符后输入Vi和想要编辑(或建立)的文件名,便可进入Vi如果只输入Vi,而不带文件名,也可以进入ViVi编辑器的退出要退出Vi,在命令模式下键入如图所示命令。其中:wq和:x是存盘退出,而:q是直接退出。可以用:w命令保存文件后再用:q退出,或用:wq或:x命令退出。如果你不想保存改变后的文件,你就需要用:q!命令,这个命令将不保存文件而直接退出ViVi的工作模式Vi有3种基本工作模式:编辑模式、插入模式和命令模式。进入Vi之后,首先进入的就是编辑模式,进入编辑模式后Vi等待编辑命令输入而不是文本输入,也就是说这时输入的字母都将作为编辑命令来解释。在编辑模式下输入插入命令i、附加命令a、打开命令o、修改命令c、替换命令s都可以进入插入模式。在插入模式下,用户输入的任何字符都被Vi当作文件内容保存起来,并将其显示在屏幕上。在文本输入过程中(插入模式下),若想回到命令模式下,按ESC键即可。在编辑模式下,用户按“:”键即可进入命令模式,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为命令模式的提示符,等待用户输入命令。Vi编辑器中的常用命令在编辑模式下,输入如表所示的命令均可进入插入模式文件相关命令使用下表中的命令可以在Vi中进行文件相关的操作字符串搜索、替换和删除使用下表中的命令可以进行字符串的相关操作文本的复制、删除和移动使用下表中的命令,可以进行文本的相关操作在Vi编辑器中执行shell命令使用下表中的命令,可以进行shell中的命令项目问题二—C程序的编译Linux应用程序表现为2种特殊类型的文件:可执行文件和脚本文件。可执行文件是计算机可以直接运行的程序,相当于Windows的.exe文件。脚本文件是一组指令的集合,相当于Windows的.bat文件。在POSIX兼容的系统中,C语言编译器被称为c89.Linux尽量实现相关标准,c89,cc和gcc这些命令全都指向系统的C语言编译器,通常是GNUC编译器,或者称为gcc。gcc编译器在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一位Linux程序员面临的首要问题都是如何灵活运用C编译器。GCC不仅功能非常强大,结构也异常灵活。最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula-3和Ada等。

开放、自由和灵活是Linux的魅力所在,而这一点在GCC上的体现就是程序员通过它能够更好地控制整个编译过程。在使用GCC编译程序时,编译过程可以被细分为四个阶段: ◆预处理(Pre-Processing) ◆编译(Compiling) ◆汇编(Assembling) ◆链接(Linking)gcc起步—HelloWorld在用户当前目录,使用Vi编辑器输入如下代码,并保存成文件hello.c:#include<stdio.h>

int

main(void)

{

printf("Helloworld,Linuxprogramming!\n");

return0;

}然后执行下面的命令编译和运行这段程序:编译:gcc

hello.c-ohello运行:./helloHelloworld结果:Linuxprogramming!

gcc编译过程从程序员的角度看,只需简单地执行一条GCC命令就可以了,但从编译器的角度来看,却需要完成一系列非常繁杂的工作。首先,GCC需要调用预处理程序cpp,由它负责展开在源文件中定义的宏,并向其中插入“#include”语句所包含的内容。接着,GCC会调用ccl和as将处理后的源代码编译成目标代码。最后,GCC会调用链接程序ld,把生成的目标代码链接成一个可执行程序。gcc编译过程第一步是进行预编译,使用-E参数可以让GCC在预处理结束后停止编译过程:gcc-Ehello.c-ohello.i

此时若查看hello.i文件中的内容,会发现stdio.h的内容确实都插到文件里去了,而其它应当被预处理的宏定义也都做了相应的处理。第二步是将hello.i编译为目标代码,这可以通过使用-c参数来完成:gcc-chello.i-ohello.o

GCC默认将.i文件看成是预处理后的C语言源代码,因此上述命令将自动跳过预处理步骤而开始执行编译过程,也可以使用-x参数让GCC从指定的步骤开始编译。最后一步是将生成的目标文件链接成可执行文件:gcc

hello.o-ohellogcc警告提示功能看看如下illcode.c程序,这段代码写得很糟糕,仔细检查一下不难挑出很多毛病:#include<stdio.h>

voidmain(void)

{

longlong

int

var=1;

printf("ItisnotstandardCcode!\n");

}main函数的返回值被声明为void,但实际上应该是int使用了GNU语法扩展,即使用longlong来声明64位整数,不符合ANSI/ISOC语言标准main函数在终止前没有调用return语句。gcc警告提示功能当GCC在编译不符合ANSI/ISOC语言标准的源代码时,如果加上了-pedantic选项,那么使用了扩展语法的地方将产生相应的警告信息:#gcc-pedanticillcode.c-oillcode

illcode.c:Infunction`main':illcode.c:9:ISOC89doesnotsupport`longlong'illcode.c:8:returntypeof`main'isnot`int'需要注意的是,-pedantic编译选项并不能保证被编译程序与ANSI/ISOC标准的完全兼容,它仅仅只能用来帮助Linux程序员离这个目标越来越近。或者换句话说,-pedantic选项能够帮助程序员发现一些不符合ANSI/ISOC标准的代码,但不是全部,事实上只有ANSI/ISOC语言标准中要求进行编译器诊断的那些情况,才有可能被GCC发现并提出警告。除了-pedantic之外,GCC还有一些其它编译选项也能够产生有用的警告信息。这些选项大多以-W开头,其中最有价值的当数-Wall了,使用它能够使GCC产生尽可能多的警告信息:#gcc-Wallillcode.c-oillcodeillcode.c:8:warning:return

温馨提示

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

评论

0/150

提交评论