linux学习历程(2)Linux下C语言开发环境

编辑器vim

Vi是Linux系统中一种文本编辑器,它的使用方法和界面与Unix平台十分相似。vim 是vi的高级版本,兼容vi,功能更强大。

  • vi的三种模式
  1. 命令行模式

开始编辑命令

i           在光标前输入文本
o          在当前行后输入新一行
O          在当前行前输入新一行

删除命令

x      删除光标所在的字符
dw    删除光标所在的单词
d$     删除光标至行尾所有字符
D      同 <d$>
dd     删除当前行
ndd   删除当前行以后的n行

改变与替换操作命令

r      替换光标所在的字符
R      替换字符序列
cw    替换一个单词
ce    同cw
c$    替换自光标位置至行尾的所有字符
C      同c$
cc     替换当前行
 
拷贝和粘贴命令

yw     将光标所在单词复制到粘贴板   
y$     将光标至行尾的字符复制到粘贴板
Y       同y$
yy      将当前行复制到粘贴板
nyy    将当前行后的n行复制到粘贴板
P       将粘贴板中的内容粘贴在光标前
p       将粘贴板中的内容粘贴在光标后

  • 底行模式

将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等。不过一般我们在使用时把vi简化成两个模式,就是将底行模式也算入命令行模式。

  • 插入模式

只有在输入模式下,才可以输入文字。在命令模式下输入(i,a,A等),可进入输入模式,输入模式下按ESC,可返回命令模式。

编译器gcc

gcc(GNU CCompiler)是GNU才推出的功能强大、性能优越的多平台编译器,gcc编译器能将c、c++语言源程序编译、链接成可执行文件,以下是gcc支持编译的一些源文件的后缀及其解释
.c为后缀的文件,c语言源代码文件;
.h为后缀的文件,是程序包含的头文件;
.i为后缀的文件,是已经预处理过的c源代码文件;
.s为后缀的文件,是汇编语言源代码文件
.o为后缀的文件,是编译后的目标二进制文件;

调试器Gdb

GDB(GNU Debugger)是由GNU计划完成的、受通用公共许可证(GPL)保护的自由软件。它主要工作在字符模式下,是一个功能强大的交互式程序调试工具。GDB不仅可以用来调试C/C++语言编写的程序,还可以用来调试Pascal、Objective-C以及Fortran等语言编写的程序。
在保存退出后首先使用 Gcc 对 test.c 进行编译,注意一定要加上选项“-g” ,这样编译出的可执行代码中才包含调试信息,否则之后 Gdb 无法载入该可执行文件。
      gcc -g func.c -o test
 虽然这段程序没有错误,但调试完全正确的程序可以更加了解 Gdb 的使用流程。接下来就启动 Gdb 进行调试。注意,Gdb 进行调试的是可执行文件,而不是如“.c”的源代码,因此,需要先通过 Gcc 编译生成可执行文件才能用 Gdb 进行调试。

makefile

makefile 是 make 读入的唯一配置文件,因此本节的内容实际就是讲述 Makefile 的编写规则。
1、makefile的基本格式:target:dependency
                                (Tab字符)command
注:若dependencyt比target日期新或target不存在,则make会执行command
2、makefile中变量的使用
OBJECTS = sum.o sub.o operator.o             #定义变量
$(OBJECTS)                                             #使用变量
3、makefile的自动推导(隐晦规则) 
     GNU的make很强大,它可以自动推导文件以及文件依赖关系后面的命令,于是我们就没必要去在每一个[.o]文件后都写上类似的命令,因为,我们的make会自动识别,并自己推导命令。只要make看到一个[.o]文件,它就会自动的把[.c]文件加在依赖关系中。如:如果make找到一个main.o,那么main.c就会是main.o的依赖文件。并且gcc -c main.c -o main.o也会被推导出来。 

shell

Linux系统中的Shell种类众多,常见的有bash、csh以及ksh等。不同的Shell语法有所不同,不能互换使用,但每种Shell都有其特色之处。这里我们选择bash来讲述Shell脚本编程的基础知识。Shell命令可以事先写在一个文件中,使用时Shell读取文件中的命令逐条解释,这种文件被称为脚本。

 

猜你喜欢

转载自blog.csdn.net/neptune__/article/details/81132476