0


Linux编译器--git、yum、gdb的使用

git、yum、gdb的使用

一、git

1.1 git的发展史

雷纳斯-托瓦兹在开源了linux后全世界的很多人都要给linux提供代码,他需要合并代码。但是一个人的精力有限。无法完成,他就自己写了一个版本控制工具git。来控制自己的代码,并且也开源了。

linux和git就不断迭代,也不断进步。后来有人对git进行了商业化包装,形成了github和gitee。

1.2 安装git

yum install git
//普通用户加sudo

git就是一个版本管理工具,提供了不同版本的获取和可视化接口。
在实际的开发中挺重要的。
git是一个版本控制器,gitee是为了让git不要客户端,直接在浏览器上可以访问/操作。
gitee/github是基于git建立的网站。多人协同的时候很好用。

1.3 使用gitee创建项目

首先需要注册自己的用户,这个就不用多说 了。

.gitignore : 忽略控制文件。里面是很多文件的后缀。
在这里面有的后缀名,都不会被上传到gitee上去。

1.4 下载项目到本地

首先在gitee上创建一个仓库,再将这个仓库的链接克隆下来
git clone [url]
[url] 就是远端仓库的地址

1.5 git的三板斧

1.5.1 第一招:git add

git add [文件名]
将需要用git管理的文件告知git

1.5.2 第二招:git commit

git commit -m "提交日志"
注意:提交日志不能胡写

1.5.3 第三招:git push

git push

第一次提交或者修改过密码就会让你输入邮箱
以后每次输入需要输入用户名和密码
但是也可以设置免密

1.5.4 同步删除文件怎么办

先用
git rm [文件名]
然后再
git commit -m "提交日志"
最后再
git push

一般要对git里面的文件做操作一般前面都要加git[指令],然后git commit 最后git push 这样做远端也就被删除了。

1.5.5 远端的代码改了(没删除)怎么办

这个时候远端和本地仓库不一致了,我们在提交的时候,直接push就会发生冲突

要先把远端拉到本地同步以下
git pull
然后再次重新
git push

就是要把远端先拉到本地pull再commit,然后重新提交push

.gitignore   //不想提交某些后缀的文件同步到远端的git仓库,就可以添加到.gitignore

1.5.6 查看提交日志

git log 提交记录
git status  查看在你上次提交之后是否有对文件进行再次修改

1.5.7 远端删除了文件本地没有删除怎么办

这个时候我们再次push文件的时候就会发生冲突,提交不上去。
首先需要pull,再提交我们的文件 push,即可解决

二、yum

2.1 Linux下安装软件的方式

在Linux下安装软件的方法大概有以下三种:

1.下载到程序的源代码,自行进行编译,得到可执行程序。
2.获取rpm安装包,通过rpm命令进行安装。(未解决软件的依赖关系)
3.通过yum进行安装软件(常用)

2.2 认识yum

yum是一个在Fedora、RedHat以及CentOS中的前端软件包管理器,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
注意:一个服务器同一时刻只允许一个yum进行安装,不能在同一时刻同时安装多个软件。
因为yum是从服务器上下载RPM包,所以在下载时必须联网,可以通过ping指令判断当前云服务器是否联网。

2.3 查看软件包

yum list

使用yum list指令,可以罗列可供下载地全部软件。
说明

1.软件包名称:主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构。
2."x86_64"后缀表示64位系统的安装包,"i686"后缀表示32位系统安装包,选择包时要和系统匹配。
3."el7"表示操作系统发行版的版本,“el7"表示的是"centos/redhat7”,“el6"表示"centos6/redhat6”
4.最后一列表示的是“软件源”的名称,类似于“小米应用商店”,“华为应用商店”这样的概念。
这里以查找sl为例

yum list | grep sl

yum list | grep lrzsz   //该软件可以从window拖拽文件到linux上

由于包的数量非常多,所以我们可以使用grep指令筛选出我们所关注的包。

2.4 安装软件

sudo yum install sl

yum会自动找到都有哪些软件包需要下载,这时候敲“y”确认安装,当出现“complete”字样时,说明安装完成。
注意

1.安装软件时由于需要向系统目录写入内容,一般需要sudo或者切换到root账户下才能完成。
2.yum安装软件只能一个装完了再装另一个,正在使用yum安装一个软件的过程中,如果再尝试用yum安装另外一个软件,yum会报错。

2.5 如何实现本地机器和云服务器之间的文件互传

既然已经安装了lrzsz,这里就顺便说以下lrzsz如何使用。
指令: rz -E
通过该指令可选择需要从本地机器上传到云服务器的文件。
指令:sz 文件名
该指令可将云服务器上的文件下载到本地机器的指定文件夹。

2.6 卸载软件

sudo yum remove sl

yum会自动卸载该软件,这时候敲”y“确认卸载,当出现”complete“字样时,说明卸载完成。

三、gdb

3.1 gdb使用须知

程序发布方式

1.debug版本:程序本身会被加入更多的调试信息,以便于进行调试。
2.release版本:不会添加任何调试信息,是不可调试的。
在Linux当中gcc/g++默认生成的可执行程序是release版本的,是不可被调试的。如果想生成debug版本,就需要在使用gcc/g++生成可执行程序时加上-g选项。
对同一份源代码分别生成其release版本和debug版本的可执行程序,并通过ll指令可以看到,debug版本发布的可执行程序的大小比release版本发布的可执行程序的大小要大一点,其原因就是以debug版本发布的可执行程序当中包含了更多的调试信息。

gdb会记录最近一条命令,如果命令无变化,可以直接回车

3.2 gdb命令汇总

进入gdb

gcc mytest.c -o mytest-debug -g  //生成调试程序文件,该程序是debug方式发布的
readelf -S mytest-debug          //读取可执行程序的数据段格式
readelf -S mytest | grep -i debug     //打印有关不区分大小写“debug”的关键字信息                

gdb 文件名

调试

run/r :运行代码(启动调试)  //开始调试,如果没有设置断点,就直接运行结束
next/n:逐过程调试(=vs中F10)
step/s:逐语句调试(=vs中F11)
until 行号:跳转至指定行 (不建议函数间跳转)
finish:执行完当前正在调用的函数后停下来(不能是主函数)
continue/c:运行到下一个断点处
set var 变量=x : 修改变量的值为x

显示

list/l n: 显示从第n行开始的源代码,每次显示10行,若n未给出则默认从上次的位置往下显示。
list/l 函数名: 显示该函数的源代码
print/p 变量 : 打印变量的值
print/p &变量 : 打印变量的地址
print/p 表达式 : 打印表达式的值,通过表达式可以修改变量的值
display 变量 : 将变量加入常显示(每次停下来都显示它的值)
display &变量 : 将变量的地址加入常显示
undisplay 编号 : 取消指定编号变量的常显示
bt : 查看各级函数调用及参数(查看当前的调用堆栈)
info/i locals : 查看当前栈帧当中局部变量的值

断点

break/b n : 在第n行设置断点
break/b 函数名 : 在某函数体内第一行设置断点。
info breakpoint/b : 查看已打断点信息(包括断点编号)
delete/d 编号 : 删除指定编号的断点
disable 编号 : 禁用指定编号的断点
enable 编号 : 启用指定编号的断点

退出gdb

quit/q : 退出gdb
标签: linux git elasticsearch

本文转载自: https://blog.csdn.net/m0_70091181/article/details/135700441
版权归原作者 sushang~ 所有, 如有侵权,请联系我们删除。

“Linux编译器--git、yum、gdb的使用”的评论:

还没有评论