Linux常用开发工具

vim文本编辑工具

  • vim有12中模式,每一种模式都有不同的功能,不同模式做不同的操作。

普通模式、插入模式、底行模式(视图模式、替换模式)

  • vim file:打开文件,进入普通模式
  • 从普通模式切换到插入模式的方法:

i        从光标坐在位置开始插入

a       从光标坐在位置的下一个字符处开始插入

I        将光标移动到行首,然后进入插入模式

A       将光标移动到行尾,然后进入插入模式

o       在光标所在行的下方,新建一行,进入插入模式

O       在光标所在行的上方,新建一行,进入插入模式

s        删除光标所在字符,然后进入插入模式

  • 从普通模式切换到底行模式的方法:

:w       保存

:q       退出

:q!      强制退出(不保存本次修改)

:wq     保存并退出

:!pwd  临时执行命令,按回车返回

  • 从插入模式/底行模式返回到普通模式的方法:

esc

  • 普通模式下的常用操作:

h      向左移动光标

j       向下移动光标

k      向上移动光标

l       向右移动光标

w     光标向右移动一个单词(单词分界为特殊字符)

b      光标向左移动一个单词

yy     复制光标所在行

nyy   从光标所在行开始向下复制n行

p      向光标所在行下方新建一行进行粘贴

P      向光标所在行上方新建一行进行粘贴

dd    删除光标所在行(vim中删除其实是剪切)

ndd  从光标所在行开始向下删除n行

x       删除光标所在字符

dw    删除光标所在位置开始的一个单词

u       撤销操作

ctrl+r 返回撤销操作

ctrl+v 进入列视图模式,可以进行选择操作(=  缩进对齐)

v        进入行视图模式,可以进行选择操作

r        替换光标所在字符

R      进入替换模式,对内容一直替换

gg     光标移动到文档首行

G      光标移动到文档末尾行

gg=G  全文缩进对齐

set nu 设置行号

set ai  设置自动缩进

set st=4  设置制表符的长度等于4个空格长度

set sts=4

set sw=4

gcc/g++编译器:

将c/c++等高级语言程序编译成为机器可识别程序

  • gcc使用:linux下程序的执行就是告诉操作系统程序文件在哪个路径下
  • gcc常用选项:

-o    指定生成的文件名称

  • 程序的编译过程:

a.预处理(去掉注释,展开所有代码)

b.编译 vi(先纠错,没有错误则编译成汇编代码)

c.汇编(将汇编代码生成一个机器可识别的代码。汇编只是将我们写的代码汇编完毕,但是不能运行,因为代码不完全,我们调用的一些库函数,并不知道如何实现,需要经过第四步才能生成可执行程序)

d.链接(将库函数链接过来与我们的代码最终合并生成可执行程序)

     链接方式(默认动态链接):

         动态链接:链接的是动态库,生成的可执行程序小,但是动态链接生成的程序运行时需要动态库存在

         静态链接:链接的是静态库,生成的可执行程序大,静态链接生成的程序运行时不需要静态库存在,因为静态链接                                          就是将库中的函数全部拿过来生成可执行程序,所以大

yum:

红帽子系列linux操作系统的软件包管理工具

  • 软件的安装/移除/查看都是通过yum

查看     yum list | grep 包名

安装软件包     yum install 包名

卸载软件包     yum remove 包名

列出所有可以安装的软件包  yum list

文件传输软件包   lrzsz

修改/更新yum源的方法:  /etc/yum.repos.d/CentOS-Base.repo

  • gdb:程序调试工具

makefile:

不普通的普通文件

  • 在makefile中通常定义很多的程序编译规则,在终端命令行下敲击一个make命令,则make程序就会跑到当前目录下寻找Makefile文件,然后按照Makefile中已经规划好的编译顺序以及编译规则来完成整个项目的编译。
  • make命令——只在当前目录下找名字叫Makefile/makefile的文件
  • 如何编写makefile?

main.c——>main

目标对象名称:依赖对象名称

[制表符\t]通过依赖对象生成目标对象的命令

`main' is up date :目标对象已经是最新的了,不需要重新生成,make程序判断依赖文件的最后修改时间和目标对象文件                                            的最后修改时间,如果目标对象的时间戳大于依赖文件的时间戳,那么就证明依赖文件在上次编译后                                             就没有修改过,不需要重新编译。

猜你喜欢

转载自blog.csdn.net/qq_42142477/article/details/82949777