LINUX系统工具vim和gcc资料Word格式文档下载.docx

上传人:b****3 文档编号:8009720 上传时间:2023-05-09 格式:DOCX 页数:18 大小:183.16KB
下载 相关 举报
LINUX系统工具vim和gcc资料Word格式文档下载.docx_第1页
第1页 / 共18页
LINUX系统工具vim和gcc资料Word格式文档下载.docx_第2页
第2页 / 共18页
LINUX系统工具vim和gcc资料Word格式文档下载.docx_第3页
第3页 / 共18页
LINUX系统工具vim和gcc资料Word格式文档下载.docx_第4页
第4页 / 共18页
LINUX系统工具vim和gcc资料Word格式文档下载.docx_第5页
第5页 / 共18页
LINUX系统工具vim和gcc资料Word格式文档下载.docx_第6页
第6页 / 共18页
LINUX系统工具vim和gcc资料Word格式文档下载.docx_第7页
第7页 / 共18页
LINUX系统工具vim和gcc资料Word格式文档下载.docx_第8页
第8页 / 共18页
LINUX系统工具vim和gcc资料Word格式文档下载.docx_第9页
第9页 / 共18页
LINUX系统工具vim和gcc资料Word格式文档下载.docx_第10页
第10页 / 共18页
LINUX系统工具vim和gcc资料Word格式文档下载.docx_第11页
第11页 / 共18页
LINUX系统工具vim和gcc资料Word格式文档下载.docx_第12页
第12页 / 共18页
LINUX系统工具vim和gcc资料Word格式文档下载.docx_第13页
第13页 / 共18页
LINUX系统工具vim和gcc资料Word格式文档下载.docx_第14页
第14页 / 共18页
LINUX系统工具vim和gcc资料Word格式文档下载.docx_第15页
第15页 / 共18页
LINUX系统工具vim和gcc资料Word格式文档下载.docx_第16页
第16页 / 共18页
LINUX系统工具vim和gcc资料Word格式文档下载.docx_第17页
第17页 / 共18页
LINUX系统工具vim和gcc资料Word格式文档下载.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

LINUX系统工具vim和gcc资料Word格式文档下载.docx

《LINUX系统工具vim和gcc资料Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《LINUX系统工具vim和gcc资料Word格式文档下载.docx(18页珍藏版)》请在冰点文库上搜索。

LINUX系统工具vim和gcc资料Word格式文档下载.docx

$

光标移到本行行尾

n

光标下移n行

nG

光标移到第n行

X

删除光标所在位置的前一个字符

x

删除光标所在位置的字符

nx

删除光标所在位置及其后的n个字符

nX

删除光标所在位置及前n个字符

dd

删除光标所在行

ndd

删除光标之后n行

R

修改光标所在位置的字符,可以一直替换,直到按下Esc键

r

修改光标所在字符

/name

查找光标之后name的字符串,系统会自动查找,并突出显示所有找到的字符串,并转到第一个找到的字符串;

如果要继续向下查找,可以按n键;

向上查找按N键

?

name

查找光标之后name的字符串,与“/”类似,但它是向上查找name字符串

{

查找“{”,并将光标移到“{”处

yy

复制所在行

nyy

复制光标之后n行

P

将复制的内容粘贴到光标所在位置

u

撤销最近一次操作,并恢复操作结果,可多次使用u来恢复已经进行了多步的操作

U

撤销当前进行的所有的操作(文件自上次保存到现在的操作)

3.3—2.末行模式

w

写文件,将编辑的内容保存到文件系统

w!

如果是只读文件,强制写入文件

q!

退出vi,但是文件内容有修改的话,并不保存修改

wq!

保存内容并退出vi

/

查找匹配的字符串,在编辑时,要查找包含某个字符串,可以使用“/字符串”,会查找所有的,转到第一个字符

加载新文件,

e

创建新文件

3.4—1.编辑多个文件

vi[文件1][文件2]……[文件N]

n(next)进入下一个文件

rew进入首文件

args当前缓冲区所存的文件的文件名

3.4—2.分割窗口

split上下分割(可加文件名)

vsplit左右分割(可加文件名)

ctrl+w光标到下一个窗口

close:

quit关闭窗口

3.4—3用户命令模式

Vimdiff[文件名][文件名]……左右分割

vi-r[文件名]断电恢复

3.4—4.定义新命令

ab字符一字符串一

imap[快捷键][需要替换的字符串]

3.4.5.文本整体移动

默认为8,用set进行设置

[n,n]>

>

[n,n]<

<

nmkn,原目的行;

m,(move)移动;

k,第k行下方

[n,n]mk[n,n],原目的行;

3.5高级使用

Vi环境(m)

set功能选项(输入全拼)

首先使用.bash_profile文件,每个文件可以有自己的.exrc配置文件。

ai

autoindent选项把每一行缩排为与其上一行的行首对齐,默认为off

ap

autoprint默认为on

sm

showmatch在输入右圆括号时,显示匹配的左括号。

默认为off

nm

number显示行号。

Wm=n

wrapmargin定义右边距。

n为整数。

默认为0

report

report编辑操作改变的次数,导致信息出现在状态行。

默认为5

smd

showmode给出相关命令时,显示“插入”。

ws

Wordsearch在查找期间遇到结束符时,绕道开头继续查找。

默认为on

eb

errorbells命令错误会报警。

redaw

发生变化时刷新。

warn

修改缓冲区内容后未保存,显示警告信息。

fl

输入无效命令,发出声音;

flash不再发出;

noflash发出。

默认on

list

vi中的Tab用“^1”表示,用“$”表示每行结束。

ic

ignorecase区分大小写搜索,noignorecase不区分大小写。

warp

较长行。

wrap后自动换行,nowrap不自动换行。

默认为On

3.5.2语法高亮显示

/root/.vimrc对文件进行高亮设置的配置文件。

exportTERM=xterm-color

3.5.3.正则表达式

斜杠/

定界符,表示表达式的开始和结束

句点.

匹配任意单个字符,该字符可以代替其后任何单个字符。

/s.d/,点代表任意字符;

/.ping/,代表任意字符。

方括号[]

用来表示匹配括号中的任意一个字符,其中需要指出的是,在括号中出现“-”表示一段范围,如[a-z]表示可以匹配到所有小写字母,[a-zA-Z]可以匹配小写和大写,[0-9]可以匹配0-9的任意数字。

^除外,[^]表示匹配除括号中字符的所有字符,取括号中字符的补集。

例如,/t[aeoi]k/可以匹配到tak、tik、tek等字符;

/bo[okpu].k/可以匹配到boook、bokek、boulk等字符;

/p[a-z].s/可以匹配到paus、pkks、pu7s、prss等字符;

/7[15ui9]h/匹配到71h/7uh/7ih;

/k[0-9]k/匹配到k9k、k7k、k3k等字符;

/k[^a-z]j/匹配到kZj、kSj、k%j、k6j等字符。

唯独不能匹配到中间字符是小写字母的字符串。

星号*

匹配0个或多个字符,如,/ab*c/匹配到abc、abbbbbc、akloic、a*95c等字符;

/[a-z]*/匹配任意以小写字母开头的句子、单词或字符串;

/t*ing/匹配到tkling、tping、t56ing。

反斜杠\

转义字符,把紧跟其后的第一个原字符当做普通文字对待,除第一个以外都保持其原来的含义。

/sound\*/可匹配到包含sound*的行;

/b\[a-z]k/匹配含有b-[a-z]k/;

/s\*a[a-z]*ing/匹配到s*aissing、s*akddssding、s*ajkoplling等。

\<

\>

匹配所有括号中的单词,不仅表示每行包含该文字符即可,而要包含单词。

wth>

表示所有行中包含单词wth的行;

sum\>

表示所有行中包含sun的行。

^

匹配一行的开始。

/^f/表示匹配所有以f作为开头的行;

“^#/[a-z]/”表示匹配所有以#作为一行开头。

并且第二个字符为小写的行。

$符号

$匹配一行的结束,其使用格式是在指定的字符后面加$行。

如,/wth$/,表示所有以wth字符结尾的行;

/[A-Z]$/表示匹配所有以大写字母结尾的行。

由于正则表达式必须与定位命令、全局命令一块儿使用,才能显示其强大。

3.5.4行号和范围确定

光标。

指明行号。

末行模式下。

n1,n2

n1行到n2行

.

光标所在行

%

最后一行

全选。

第一行到最后一行

+n

相对当前行,“.,.+10”向后的10行

-n

相对当前行,“.,.-5”向前的5行

3.5.5全局命令

1.[addr]g/字符串/命令

让系统在指定的行中进行搜索字符串所在行,使用命令操作。

g:

全局,对包含字符串的指定行进行相应的命令操作,通常有:

p(显示)、g(替换)、d(删除)

格式中的g表示进行对选定的行进行操作;

末行的g表示替换。

2.替换

[addr]s/源字符串/目的字符串/[选项]

S:

表示替换工作。

选项表示对字符串操作的类型,当省略选项时,对每行第一个匹配串进行替换。

有:

对全局的字符串替换、c:

对全局要替换的字符进行确认、p:

将替换的结果逐行显示(ctrl+L可恢复)。

命令

操作说明

g/字符串/p

显示所有带有“字符串”的行

g!

/字符串/p

显示所有不带有“字符串”的行

n1,n2g/字符串/p

显示从n1到n2中,所有带“字符串”行

g/字符串/d

删除所有带有“字符串”的行

/字符串/d

删除所有不带有“字符串”的行

g/字符串1/s/字符串2/

用“字符串2”全文替换“字符串1”,但每行只替换第一个“字符串1”

g/字符串1/s//字符串2/g

用“字符串2”全文替换“字符串1”

s/字符串1/字符串2

用“字符串2”替换当前行第一个“字符串1”

s/字符串1/字符串2/g

用“字符串2”替换当前行所有“字符串1”

%s/字符串1/字符串2/

%s/字符串1/字符串2/g

g/字符串1/s/字符串2/字符串3/g

表示在所有包含“字符串1”的行中,把“字符串2”用“字符串3”代替

3.5.6.执行shell命令

使用vi时,执行shell程序的方法通常有3种:

返回式、退出式、执行式。

1、返回式。

末行模式→sh→输入shell命令→exit(退出shell)。

2、退出式。

末行模式→!

command→回车→输入shell命令(加!

)→回车(退出shell)。

3、执行式。

末行模式→r输入shell命令→回车→回车。

软件开发工具——GCC

7.4.编译基础流程和选项

四个步骤:

预处理(pre-processing)、编译(compiling)、汇编(assembling)、连接(linking)。

在处理过程中,C预编译器首先扩展宏定义和相应的头文件,在编译阶段根据源文件的指令创建汇编语言代码;

然后使用汇编器创建计算机可读的目标文件代码,每个源文件代码都会创建一个目标代码;

在编译最后一个阶段,连接器搜索指定的函数库,找到程序中使用的函数,并将这些函数的目标代码和所有的源文件目标代码合并在一起。

编译过程中,使用合适的编译选项,可以控制编译过程,最后生成可执行。

GCC支持的编译源文件的后缀及解释:

后缀名

对应的语言种类

后期可能进行的操作

.c

C语言源程序

预处理、编译、汇编、链接

.C/.cc/.cxx

C++语言源程序

.m

Objective-C语言源程序

.i

预处理后的C文件

编译、汇编、链接

.ii

预处理后的C++文件

.s/.S

汇编语言源程序

汇编、链接

.o

目标文件程序

链接

.a/.so

编译后的库文件

——

.h

预处理所需的文件

GCC编译器使用的主要格式为:

GCC[选项]要编译的文件[选项][目标文件]

如:

GCC-Ehellogcc.c-ohellogcc.i

7.4.1.预处理过程

就是要对源程序中出现的伪指令(以#开头;

宏定义、条件编译、头文件包含、特殊符号)和特殊字符进行处理的过程。

其具体过程就是把包含“#”的文件插入原文中,将宏展开,根据条件编译命令选择要使用的代码,把源文件变为一个没有宏定义、没有条件编译指令、没有特殊字符的文件,最后将代码生成一个.i的文件中,等待下一步处理过程。

如程序hellogcc.c:

gcc-Ehellogcc.c-ohellogcc.i

7.4.2.程序编译过程

主要目标是用预处理过程产生的指令生成汇编语言代码。

新文件中只包含常量、变量以及关键字的信息。

GCC编译器首先检查代码的规范性、可读性以及是否存在错误,检查无误后,把C/C++代码或者.i文件翻译成汇编代码。

如程序hellogcc.i:

gcc-Shellogcc.i-ohellogcc.s

7.4.3.汇编过程

把汇编代码翻译成格式正确的机器代码。

在汇编语言中,用助记符代替操作码,用地址符号代替地址码,因此,使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种程序叫汇编程序,GCC是系统软件中可以进行汇编处理的系统软件。

如程序hellogcc.s:

gcc-chellogcc.s-ohellogcc.o

7.4.4.链接过程

将上步生成的一个或多个.o目标文件盒函数库文件结合起来,最终生成在特定平台上的可执行文件。

函数库:

静态库和动态库。

如程序hellogcc.o:

gcc-ohellogcchellogcc.c

7.5GCC编译高级操作及选项

7.5.1.常规操作选项

选项

解释

-Xlanguage

输入文件的语言language

-E

只进行预处理

-S

只进行编译

-c

只进行汇编

-ofile

输出的文件指定到file中,可以输出汇编文件、目标文件、可执行文件

-v

打印出编译器内部编译各个过程的命令行信息和编译器版本

7.5.2.警告提示功能

对程序结构的诊断信息,不一定有错误,而是存在风险,可能存在错误。

-fsyntax-only

检查语法错误,不产生输出信息

-w

禁止所有警告信息

-Wunused

如果某个局部变量除了声明就没再使用,或者声明了静态函数但是没哟定义,或者某条语句的运算结果显然没有使用,编译器就发出警告

-Wmain

把main函数声明或定义成奇怪的类型

-Werror

视警告为错误,出现任何警告就放弃编译

-Wredundant-decls

同一个可见域定义多次声明

-Wall

允许GCC提供所有有用的报警信息

-pedantic-error

允许发出ANSIC标准所列出的全部信息

gcc-Wall-ohellogcchellogcc.c

7.5.3.代码调试

产生调试信息,方便后面gdb和gprof工具的调试和执行。

说明

-g

产生调试信息,GDB能够使用这些调试信息对程序进行排错

-pg

产生额外代码,输出profile信息,供分析程序gprof使用

-gdwarfleveln

生成调试信息,同时用level指出需要多少信息,默认的level值是2,level1输出最少量的信息,仅包括函数和外部变量的描述,没有局部变量和行号信息。

Level3包含更多的信息,出现的所有宏定义,支持宏扩展。

7.5.5.链接功能

-llibrary

搜索library的库文件,连接器在标准搜索目录中寻找这个库文件,库文件的真正名字是library.a,连接器会把它当做文件名准确引用这个文件。

但是即使不使用这个选项,GCC也把默认的一些库链接进去。

搜索目录除了一些系统标准目录外,还包括用户以“-L”选项指定的路径

-nostartfiles

不连接系统标准启动文件,而标准库文件仍然正常使用

-object-file-name

如果某些文件没有特别明确的后缀,GCC就认为他们生成的是目标文件或库文件

-nostdilb

不连接系统标准启动文件盒标准库文件,只把指定的文件传递给连接器

-static

在动态连接时,阻止连接共享库

-shared

生成一个共享目标文件,它可以和其它目标文件连接产生可执行文件。

只有部分系统支持该选项

-I目录

表示在头文件搜索路径中添加用户自定义的搜索目录。

由于Linux中头文件都默认放到“/usr/include”目录下,当用户希望添加其他位置的头文件时,就可以通过“-Idir”选项指定。

这个选项在编译多个不在同一个目录下的文件时非常有用

-L目录

在库文件的搜索路径中添加用户自定义的搜索的目录名,例如一个程序在连接时需要使用在目录“/home/wth”下libwth.so的库,用户只需要在gcc命令中加入“-L/home/wth/libwth.so”

如程序hellogcc.c,/home/wth目录下的wenjian2.h。

把wenjian2.h在前,hellogcc.c在后:

gcc-I/home/wth-ohellogcchellogcc.c

./hellogcc

7.6.1.程序性能测试gprof(与GCC协同工作)

执行完毕后,在当前目录下生成gmon.out文件,gprof通过这个文件得出统计资料。

格式:

gprof[选项]应用程序gmon.out

Gcc会在用户应用程序中的每一个函数中加入一个名为mcount(或_mcount或__mcount)的函数

-b

不显示详细资料,只是简要信息

-p

函数的调用图

-i

统计总结信息

-T

传统的BSD格式输出

-q

函数的时间消耗列表

-wwidth

输出的宽度

-eName

不输出函数Name及其子函数的调用图

-fName

输出函数Name及其子函数的调用图

-z

从未使用过的函数信息

-D

忽略函数中未知的变量

用gprof查看全部输出信息

函数名称

%time

函数使用占全部时间的百分比

cumulativeseconds

函数累计执行的时间

selfseconds

函数本身执行的时间

calls

函数被调用的次数

Selfcall

每次调用,花费在函数上的时间

Totalcall

每一次调用花费在函数及其子函数的平均时间

如分析程序eg604.c:

gcc-pg-oeg604eg604.c

./eg604

gprof-beg604gmon.out

7.6.2.程序覆盖测试工具gcov(与gcc协同工作)

使用分三步:

需要在gcc编译时添加-fprofile-arcs-ftest-coverage选项,运行结束后,在当前目录下生成数据信息→执行编译的可执行文件→使用gcov命令分析代码运行的效率。

不添加这两个选项不能工作。

Gcov[选项][用户程序]

分支的测试信息

-h

gcov帮助信息

gcov版本信息

不创建gcov的输出信息

-f

输出每个函数的使用信息

分析程序score.c:

gcc-fprofile-arcs-ftest-coverage-oscorescore.c

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2