简介
Ⅰ、vi事Visual interface的简称,它可以执行输出、删除、查找、替换、快操作等众多文本操作;
Ⅱ、用户可以根据自己的需要对vi进行定制,这是其他编辑程序所没有的;
Ⅲ、vi不是一个排版程序,它不像WORD或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序;
Ⅳ、vi事全屏幕文本编辑器,它没有菜单,只有命令。
vi的启动
在系统提示符后输入vi和想要编辑(或建立)的文件名,便可进入vi;
vi的退出
要推出vi,首先要返回至命令模式(按ESC键),然后再命令模式下键入如下命令:
:wq 存盘退出
:w 保存
:w filename 另存为filename
:wq! 保存退出
:wq! filename 以filename为文件名保存后退出
:q! 不保存退出
:x 保存并退出,功能和wq!相同
:q 直接退出
其中:wq和:x是存盘退出,而:q是直接退出。可以用:w命令保存文件后再用:q退出,或用:wq或:x命令退出;如果不想保存改变后的文件,就用:q!命令,这个命令讲不保存文件而直接退出vi
vi的工作模式
Ⅰ、vi有3中工作模式:编辑模式、插入模式和命令模式。
Ⅱ、进入vi之后,首先进入的就是编辑模式,进入编辑模式后vi等待编辑命令输入而不是文本输入,也就是说这时输入的字幕都将作为编辑命令来解释;
Ⅲ、在编辑模式下输入插入命令i、附加命令a、打开命令o、修改命令c、替换命令s都可以进入插入模式。在插入模式下,用户输入的任何字符都被vi当作文件内容保存起来,并将其显示在屏幕上。在文本输入过程中(插入模式下),若想回到命令模式下,按ESC键即可;
Ⅳ、在编辑模式下,用户按:键即可进入命令模式,此时vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个:作为命令模式的提示符,等待用户输入命令。
vi编辑器中的常用命令
文件相关命令
字符串搜索、替换和删除
文本的复制、删除和移动
在vi编辑器中执行shell命令
C程序的编译
Linux应用程序表现为2种特殊类型的文件:可执行文件和脚本文件。
gcc编译器
在使用GCC编译程序时,编译过程可以细分为四个阶段:
①预处理(Pre-Processing)
②编译(Compiling)
③汇编(Assembling)
④链接(Linking)
gcc起步
hello.c
#include <stdio.h>
int main(void){
printf("Hello world, Linux programming!\n");
return 0;
}
编译:gcc hello.c -o hello
运行:./hello Hello world
结果:Hello world, Linux programming!
gcc编译过程
首先,gcc需要调用预处理程序cpp,由它负责展开在源文件中定义的宏,并向其中插入“#include”语句所包含的内容;接着,gcc会调用ccl和as将处理后的源代码编译成目标代码;最后,gcc会调用链接程序ld,把生成的目标代码链接成一个可执行程序。
①第一步是进行预编译,使用-E参数可以让GCC在预处理结束后停止编译过程:
gcc -E hello.c -o hello.i
此时若查看hello.i文件中的内容,会发现stdio.h的内容确实都插到文件里去了,而其它应当被预处理的宏定义也都做了相应的处理;
②第二步是将hell.i编译为目标代码,这可以通过使用-c参数来完成:
gcc -c hello.i -o hello.o
gcc默认将.i文件看成是预处理后的C语言源代码,因此上述命令将自动跳过预处理步骤而开始执行编译过程,也可以使用-x参数让gcc从指定的步骤开始编译;
③最后一步是将生成的目标文件链接成可执行文件:
gcc hello.o -o hello
注:main函数的返回值是int,main函数在终止前需要调用return语句。
程序调试工具——gdb
Ⅰ、首先,在对原代码进行编译时加入-g选项:
gcc -g crash.c -o crash
Ⅱ、使用gdb进行程序的调试
使用命令“gdb crash”打开要调试的程序
也可以先使用“gdb”命令打开gdb环境,然后通过输入“file 文件名”的方式打开需要调试的程序;
Ⅲ、使用“run”命令运行程序查看程序中的错误
Ⅳ、使用“backtrace”命令查看具体的错误信息
Ⅴ、使用“frame 编号”命令查看可能的程序错误(编号是在backtrack命令的执行结果中)
Ⅵ、使用quit语句退出gdb调试环境,对源程序进行修改,然后编译运行就可以了。