Linux C编程(1) vim及gcc命令

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。

时间: 2024-10-07 08:11:02

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

Linux Shell编程笔记一:相关命令

相关出处请查看:http://www.cnblogs.com/stephen-liu74/archive/2011/11/01/2202027.html 零.shell中的内部变量: 1.    $?:    表示shell命令的返回值.2.    $$:    表示当前shell的pid.3.    $!:    最后一个放入后台作业的PID值.4.    $0:    表示脚本的名字.5.    $1--$9,${10}: 表示脚本的第一到九个参数,和第十个参数.6.    $#:    表

linux sheel编程学习笔记(二) --- grep命令

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板.如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名.搜索的结果被送到标准输出,不影响原文件内容. grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成

使用linux-c编程实现简单的ls命令

使用Linux-c编程实现简单的ls命令 具体代码如下:     加载的头文件有stdio.h,sys/types.h,dirent.h,unistd.h,sys/stat.h,fcntl.h,string.h等. void main(int argc,char **argv){      DIR *dir;      struct dirent *rdir;      struct stat statbuf;      char * buffer="/";      char *fi

Linux环境编程之进程(一):main函数调用、进程终止以及命令行参数和环境表

(一)main函数调用 main函数作为程序运行时的入口函数,它是如何被调用的呢?首先必须清楚一点,main函数也是一个函数,它只有被调用才能够执行.其实,在执行可执行程序时,在调用main函数之前,内核会先调用一个特殊的启动例程,将此启动例程作为可执行程序的起始地址.启动例程是如何作为可执行程序的起始地址的?这是由链接编译器设置的,而链接编译器则是由C编译器(如gcc编译器)调用的.启动例程作为可执行程序的起始地址主要做哪些工作呢?启动例程从内核取得命令行参数和环境变量值,以此来为main函数

二十八、Linux下Vim工具常用命令

在linux下做开发,甚至是只做管理维护工作,也少不了Vim的使用.作为一个新手,我也是刚刚接触,本节将我日常使用或收集的Vim常用命令记录下来. 当然,直接在命令行上输入:vimtutor,就可以学习到Vim的所有命令了.Vim很强大,很多牛人在vim里集成很多插件什么的,但这里只介绍基本vim命令 移动命令 h "左 j "下 k "上 l "右 w "光标移动到下一个单词的首字符 a word forward b "光标移动到上一个单词的首

从简入难makefile文件编写,Linux C++编程,简单vi命令

 1.一个最基本的C++程序 2.第二个c++程序 3.第一个入门级别的简单的makefile 4.在makefile中定义变量. 5.编写makefile的依赖 如果start:标识后面的某个.o没有,则重新编译没有编译的那个文件 6.最终的makefile文件 总结:makefile是通过.o文件是否存在已经.cpp最后的修改时间来判断是否重新编译.o文件. 7.makefile不管理.h文件,它是编译器来进行管理的. vi: i在光标之前插入 a在光标后面插入 x删除后面的字符 dd删

LINUX基础命令的使用以及vim的简单命令

一 命令提示符说明 [登录用户@主机名 工作目录]# 二 Linux命令格式 命令字  [选项]  [参数1] [参数2] [ ] 表示里面内容可有可无 选项:如果是单个字符,用-               如:# ls -l 如果是一个单词,用--              如:# ls --color 多个单个字符的选项可以合并一个-   如:# ls -l -h = # ls –lh 三 基本命令及其说明 1. 基本命令 # uname -r//查询内核 # cat /etc/redha

linux应用之vim的常用命令

vim 选择文本,删除,复制,粘贴 文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,总结如下: v 从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束. V 从光标当前行开始,光标经过的行都会被选中,再按一下V结束. Ctrl + v 从光标当前位置开始,选中光标起点和终点所构成的矩形区域,再按一下Ctrl + v结束. ggVG 选中全部的文本, 其中gg为跳到行首,V选中整行,G末尾 选中后就可以用编辑命令对其进行编辑,如d 删除 y 复制 (默认是复制到"寄存器) p

Linux Shell Vim 经常使用命令、使用技巧总结

前言 本文总结了自己实际开发中的经常使用命令,不定时更新,方便自己和其它人查阅. 如有其它提高效率的使用技巧.欢迎留言. 本文地址 http://blog.csdn.net/never_cxb/article/details/47803991 转载请注明出处 Linux 经常使用命令 基本 cd - 返回到上一次的工作文件夹 export LANG=en_US,export 对于环境变量的设置也能作用于子shell ps -ef | grep nginx ,搜索.这儿用到了管道 passwd r