
LINUX系统工具 Vim的应用 1、三种模式互相转换 输入i 输入shift+;输入ESC 输入ESC 1、解压缩包 gz 格式:(管理员下)tar xvzf vim_[文件名].orig.tar.gz Bz2 格式:(管理员下) tar xvjf vim_[文件名].orig.tar.gz 用make 测试(管理员下) make test 2、vi 命令 退出:help version 当前版本 :set nocp 恢复默认的流程 :help 帮助资料 hjkl 左移、下移、上移、右移 Ctrl+D 将右键向下移动半个窗口 Ctrl+U 将右键向上移动半个窗口 强制执行help [命令] 显示相关的军令帮助 3.3—1、命令行模式 用户输入vi 命令行模式 输入模式 末行模式 如果不是合法命令,就会发出报警声。 切换到输入模式,在i命令以后输入的内容都插在右键位置之前,光标后的 文本相应的向右移动。如按enter 键,就插入新的一行如果换行。 nG光标移到第n 删除右键所在位置的符号nx 删除右键所在位置及其后的n 个符号 nX 删除右键所在位置及前n 个符号 dd 删除右键所在行 ndd 删除右键之后n 修改右键所在字符/name 查找光标以后name 的字符串,系统会自动查找,并突出表明一切找到的字 符串,并转入第一个找到的字符串;如果要继续向下查找,可以按n ?name查找光标以后name 的字符串,与“/”类似,但它是向上查找name 字符串 查找“{”,并将右键移到“{”处yy 复制所在行 nyy 复制光标以后n 撤销最近一次操作,并恢复操作结果,可多次使用u来恢复已经进行了多步 的操作 撤销目前进行的一切的操作(文件自这次保留到现在的操作)3.3—2.末行模式 退出vi,但是文档内容有修改的话,并不保存修改wq! 保存内容并退出vi 查找匹配的字符串,在编辑时,要查找包括某个字符串,可以使用“/字符串”,会查找所有的,转到第一个字符 创建新文档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 [文件名]断电恢复 3.4—4.定义新指示 :ab 字符一 字符串一 :imap [快捷键] [需要替换的字符串] 3.4.5.文本整体移动 默认为8,用set 进行设置 n,原动机行;m,(move)移动;k,第k行下方 [n,n],原动机行;m,(move)移动;klinux安装loic,第k行下方 3.5 高级使用 Vi 环境(m) :set 功能选项(输入拼音) 首先使用.bash_profile 文件,每个文档可以有自己的.exrc 配置文档。
ai autoindent 选项把每一行缩排为与其上一行的行首对齐,默认为off ap autoprint 默认为on sm showmatch 在输入右圆括号时,显示匹配的左引号。默认为off nm number 显示行号。默认为off Wm=n wrapmargin 定义中间距。n 为小数。默认为0 report report 编辑操作变化的次数,导致资料出现在状况行。默认为5 smd showmode 给出相关指示时,显示“插入”。默认为off ws Word search 在查找期间遇见结束符时,绕道开头继续查找。默认为on eb errorbells 命令错误会报案。默认为off redaw 发生改变时刷新。默认为on warn 修改缓冲区内容后未保留,显示警告信息。默认为on fl 输入无效指令,发出声响;flash 不再发出;noflash 发出。默认on list vi 中的Tab 用“^1”表示,用“$”表示每行结束。 ic ignorecase 区分大小写搜索,noignorecase 不混淆大小写。默认为off warp 较长行。wrap 后自动换行,nowrap 不自动换行。

默认为On 3.5.2 语法高亮显示 /root/.vimrc 对文档进行高亮设置的顶配文件。 export TERM=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 的行;\表示所有行中涵盖sun 匹配一行的开始。/^f/表示匹配所有以f也是全篇的行;“^#/[a-z]/”表示匹 配一切以#作为一行结尾。并且第二个字符为字母的行。 $符号 $匹配一行的结束,其应用文档是在指定的符号中间加$行。如,/wth$/,表 示一切以wth 字符开头的行;/[A-Z]$/表示匹配所有以大写字母结尾的行。

由于正则表达式必须与定位指令、全局命令一块儿使用,才能表明其超强。 3.5.4 行号和范围选定 光标。指明行号。末行模式下。 n1,n2 n1 行到n2 3.5.5全局命令 1.[addr] /字符串/命令 让功能在指定的行中进行搜索字符串所在行,使用军令操作。 g:全局,对涵盖字符串的指定行进行相应的军令操作,通常有:p(显示)、g(替换)、d(删除) 格式中的g 表示进行对选定的行进行操作;末行的g 表示替换。 2.替换 [addr] /源字符串/目的字符串/[选项] S:表示替换工作。选项认为对字符串操作的类型,当省略选项时,对每行第一个匹配串进 行替换。有:g:对大局的字符串替换、c:对大局要替换的符号进行确认、p:将替换的结 果逐行显示(ctrl+L 可恢复)。 命令 操作说明 g/字符串/p 显示一切带有“字符串”的行 g!/字符串/p 显示一切不带有“字符串”的行 n1,n2g/字符串/p 显示从n1 到n2 中,所有带“字符串”行 g/字符串/d 删除一切带有“字符串”的行 g!/字符串/d 删除一切不带有“字符串”的行 g/字符串 1/s/字符串2/ 用“字符串2”全文替换“字符串1”,但每行只替换第 一个“字符串1” g/字符串 1/s//字符串 用“字符串2”全文替换“字符串1”s/字符串1/字符串2 用“字符串2”替换目前行第一个“字符串1” s/字符串1/字符串2/g 用“字符串2”替换目前行一切“字符串1” %s/字符串1/字符串2/ 用“字符串2”全文替换“字符串1” %s/字符串1/字符串2/g 用“字符串2”全文替换“字符串1” g/字符串1/s/字符串2/字符串3/g 表示在一切包括“字符串1”的行中,把“字符串2”用 “字符串3”代替 3.5.6.执行shell 命令 使用vi 时linux安装loic,执行shell 程序的原理往往有3 种:返回式、退出式、执行式。
1、返回式。末行模式sh输入shell 命令exit(退出shell)。 2、退出式。末行模式!command回车输入shell 命令(加!)回车(退出shell)。 3、执行式。末行模式r 输入shell 命令回车回车。 软件研发工具——GCC 7.4.编译基础程序和选项 四个步骤:预处理(pre-processing)、编译(compiling)、汇编(assembling)、连接(linking)。 在处理过程中,C 预编译器首先拓展宏定义和相应的头文件,在编译阶段按照源文件的 指令创建汇编语言源码;然后使用汇编器创建计算机可读的目标文件代码,每个源文档源码 都会创建一个目标代码;在编译最后一个阶段,连接器搜索指定的函数库,找到程序中使用 的链表,并将它们索引的目标代码和一切的源文档目标代码合并在一起。 编译过程中,使用恰当的编译选项,可以控制编译过程,最后生成可执行。 GCC 支持的编译源文件的前缀及表述: 后缀名 对应的修辞种类 后期应该进行的操作 语言源程序预处理、编译、汇编、链接 .cxxC++语言源程序 预处理、编译、汇编、链接 Objective-C语言源程序 预处理、编译、汇编、链接 预处理后的C文件 编译、汇编、链接 .ii 预处理后的C++文件 编译、汇编、链接 汇编语言源程序汇编、链接 目标文件流程链接 .so编译后的库文档 GCC编译器使用的主要文档为: GCC[选项] 要编译的文档 [选项][目标文件] 如:GCC hellogcc.i7.4.1.预处理过程 C、C++等源程序 预编译 预编译后生成文 件(.i、.ii 编译编译后生成的代 汇编生成可执行文档 链接 汇编生成的目标 文件.o 就是要对源程序中出现的伪指令(以#开头;宏定义、条件编译、头文档包括、特殊符 号)和独特符号进行处理的过程。

其详细过程就是把包括“#”的文档插入原文中,将宏展 开,根据条件编译指示选择要使用的源码,把源文档变为一个没有宏定义、没有条件编译指 令、没有特殊符号的文档,最后将源码生成一个 的文档中,等待下一步处理过程。如流程hellogcc.c: gcc hellogcc.i7.4.2.程序编译过程 主要目标是用预处理过程造成的指示生成汇编语言源码。新文档中只涵盖常量、变量以 及关键字的资料。GCC 编译器首先检查代码的规范性、可读性以及能否存在错误,检查无 误后,把C/C++代码如果 文件翻译成汇编代码。如流程hellogcc.i: gcc hellogcc.s7.4.3.汇编过程 把编写代码翻译成文档正确的机械代码。在编写语言中,用助记符代替操作码,用地址 符号替代地址码,因此,使用汇编语言编写的流程,机器不能直接识别,要由一种程序将汇 编语言翻译成机械语言,这种流程叫汇编程序,GCC 是功能插件中可以进行编写处理的系 统硬件。 如流程hellogcc.s: gcc hellogcc.o7.4.4.链接过程 将上步生成的一个或多个 目标文件盒函数库文档结合起来,最终生成在特殊平台上的可执行文档。
函数库:静态库和动态库。 如流程hellogcc.o: gcc hellogcchellogcc.c 7.5GCC 编译高级操作及选项 函数库文档 目标文件.o 目标文件.o 目标文件.o 7.5.1.常规操作选项选项 解释 language输入文档的修辞language file输出的文档指定到file 中,可以输出汇编文件、目标文件、可执行文档 打印出编译器内部编译各个过程的命令行信息和编译器版本7.5.2.警告提示系统 对流程结构的误诊信息,不当然有错误,而是存在风险,可能存在错误。 选项 解释 -fsyntax-only 检查字词错误,不造成输出信息 禁止所有警告信息-Wunused 如果某个局部方差除了声明就没再使用,或者声明了静态函数但是没 哟定义,或者某条语法的演算结果显然没有使用,编译器就发出警告 -Wmain 把main 函数声明或定义成吃惊的类型 -Werror 视警告为错误,出现任何警告就拒绝编译 -Wredundant-decls 同一个可见域定义多次声明 -Wall 允许GCC 提供一切有用的报警资料 -pedantic-error 允许发出ANSI 标准所罗列的全部资料如流程hellogcc.c: gcc -Wall hellogcchellogcc.c 7.5.3.代码调试 产生调试资料,方便前面gdb 和gprof 工具的调试和执行。

选项 说明 产生调试资料,GDB能够使用它们调试资料对流程进行排错-pg 产生额外代码,输出profile 信息,供分析流程gprof 使用 -gdwarflevel 生成调试资料,同时用level指出需要什么资料,默认的level 值是2,level 输出最少量的资料,仅包含键值和内部函数的描写,没有局部变量和行号信息。Level3 包含更多的资料,出现的一切宏定义,支持宏扩展。 7.5.5.链接系统 -llibrary 搜索library 的库文档,连接器在标准搜索目录中找到这个库文档,库文 件的真正名字是library.a,连接器会把它拿来文件名准确引用这个文档。 但是而且不使用这个选项,GCC 也把默认的一些库链接进来。搜索目录 除了一些功能标准目录外,还涵盖用户以“-L”选项指定的路径 -nostartfiles 不打通系统标准启动文件,而标准库文件始终正常使用 -object-file-name 如果那些文档没有特别明晰的前缀,GCC 就可能你们生成的是目标文件 或库文档 -nostdilb 不打通系统标准启动文件盒标准库文档,只把指定的文档传递给连接器 -static 在动态连结时,阻止连接共享库 -shared 生成一个共享目标文件,它可以和其余目标文件连接造成可执行文档。
只有部份功能支持该选项 目录认为在头文档搜索路径中添加用户自定义的搜索目录。由于Linux 中头 文件都默认放在“/usr/include”目录下,当用户能够添加这些位置的头 文件时,就可以通过“-I dir”选项指定。这个选项在编译多个不在同一 个目录下的文档时相当有用 目录在库文档的搜索路径中添加用户自定义的搜索的目录名,例如一个程序 在打通时需要使用在目录“/home/wth”下libwth.so 的库,用户只需要 在gcc 命令中加入“-L/home/wth/libwth.so” 如流程hellogcc.c,/home/wth 目录下的wenjian2.h。把wenjian2.h 在前,hellogcc.c 在后: gcc hellogcchellogcc.c hellogcc7.6.1.程序外观检测gprof(与 GCC协同工作) 执行完毕后,在目前目录下生成gmon.out 文件,gprof 通过这个文档得出统计资料。 格式:gprof [选项] 应用程序 gmon.out -pg Gcc 会在用户应用程序中的每一个函数中加入一个名为mcount(或 _mcount 或__mcount)的链表 传统的BSD格式输出 width输出的间距 Name不输出字段Name 及其子函数的调用图 Name输出字段Name 及其子函数的调用图 gprof查看全部输出信息 name 函数名称 %time 函数使用占全部时间的百分比 cumulative seconds 函数累计执行的时间 self seconds 函数自身执行的时间 calls 函数被读取的次数 Self call 每次读取,花费在链表上的时间 Total call 每一次调用花费在链表及其子函数的平均时间 如分析流程 eg604.c: gcc -pg eg604eg604.c eg604gprof eg604gmon.out 7.6.2.程序覆盖测试工具 gcov(与gcc 协同工作) 使用分三步:需要在gcc 编译时添加-fprofile-arcs -ftest-coverage 选项,运行结束后, 在目前目录下生成执行编译的可执行文档使用gcov 命令判断源码运行的效 不添加这两个选项不能工作。格式:Gcov [选项] [用户流程] gcov帮助资料 gcov版本资料 不创建gcov的输出信息 输出每个字段的应用资料如:分析流程score.c: gcc -fprofile-arcs -ftest-coverage scorescore.c
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-119619-1.html
必须给他弄沉
这里有个小女孩很懂事
第二次撞击