Linux 基础的开发工具以及使用方法

Linux软件包管理 yum

我们先来看看什么是软件包?
软件包管理就相当于我们手机上的应用商店,软件包就相当于手机上的APP。yum是linux下非常常用的一种包管理器。

关于rz、sz
这个工具适用于windows和远端的linux通过Xshell传输文件,既可以从linux传送到Windows中,反之也可以。用yum进行下载。

注意:所有关于yum的所有操作必须保证虚拟机网络畅通。
可以通过ping + 任意网址 来看网络是否畅通

yum相关命令
yum list 罗列出当前有哪些软件包。
yum list | grep [软件包名字] 由于软件包的数量非常多,所以我们可以搭配grep命令,查找出我们想要的软件包。
yum install 安装一个软件包
yum remove 移除/卸载一个软件包

Linux编译器 -vim的使用方法

vi/vim的区别
vi/vim简单来说都是多模式的编辑器,不同的是vim是vi的升级版。

vim概念
vim有很多种模式,这里我们只看其中的三种模式:
普通模式
进行光标的移动、字符、数字的删除,以及移动、复制字符。
vim [filename] 进入vim,以及进入普通模式。
普通模式下的操作:
1.切换至插入模式:
i: 在当前光标处进行插入
a:从目前光标所在位置的下一个位置进行插入内容
o:从目标所在的下一行进行插入内容。
O:从目标所在的上一行进行插入内容。
2.光标移动:
j:向下一行移动光标
k:向上一行移动光标
h:向左移动光标
l:向右移动光标
G:光标移到最后一行,进入文本末端
gg:光标移到第一行,进入到文本开始
w:光标跳到下一个字的开头,也就是向后移动一个字
e:光标向后跳跃到下一个字的末尾
b:光标向前跳跃到前一个字的第一个字符
^:移到光标所在行的行首
3.删除
x:每按一次,删除光标所在位置的字符
X:每按一次,删除光标所在位置的前一个字符,如果前面没有字符了,则不删除。
[num] x:删除从光标开始向后的num个字符,如果后面的字符数量小于num则将本行的字符删除完即可,不会影响下一行或者上一行的数据
[num] X:删除从光标开始向前的num个字符,如果前面的字符数量小于num则将本行光标前面的字符删除完即可,不会影响下一行或者上一行的数据
dd:删除光标所在当前行的数据
[num] dd:删除从当前光标行开始num行的数据,如果后面的行数小于num,则删完后面剩余的行数即可。
4.复制
yy:复制一行,到缓冲区
[num]yy:复制num行,到缓冲区
yw:复制一个字,到缓冲区
[num]yw:复制num个字,到缓冲区
5.粘贴
p:如果缓冲区中是字,那么粘贴到光标后面,如果是一行数据,则粘贴到光标所在行的下一个。
6.替换
r:替换当前光标位置的字符
R:替换从光标往后的所有字符,知道按ESC,替换结束。
7.撤销
u:如果错误进行了一个操作,u可以回到上一个操作
ctrl +r:撤销的恢复
8.更改
cw:更改一个字,并且从普通模式到出入模式中
c[num]w:更改num个字
9.跳转
gg=G:全文对齐
ctrl + g:列出所在行的行号

插入模式
1.退出插入模式
ESC:退出插入模式

底行模式
在进入底行模式之前,记住先ESC回到普通模式,再按 进入底行模式
1.列出行号
:set nu 文件的每一行前面会出现行号
2.跳到文件的某一行
:# #表示的是一个数字,代表跳到哪一行
3.查找字符
: /关键词 如果第一次查找的不是你想要的关键词,可以一直按n,会向后继续寻找。(普通模式下输入/关键词,也可以)
:?关键词 如果第一次查找的不是你想要的关键词,可以一直按n,会向后继续寻找。(普通模式下输入?关键词,也可以)
两者的不同是——/是从上向下找,而?是从下向上找
4.保存文件
:w
5.离开vim
:q
:wq 保存并离开
:!q 强行离开
6.同时操作两个文件
:vs 文件名

Linux中gcc/g++的使用

这里区分一下gcc与g++:
gcc是编译C语言程序的,g++是编译C++程序的。

我们知道一个可执行程序的生成要经过以下几个步骤:
预处理-编译-汇编-链接
预处理:展开头文件,宏替换,去注释
gcc -E hello.c -o hello.i
-E:让gcc在预处理结束后停止编译过程
.i:是已经处理过得C原始程序

编译:语法语义检测,生成汇编代码
gcc -S hello.i -o hello.s
-S :只进行编译不进行汇编

汇编:生成机器可识别代码,将汇编代码生成二进制文件
gcc -c hello.s -o hello.o
-c:可以看到.s文件已经转为.o的二进制目标代码了

链接:生成可执行程序或库文件
gcc hello.o -o hello
这里链接分为两种
在此之前我们先来看看什么是函数库
在C程序中,我们并没有定义“printf”的函数实现,在预处理中“stdio.h”也只有函数的声明,而没有定义函数的实现,系统把这些函数实现在名为libc.so.6的库文件中去了,gcc会链接到库中去,找到对应的函数。这也就是连接的作用。
1.静态链接
在编译链接的时候,将库中的文件全部加入到可执行文件中去,因此生成的文件比较大,但运行时也不在需要库文件。
2.动态链接
在编译链接的时候,并没有将库中的文件加入到可执行文件中去,而是在程序执行的过程中,动态加载该库从而去执行动态库中的代码。动态库一半后缀为.so,gcc在编译时,默认使用动态库,动态链接
补充
ldd 查看动态链接情况的命令
file 查看文件属性信息
md5sum 查看文件的MD5码

gcc选项
-E 只激活预处理,不生成文件
-S 编译到汇编语言不进行汇编和链接
-c 编译到目标代码
-o 文件输出到文件
-static 对生成的文件采用静态链接
-g 生成调试信息
-w 不生成任何警告
-Wall 生成所有警告信息

Linux调试器—gdb的使用

程序发布有两种:
debug、release
Linux gcc/g++出来的二进制文件,默认是release。
前提条件:编译时后面加上 -g选项,才能使用gdb调试。
1.进入调试
gdb 生成的可执行程序
2.退出调试
q
3.调试期间作用的命令
l/list: 展示源码信息
b: 打断点
i b: 查看断点信息
r/run: 运行程序
c/continue: 继续执行程序
n/next: 单条执行,相当于vs的F10
s/step: 逐句执行,相当于vs的F11
bt: 查看调用堆栈
p/print: 打印表达式的值
set var: 修改变量值
delete breakpoints: 删除所有断点
delete breakpoints n: 删除序号为n的断点
disable breakpoints: 禁用断点
enable breakpoints: 启用断点
display 变量名: 跟踪查看一个变量,每次停下来都显示它的值
undisplay:取消对先前设置的那些变量的跟踪
bt(breaktrace):查看各级函数调用以及传参数
info(i):查看当前在栈帧局部变量的值
quit(q):退出gdb

make/makefile的使用以及编写方法

Makefile说是一个用来完成自动化编译的一个文件,其定义了一系列规则来指定,哪些文件需要先编译、哪些需要后编译、以及其他复杂的功能操作。
make只是一个命令工具,用来解释Makefile文件的,它和Makefile文件结合起来时使用,就完成了自动化编译。提高了软件开发的效率。

如何编写Makefile文件:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值