【Linux】Linux基础开发工具(git、dbg)

本文是小编巩固自身而作,如有错误,欢迎指出!

目录

一、版本控制器------git

1.版本控制器是什么?

2.github与gitte

3.在github创建项目

3.1创建项目

3.2将本地代码上传至github

3.3将github代码下载到本地

二、调试器------gdb/cgdb使用

1.预备

2.常见使用方法


一、版本控制器------git

说到git,想必大家并不陌生,像我们熟知的gitte和github都是我们觉得很相关的东西,那么git到底是什么?git是一种版本控制器

1.版本控制器是什么?

我们在编写各种⽂档时,为了防⽌⽂档丢失,更改 失误,失误后能恢复到原来的版本,不得不复制出⼀个副本,⽐如:

"报告-v1" "报告-v2" "报告-v3" "报告-确定版" "报告-最终版"

每个版本有各⾃的内容,但最终会只有⼀份报告需要被我们使⽤。 但在此之前的⼯作都需要这些不同版本的报告,于是每次都是复制粘贴副本,产出的⽂件就越来越 多,⽂件多不是问题,问题是:随着版本数量的不断增多,你还记得这些版本各⾃都是修改了什么 吗?

⽂档如此,我们写的项⽬代码,也是存在这个问题的!!

所谓的版本控制器,就是能让你 了解到⼀个⽂件的历史,以及它的发展过程的系统。通俗的讲就是⼀个可以记录⼯程的每⼀次改动和 版本迭代的⼀个管理系统,同时也⽅便多⼈协同作业。

2.github与gitte

Github和gitee是git的两个分支。相较于 Github,gitee作为国内的git虽然在数量上不如 Github,但是门槛更低,所以推荐小白使用gitee。

git是一个去中心化的版本控制器+网络通信

3.在github创建项目

3.1创建项目

登陆成功后,进⼊个⼈主⻚,点击左下⽅的New repository按钮新建项⽬

然后跳转到的新⻚⾯中输⼊项⽬名称(注意,名称不能重复,系统会⾃动校验.校验过程可能会花费⼏

秒钟).校验完毕后,点击下⽅的Create repository按钮确认创建.

3.2将本地代码上传至github

bash 复制代码
# 1. 创建 README.md 文件并写入标题
echo "# LINUX" >> README.md

# 2. 初始化 Git 仓库
git init

# 3. 将 README.md 添加到暂存区
git add README.md

# 4. 提交到本地仓库(提交信息用引号包裹)
git commit -m "first commit"

# 5. 将默认分支重命名为 main
git branch -M main

# 6. 关联远程 GitHub 仓库
git remote add origin https://github.com/你的仓库地址/LINUX.git

# 7. 推送代码到远程 main 分支,并绑定上游
git push -u origin main

3.3将github代码下载到本地

复制 GitHub 仓库的 HTTPS 地址(比如 https://github.com/username/repository.git),执行克隆命令:

bash 复制代码
git clone https://github.com/username/repository.git

如果用 SSH 地址(需要先配置 SSH 密钥),命令为:

bash 复制代码
git clone git@github.com:username/repository.git

更新已克隆的代码

bash 复制代码
git pull

二、调试器------gdb/cgdb使用

调试,大家想必在先前的c语言学习中已经学习过了,现在我们就看一看在linux环境下的调试工作是怎么完成的

1.预备

程序的发布⽅式有两种, debug 模式和 release 模式, 在Linux系统下gcc/g++ 出来的⼆进制程序,默认是 release 模式。

要使⽤gdb调试,必须在源代码⽣成⼆进制程序的时候,加上 -g 选项,如果没有添加,程序⽆法被 编译.

bash 复制代码
$ gcc mycmd.c -o mycmd # 默认模式,不⽀持调试
$ file mycmd
mycmd: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically 
linked, interpreter /lib64/ld-linux-x86-64.so.2, 
BuildID[sha1]=82f5cbaada10a9987d9f325384861a88d278b160, for GNU/Linux 
3.2.0, not stripped
$ gcc mycmd.c -o mycmd -g # debug模式
$ file mycmd
mycmd: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically 
linked, interpreter /lib64/ld-linux-x86-64.so.2, 
BuildID[sha1]=3d5a2317809ef86c7827e9199cfefa622e3c187f, for GNU/Linux 
3.2.0, with debug_info, not stripped

2.常见使用方法

• 开始: gdb binFile(目标文件)

• 退出: ctrl + d 或quit 调试命令

bash 复制代码
# 1. 编译带调试信息的程序
gcc -g -o myapp main.c
 
# 2. 启动GDB
gdb ./myapp
 
# 3. 在main函数设置断点
(gdb) b main
 
# 4. 运行程序
(gdb) run
 
# 5. 单步执行
(gdb) n
 
# 6. 查看变量
(gdb) p count
 
# 7. 继续执行
(gdb) c
 
# 8. 退出
(gdb) q

本次分享就到这里结束,后续会继续更新,感谢阅读!

相关推荐
大树882 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
LDR0062 小时前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术2 小时前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园2 小时前
C++20 Modules 模块详解
java·开发语言·spring
霸道流氓气质2 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush42 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 小时前
Linux 11 动态监控指令top
linux
小宇宙Zz3 小时前
Maven依赖冲突
java·服务器·maven
swordbob3 小时前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio