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 virtualenv环境运行django

    python virtualenv环境运行django 安装前准备 检查pip版本与python版本是否一致 [root@localhost bin]# whereis pip pip: /usr/b ...

  2. Java集合中Comparator和Comparable接口的使用

    在Java集合中,如果要比较引用类型泛型的List,我们使用Comparator和Comparable两个接口. Comparable接口 -- 默认比较规则,可比较的 实现该接口表示:这个类的实例可 ...

  3. ios 在ios9中 NSNotificationCenter addObserver 不会影响对象释放

    如题,ios9上,  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(test) name:@&qu ...

  4. C#操作字符串方法总结<转>

    staticvoid Main(string[] args) { string s =""; //(1)字符访问(下标访问s[i]) s ="ABCD"; Co ...

  5. 2106 Problem F Shuffling Along 中石油-未提交-->已提交

    题目描述 Most of you have played card games (and if you haven’t, why not???) in which the deck of cards ...

  6. windows编程中c语言知识回顾

    1.include: #include表示只在系统提供的头文件中查找: #include "Head File"表示先在当前目录中搜索,若不存在,再到系统目录中查找: vs环境中, ...

  7. 【linux】nohup运行守护进程

    来源:http://www.cnblogs.com/allenblogs/archive/2011/05/19/2051136.html nohup 命令 用途:不挂断地运行命令. 语法:nohup ...

  8. JavaScript对象与数组

    一.Object 类型到目前为止,我们使用的引用类型最多的可能就是 Object 类型了.虽然 Object 的实例不具备多少功能,但对于在应用程序中的存储和传输数据而言,它确实是非常理想的选择.创建 ...

  9. iOS小技巧总结,绝对有你想要的

    原文链接 在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIV ...

  10. 数据库IO简介

    IO有四种类型:连续读,随机读,随机写和连续写,连续读写的IO size通常比较大(128KB-1MB),主要衡量吞吐量,而随机读写的IO size比较小(小于8KB),主要衡量IOPS和响应时间.数 ...