linux基础开发使用工具

一、vim   文本编辑工具

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

主要讲解三种模式:普通模式,插入模式,行底模式(视图模式,替换模式)

vim file 打开文件

从普通模式切换到插入模式:i

i:从光标所在位置开始插入

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

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

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

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

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

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

从普通模式切换到底行模式: 输入:  

:w 保存

:q 退出

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

:wq 保存退出

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

从插入模式或底行模式返回普通模式

ESC

普通模式下的常用操作:

h 向左移动光标

j 向下移动光标

k 向上移动光标

l 向右移动光标

w 光标向右移动一个单词

b 光标向左移动一个单词

yy 复制光标所在行

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

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

P(大写)向光标所在行上方粘贴新行

dd 剪切(vim种删除其实是剪切)

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

xx 删除光标所在字符

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

u 撤销上一次操作

ctrl+r 返回撤销操作

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

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

r 替换光标所在字符

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

gg 光标移动到文档首行

G 光标移动到光标末位行

gg=G 全文缩进对齐

set nu 设置自动缩进

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

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

linux下程序的执行就是告诉操作系统程序/文件在哪个文件下

gcc是一个编译工具,将C语言程序编译成为机器可识=识别的语言程序

chmod -x main.c转化为可执行程序

ABI----标准  二进制应用接口

gcc常用选项:

-O:制定要生成的文件的名称

-E:只预处理

-S:只编译

-C:只汇编

-static:静态链接(gcc默认是动态链接)

程序的编译过程:

1.预处理  去掉注释,展开所有代码

2.编译  先纠错,没有错误则编译成汇编代码

3.汇编  将汇编代码生成一个机器可识别的代码b(只能将代码汇编完毕,但是不能运行,因为代码不完全,

        调用的库函数还不知道怎么实现,需要经过链接才可实现)

4.链接  将库中的函数链接过来和我们的代码最终合并并生成可执行程序

链接分为动态链接和静态链接,分别链接动态库和静态库。动态链接生成的可执行程序小,静态链接大,

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

程序的链接方式默认是动态链接

三、gdb   程序调试工具

gcc -g 选项是开启gdb调试选项,目的是为了在可执行程序中加入调试符号信息

gdb调试一个程序需要这个程序在编译的时候加上-g选项来开启调试,为可执行程序加入一些调试符号信息。gcc -g main.c -o main

gdb 如何加载程序

gdb ./main

gdb进入后 file ./main

gdb常用命令:

run 简写r 开始执行程序 程序直接跑起来

r -l -s -a程序参数在这里加载   s下一步,跟踪进入函数

start开始逐步调试程序

l  查看当前行附近代码(也可以指定行号)

n  下一步,不跟踪进入函数

until 行号  直接运行到第n行

b main.c:n  给mian.c第n行添加断点

b n  给当前文件第n行添加断点

b func 给函数添加断点

i 查看详细信息

i b 查看当前断点信息

d 默认删除所有断点

d n 删除id为n的断点

p 打印变量内容

watch 变量监控,变量内容修改时会停下来

bt 查看函数调用栈信息

四、makefile   不普通的普通文件

在makefile中我们通常定义很多的程序编译规则,在终端命令行下敲击一个make命令,那么这时候make这个成簇,就会跑到当前目录下找寻这个

Make file文件,然后按照makefile中已经规划好的编译顺序以及编译规则来完成整个项目的编译。

make这个命令只在当前目录下找名字叫makefile/Makefile的文件,逐步执行记录的编译规则

如何编写makefile

main.c  ---->main   

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

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

main is uo to data 说的是,目标对象已经是最新的了,不需要重新生

make这个程序会判断一下依赖文件的最后修改时间,和目标对象文件的最后修改时间,如果目标文件的时间戳大于依赖文件的时间戳,那么就证明依赖文件在上次编译

make可以检测目标对象和依赖对象的时间属性,判断程序是否需要重新编译

make永远只找一个目标对象生成,生成了第一个对象之后就退出

make可以指定要生成的对象 例如:make clean

伪对象:不管是不是最新的 ,都需要重新生成(执行下边的命令)使用.PHONY来申明一个对象是伪对象

变量:预定义变量----makefile已经提前定义好的变量

$@  编写规则中药生成的目标对象

$^  编写规则中所有的依赖对象

$<  编写规则中所有依赖对象的第一个

src=main.c

a=src a =src这个字符串  应该为a=$(src ) 变量的使用需要加上$符号,否则认为是字符串赋值

src=$(wildcard ./*.c) 获取当前目录下文件名字以.c结尾的文件名赋值

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

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

软件的安装/移除/查看都是通过yum工具完成的

查看

yum list | grep 想要安装的包名字

安装

yum install 想要安装的包名字

移除

yum remove 安装包名字

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值