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. iOS UIViewController 和 nib 相关的3个方法

    iOS UIViewController 的 awakeFromNib 以及 - (id)initWithCoder:(NSCoder *)aDecoder 和 - (instancetype)ini ...

  2. mysql日常语句总结

    #删除mysql的二进制日志文件 #将删除mysql-bin.*****1之前的日志文件 purge binary logs to 'mysql-bin.*****1'; #重新生成一个二进制日志文件 ...

  3. PHP javascript cookie

    2015-07-30 16:54:58 ................................cao!!!! 汉字, 邮箱的@符号 容易出错 PHP setcookie 的时候, 不要url ...

  4. 初识Python(一)

    Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...

  5. JAVA回调接口的理解

    A类持有B接口的对象引用,B接口有一个callBack()方法,C类是B类的实现类,实现了callBack()方法,把C类传入A类,当A类执行完操作后调用callBack()方法,这时候A调用的就是C ...

  6. linux日常易忘指令

    1.编辑全局指令 进入~/.bash_profile 增加"exprot +(启动文件的地址)" source ~/.bash_profilr(刷新) 2.修改mysql密码 my ...

  7. ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(一) 之 基层数据搭建,让数据活起来(数据获取)

    大家好,本篇是接上一篇 ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(零) 前言  ASP.NET SignalR WebIM系列第二篇.本篇会带领大家将 LayIM ...

  8. 聊聊Android的APK反编译

    上一篇<How To Use Proguard in Android APP>介绍了如何对Android进行混淆,现在来对它进行反编译看看,里面有些什么东西. APK文件,其实也是一个压缩 ...

  9. find 查找文件 -exec 然后压缩 查看tar包的内容

    [root@cs Downloads]# find ./ -name "banner*" -exec tar -cvf k.tar "{}" \; ./bann ...

  10. MVC - 17.OA项目

          1.分层   2.项目依赖关系 MODEL IDAL -> MODEL DAL -> IDAL,MODEL,EntityFramewrok(注意和MODEL里的版本要一致),S ...