1. 输入以下命令可以启动vi:

     (1) vi:不指定文件名,在保存文件时需要指定文件名。
     (2) vi 文件名:该文件既可以是已存在的,也可以是新建的。
     (3) vi +n 文件名:进入vi,光标停在第n行开始处。
     (4) vi + 文件名:进入vi,光标停在文件最后一行开始处。
     (4) vi +/字符串 文件名:进入vi,光标停在第一个字符串处所在行。
2. vi中保存文件并退出:
     (1) w 文件名:将当前文件的内容保存由"文件名"指定的新文件中,若该文件已存在则产生错误。
     (2) w! 文件名:将当前文件的内容保存由"文件名"指定的新文件中,若该文件已存在则覆盖原文件。
3. 光标的移动:
     (1) nw:右移n个字,n为数字,光标处于第n个字的字首。
     (2) w:右移1个字,光标处于下一个字的字首。
     (3) nb:左移n个字,n为数字,光标处于第n个字的字首。
     (4) b:左移1个字,光标处于下一个字的字首。
     (5) (:移到本句的句首,如果已经处于本句的句首,则移动到前一句的句首。
     (6) ):移动下一句的句首。
     (7) {:移到本段的段首,如果已经处于本段的段首,则移动到前一段的段首。
     (8) 1G:移动到文件首航的行首;G:移动到文件末行的行首;nG:移动到文件第n行的行首。
     (9) <ctrl>+g:报告光标所处的位置。
4. 文本的删除:
     (1) dw:删除光标所在文职的一个字;ndw:删除从光标开始的n个字。
     (2) db:删除光标前的一个字;ndb:删除从光标开始的前n个字。
     (3) d0:删除从光标前一个字符到行首的所有字符。
     (4) d$:删除光标所在字符到行尾的所有字符。
     (5) d(:删除从当前字符开始到句首的所有字符。
     (6) d):删除从当期字符开始到句尾的所有字符。
     (7) d{:删除从当前字符开始到段首的所有字符。
     (8) d}:删除从当前字符开始到短尾的所有字符。
5. 文本查找和替换:
     (1) ?string<Enter>:查找字符串
     (2) :s/old/new:在当前行用new替换old,只替换一次。
     (3) :s/old/new/g:在当前行用new替换old
     (4) :1,10s/old/new/g:在1~10行用new替换old
     (5) :1,$s/old/new/g:整个文件中用new替换old
6. 文本的复制与粘贴
     (1) yw:将光标所在位置到字尾的字符复制到缓冲区中
     (2) nyw:将光标所在位置开始的n个字复制到缓冲区中
     (3) yb:从光标开始向左复制一个字
     (4) nyb:从光标开始向左复制n个字
     (5) y0:复制从光标前一个字符到行首的所有字符
     (6) y$:复制从光标开始到行末的所有字符
     (7) np:在光标所在位置的后面插入复制的文本,共复制n次
     (8) nP:在光标所在位置的前面插入复制的文本,共复制n次。
7. Linux下的变量的命名规则:
     (1) 变量名必须有一定的意义,并且意义准确;
     (2) 不建议大小写混用;
     (3) 在失去意义的情况下,尽量使用较短的变量名。
     (4) 不采用匈牙利命名法表示变量的类型。
     (5) 函数名应该以动词开头,因为函数是一组具有特定功能的语句块;
     (6) 尽量避免使用全局变量
 
8. gcc编译程序时可分为4个阶段:
     (1) 预处理(Pre-Processing)
     预处理阶段,输入的是C语言源文件,通常为*.c,主要处理#ifdef、#include和#define预处理命令。该阶段一般会生成一个中间文件*.i。其命令为:
     gcc -E test.c -o test.i
     (2) 编译(Compling)
     在编译阶段,输入的是中间文件*.i,编译后生成汇编语言文件*.s。其命令为:
     gcc -S test.i -o test.s
     (3) 汇编(Assembling)
     在汇编阶段,将输入的汇编文件*.s转换为二进制机器码*.o,其命令为:
     gcc -c test.s -o test.o
     (4) 链接(Linking)
     在链接阶段将输入的二进制机器代码文件*.s与其他的机器代码文件和库文件汇集成一个可执行的二进制代码文件,其命令为:
     gcc test.o -o test
     最终生成可执行文件test。
     可简化为:gcc test.c -o test
9. gcc编译多个源文件,其命令为:
     gcc -o test testmain.c other1.c other2.c
     该命令将同时编译3个源文件,最后生成一个可执行程序test。
     注意:在生成可执行程序时,一个程序无论是只有一个源文件还是多个源文件,在所有被编译和连接的源文件中必须有且只有一个main函数。
10. gcc的选项:
     (1) -c : 只编译,不链接成可执行文件,编译器只是由输入.c等为后缀的源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。
     (2) -g:产生调试器gdb所必需的符号信息,要对源代码调试,必须在编译程序时加入该选项。
     (3) -O:对程序进行优化编译、链接,产生的可执行文件的执行效率高,但在编译、链接的速度就相应的慢一些。
     (4) -O2:比-O更好地优化编译、链接。
     (5) -Wall:输出所有警告信息
     (6) -w:关闭所有警告,建议不使用
     (7) -Idirname:将名为dirname的目录加入到程序头文件目录列表中
     (8) -Ldirname:将名为dirname的目录加入到程序的库文件搜索目录列表中,它是链接过程中使用的参数。
     (9) -lname:指示编译器,在链接时,装载名为libname.a的函数库,该函数库位于系统预定义的目录或者由-L选项指定的目录。
11. gcc的报错类型及对策
     (1) C语法错误
     (2) 头文件或库文件错误
     (3) 未定义的符号
12. strcpy是不安全的,存在安全漏洞,因此一般应该使用strncpy,strcat与strncat同样如此。
13. strstr是从字符串s1中寻找s2第一次出现的位置,返回指向第一次出现s2位置的指针,如果没有找到,则返回NULL。strchr查找字符串s中首次出现的字符c的位置,返回首次出现字符c指针,如果s中不存在c则返回NULL。

Linux C编程(1) vim及gcc命令的更多相关文章

  1. Linux环境下vi/vim编辑器常用命令

    使用vi文本编辑器 配置文件是Linux系统中的显著特征之一,其作用有点类似于Windows系统中的注册表,只不过注册表是集中管理,而配置文件采用了分散的自由管理方式.那么如何使用Linux字符操作界 ...

  2. linux shell编程学习笔记(二) --- grep命令

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...

  3. Linux Shell编程(21)——复杂命令

    更高级的用户命令find-exec COMMAND \;在每一个find 匹配到的文件执行 COMMAND 命令. 命令序列以 ; 结束( ";" 是 转义符 以保证 shell ...

  4. Linux学习笔记之八————vim编辑器常用命令总结

    <1>从命令行模式到插入模式 i  :在光标前插入 a :在光标后插入 I  :在光标所处在的行的行首 A :在光标所处在的行的末尾 o  :在光标所处在的行的下一行 行首 O :在光标所 ...

  5. Linux/UNIX编程:实现简单 tee 命令

    思路很简单,从标准输入文件描述符读入数据,然后同时向标准输出和参数指定的文件写出数据:如果加了 -a 选项,则以追加的方式向文件写出数据.还没了解 getopt() 函数就没判断参数是否合法. #in ...

  6. Linux C编程 GCC的使用

    本篇文章面向一些会linux文件操作与vim基本命令,编程大佬请移步勿喷. gcc是默认安装的,但是其还缺少常用的头文件和库文件,所以还需要build-essential这个包,可以在联网状态下使用如 ...

  7. Linux下Vim工具常用命令

    原文地址: http://www.cnblogs.com/lizhenghn/p/3675011.html 在linux下做开发,甚至是只做管理维护工作,也少不了Vim的使用.作为一个新手,我也是刚刚 ...

  8. 【Linux 操作系统】阿里云服务器 操作实战 部署C语言开发环境(vim配置,gcc) 部署J2EE网站(jdk,tomcat)

    . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . 博客总结 : 设置SecureCRT ...

  9. Linux下如何退出vim的一些常用命令总结

    1.保存并退出 linux下安装好了vim以及gcc后,我们开始新建一个c文件,例如: vim test.c 之后进入vim的编辑框中,点击i进入插入模式,开始编辑程序,当你编写好自己的程序之后,按E ...

随机推荐

  1. 和我一起学python,控制语句 (life is short ,we need python)

    控制语句 if/elif/else if语句和一般编程语言一样,条件为true 执行 如: if true : print 'true'         <----if.else下对齐,要使用相 ...

  2. ACM/ICPC 之 数据结构-邻接表+DP+队列+拓扑排序(TSH OJ-旅行商TSP)

    做这道题感觉异常激动,因为在下第一次接触拓扑排序啊= =,而且看了看解释,猛然发现此题可以用DP优化,然后一次A掉所有样例,整个人激动坏了,哇咔咔咔咔咔咔咔~ 咔咔~哎呀,笑岔了- -|| 旅行商(T ...

  3. 10. javacript高级程序设计-DOM

    1. DOM DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序接口) 1.1 节点层次 DOM可以将任何HTML和XML文档描绘成一个由多层节点构成的结构.节点分为几种不同的类型 ...

  4. SAP ALV OO 选择行打印

    &---------------------------------------------------------------------* *& Report  ZSDF001 * ...

  5. 士兵杀敌(三)_RMQ(区间最值查询)

    士兵杀敌(三) 时间限制:2000 ms  |  内存限制:65535 KB 难度:5   描述 南将军统率着N个士兵,士兵分别编号为1~N,南将军经常爱拿某一段编号内杀敌数最高的人与杀敌数最低的人进 ...

  6. 监控Tomcat解决方案(监控应用服务器系列文章分享)

    使用JMX接口开发监控程序  ◆ 全部代码需要从零开始,代码量较大  ◆ 支持各不同版本比较麻烦,每个版本可能有差异  ◆ 可支配性强  ◆ 最重要的一个缺点是,配置比较麻烦 Tomcat激活JMX远 ...

  7. LinkIssue: Error 'LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or cor

    参考:http://blog.csdn.net/junjiehe/article/details/16888197 使用VisualStudio 编译链接中可能出现如下错误: LINK : fatal ...

  8. python基础——第三方模块

    python基础——第三方模块 在Python中,安装第三方模块,是通过包管理工具pip完成的.  如果你正在使用Mac或Linux,安装pip本身这个步骤就可以跳过了.  如果你正在使用Window ...

  9. 【转】C语言快速幂取模算法小结

    (转自:http://www.jb51.net/article/54947.htm) 本文实例汇总了C语言实现的快速幂取模算法,是比较常见的算法.分享给大家供大家参考之用.具体如下: 首先,所谓的快速 ...

  10. JavaScript基础——数据类型

    JavaScript使用数据类型来确定如何处理被分配给一个变量的数据.变量的类型决定了你可以对变量进行什么操作,如循环或者执行.下面描述了最常用的变量类型. 字符串(String):此数据类型将字符数 ...