Linux 开发工具 yum、git、gdb

news2025/1/18 6:19:25

目录

一、yum

1、软件包

2、rzsz

3、注意事项

4、查看软件包

5、安装软件

6、卸载软件

二、git操作

1、克隆+三板斧

2、第一次使用会出现以下情况:

未配置用户名和邮箱:

push后弹出提示

三、gdb使用

1、背景

2、使用方法

例一:

例二: 


一、yum

1、软件包

软件包在Linux系统中是一种预编译好的软件分发格式,它简化了软件的安装和管理过程。在Linux中,用户可以通过编译源代码来安装软件,但这个过程可能既复杂又耗时。为了解决这个问题,开发者会将常用软件预先编译并打包,然后存放在服务器上,用户可以通过包管理器轻松地下载和安装这些软件包。

软件包和包管理器的关系,可以类比于手机应用和应用商店。例如,yum(Yellow dog Updater, Modified)是一个广泛使用的包管理器,主要服务于Fedora、RedHat、CentOS等Linux发行版。

2、rzsz

rzsz是一个实用工具,它允许Windows机器与远程Linux机器通过XShell等终端软件传输文件。安装后,用户可以通过拖放文件的方式来上传文件。

3、注意事项

  • 使用yum进行软件管理时,确保主机(或虚拟机)的网络连接是畅通的。可以通过ping www.baidu.com来测试网络连接。

4、查看软件包

  • 使用yum list命令可以列出所有可用的软件包。由于软件包数量可能非常庞大,可以使用grep命令来筛选特定的包,例如:yum list | grep lrzsz
  • 软件包的命名规则包括主版本号、次版本号、源程序发行号和软件包的发行号,以及主机平台和CPU架构。例如,lrzsz.x86_64 0.12.20-36.el7中的x86_64表示这是一个64位系统的安装包,el7表示这个包是为CentOS 7或RedHat 7准备的。
注意:
  • 软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.
  • "x86_64" 后缀表示64位系统的安装包, "i686" 后缀表示32位系统安装包. 选择包时要和系统匹配.
  • "el7" 表示操作系统发行版的版本. "el7" 表示的是 centos7/redhat7. "el6" 表示 centos6/redhat6.
  • 最后一列, base 表示的是 "软件源" 的名称, 类似于 "小米应用商店", "华为应用商店" 这样的概念.

5、安装软件

  • 通过简单的命令sudo yum install lrzszyum会自动解析依赖并下载所需的软件包。用户需要确认安装并等待直到出现complete字样,表示安装完成。
  • 安装软件时由于需要向系统目录中写入内容,所以安装软件通常需要管理员权限,需要使用sudo或切换到root账户。
  • yum一次只能安装一个软件包。如果尝试在安装一个软件包的同时安装另一个,yum会报错。

6、卸载软件

  • 卸载软件也是通过一条简单的命令:sudo yum remove lrzsz

通过这种方式,Linux用户可以方便地管理系统上的软件,无需手动编译和解决依赖问题。

二、git操作

1、克隆+三板斧

  1. git clone + 你的git仓库链接 #克隆远程仓库到本地
  2. git add + 你的文件 # 添加我们的代码到本地仓库
  3. git commit -m + “这里必须写提交日志”  # 提交代码带仓库中
  4. git push  #提交我们的代码到远端仓库
其他情况
  • 可能第一次使用,需要你配置用户名和邮箱。
  • 有时候无法提交,会出现提交冲突:无脑git pull。
  • .gitignore # 不想提交某些后缀的文件同步到远端的git仓库,就可以添加到.gitignore。
  • 最好使用 git rm 进行删除操作,而不是直接使用 rm。使用 git rm 会告诉 Git 你想要删除这些文件或目录,并且会将这个操作记录在 Git 的历史中,这样可以更好地跟踪项目的变化。而直接使用 rm 删除文件或目录,Git 无法感知到这个操作,需要额外的步骤来告诉 Git 这些变化。

2、第一次使用会出现以下情况:

未配置用户名和邮箱:

[hbr@VM-16-9-centos linux]$ git commit -m "测试一下git"

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: empty ident name (for <hbr@VM-16-9-centos.(none)>) not allowed

这个错误是由于 Git 无法确定提交者的身份信息导致的。你可以按照以下步骤解决:

1. 设置全局用户邮箱和用户名:

  • 如果你希望在所有的仓库中都使用相同的用户信息,那么可以使用 --global 参数,如之前所述。这将会修改全局配置文件,通常位于你的用户目录下的 .gitconfig 文件中
git config --global user.email "you@example.com"
git config --global user.name "Your Name"

2. 如果你只想在当前仓库设置身份信息,可以省略 `--global` 参数:

  • 如果仓库是你本人创建的,并且你想要在这个特定的仓库中设置提交者的信息(而不是全局设置),你可以通过以下命令来设置:
git config user.email "you@example.com"
git config user.name "Your Name"

3. 然后重新提交你的更改:

git commit -m "测试一下git"

这样就应该可以成功提交了。

要检查你是否成功设置了 Git 的用户名和邮箱地址,你可以在终端或命令提示符中使用以下命令:

- 查看用户名:

git config user.name

- 查看邮箱地址:

git config user.email

这些命令会显示当前仓库配置中的用户名和邮箱地址。如果你使用了 `--global` 标志来设置全局用户名和邮箱,你也可以添加 `--global` 标志来查看这些全局配置:

- 查看全局用户名:

git config --global user.name

- 查看全局邮箱地址:

git config --global user.email

这将会显示全局配置文件中设置的用户名和邮箱地址,这个配置文件通常位于你的用户目录下。如果命令返回了你之前设置的用户名和邮箱地址,那么说明你已经成功设置了这些信息。

push后弹出提示

[hbr@VM-16-9-centos linux]$ git push
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

Username for 'https://gitee.com': 

这个消息是 Git 在提醒你关于 `push.default` 配置选项的默认值将在 Git 2.0 中发生变化。`push.default` 定义了当你执行 `git push` 但没有指定要推送到哪个远程分支时,Git 应该如何表现。这里介绍一下不同的 `push.default` 配置值:

  • - `matching`:推送所有与远程端匹配的本地分支。这是旧版 Git 的默认行为。
  • - `simple`:只推送当前分支到与之建立了 "upstream" 关系的远程分支,并且要求分支名称相匹配。这将成为 Git 2.0 的默认设置,因为它更安全,减少了意外推送到错误分支的风险。
  • - `current`:推送当前分支到与其同名的远程分支,不需要 "upstream" 关系。
  • - `upstream`:推送当前分支到 "upstream" 分支。
  • - `nothing`:不推送任何东西,只在你显式指定分支时才推送。

Git 在这个消息中提供了两个选项给你:

1. 如果你想保持当前的行为(`matching`),在 Git 2.0 后仍然使用这个策略,你可以设置:

git config --global push.default matching

2. 如果你现在就想切换到新的行为(`simple`),可以使用:

git config --global push.default simple

设置完成后,这个警告消息就不会再显示了。

最后,Git 正在提示你输入 `https://gitee.com` 的用户名,这是因为你正在尝试推送代码到 Gitee,一个代码托管平台,而 Git 需要验证你的身份。你应该输入你在 Gitee 上的用户名,接着可能还需要输入密码或者 token(如果你启用了双因素认证)。 

我只有一个master分支,应该怎么选择

如果你只有一个 `master` 分支,并且通常的工作流程是推送 `master` 分支到远程仓库,那么你可以选择 `simple` 作为 `push.default` 的配置选项。

这个选项将确保只有当前分支(这里是 `master` 分支)会被推送到与之关联的远程分支(通常也是 `master` 分支)。这样可以降低意外推送到错误分支的风险,同时也符合大多数单分支工作流程的需求。

你可以使用以下命令来设置 `push.default` 为 `simple`:

git config --global push.default simple

这样,当你执行 `git push` 时,Git 将只推送当前分支到远程仓库的相同分支。

三、gdb使用

1、背景

Linux中的GDB(GNU Debugger)是一个强大的调试工具,用于调试C和C++语言编写的程序。了解如何使用GDB可以帮助您更有效地诊断和修复代码中的问题。 

  • 程序可以以两种模式发布:debug模式和release模式。
  • Linux下使用gcc/g++编译器生成的二进制程序默认是release模式。
  • 为了使用GDB进行调试,需要在编译时加上 -g 选项,以包含调试信息。
mytest:mytest.c
	gcc -std=c99 -o mytest mytest.c -g
.PHONY:clean
clean:
	rm -f mytest

2、使用方法

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

  • list/l 行号:显示binFile源代码,接着上次的位置往下列,每次列10行。
  • list/l 函数名:列出某个函数的源代码。
  • r或run:运行程序。
  • n 或 next:单条执行。
  • s或step:进入函数调用
  • break(b) 行号:在某一行设置断点
  • break 函数名:在某个函数开头设置断点
  • info break :查看断点信息。
  • finish:执行到当前函数返回,然后挺下来等待命令
  • print(p):打印表达式的值,通过表达式可以修改变量的值或者调用函数p 变量:打印变量值。
  • set var:修改变量的值
  • continue(或c):从当前位置开始连续而非单步执行程序
  • run(或r):从开始连续而非单步执行程序
  • delete breakpoints:删除所有断点
  • delete breakpoints n:删除序号为n的断点
  • disable breakpoints:禁用断点
  • enable breakpoints:启用断点
  • info(或i) breakpoints:参看当前设置了哪些断点
  • display 变量名:跟踪查看一个变量,每次停下来都显示它的值
  • undisplay:取消对先前设置的那些变量的跟踪
  • until X行号:跳至X行
  • breaktrace(或bt):查看各级函数调用及参数
  • info(i) locals:查看当前栈帧局部变量的值
  • quit:退出gdb

例一:

例二: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1496526.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FX110网:不明缘由!汇友在Vantage平台出金数月未果!

早在2021年1月&#xff0c;Vantage FX已宣布正是退出中国大陆市场。这三年多时间里&#xff0c;Vantage FX从未放出恢复中国大陆市场业务的消息&#xff0c;事实上&#xff0c;在Vantage相关联的几个实体网站中&#xff0c;也多会声明“不向中国的居民提供服务”&#xff0c;但…

【开源物联网平台】FastBee使用EMQX5.0接入步骤

​&#x1f308; 个人主页&#xff1a;帐篷Li &#x1f525; 系列专栏&#xff1a;FastBee物联网开源项目 &#x1f4aa;&#x1f3fb; 专注于简单&#xff0c;易用&#xff0c;可拓展&#xff0c;低成本商业化的AIOT物联网解决方案 目录 一、将java内置mqtt broker切换成EMQX5…

【Web - 框架 - Vue】随笔 - Vue的简单使用(02) - 快速上手

【Web - 框架 - Vue】随笔 - Vue的简单使用(02) - 快速上手 Vue模板代码 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Vue模板</title> </head> <body> <div id"…

python转换json

import json import os from enum import Enumclass LaneDirectionType(int, Enum):LaneDirectionType_Unknown -1 # 类型未知OneWay 1 # 单向TwoWay 2 # 双向# 颜色类型 class ColorCombo(int, Enum):NOUSE 0 # 默认值UNKNOWN 1000 # 未定义WHITE 1 # 白色(默认值…

【YOLO v5 v7 v8 v9小目标改进】辅助超推理SAHI:分而治之,解决高分辨率图像中小物体检测的问题

辅助超推理SAHI&#xff1a;分而治之&#xff0c;解决高分辨率图像中小物体检测的问题 设计思路结构小目标涨点YOLO v5 魔改YOLO v7 魔改YOLO v8 魔改YOLO v9 魔改 论文&#xff1a;https://arxiv.org/pdf/2202.06934.pdf 代码&#xff1a;https://github.com/obss/sahi 设计思…

造极宋韵:大麗和和全新城市系列

中国美学,造极于宋。杭州,一座生活在宋画里的城市,一座繁华与优雅交织的华贵天城。 钱塘自古繁华,温润华贵的丝绸与漆器,诉说这座城市底蕴深藏的华贵;湖上雨霁,山水涳濛,油纸伞与石拱桥,描绘杭州空灵雅逸的自然山水;比德于玉,谦和含章,玉琮与礼玉文化,象征玉成和合的城市气质。…

管理类联考--复试--面试问题--底层逻辑

文章目录 了解面试官提问问题的背后逻辑&#xff0c;在面试时遇到&#xff0c;即使不懂&#xff0c;也能往边边靠近哈一句顶一万句自我介绍 了解面试官提问问题的背后逻辑&#xff0c;在面试时遇到&#xff0c;即使不懂&#xff0c;也能往边边靠近哈 “你最有挑战性的事是啥”…

开源工业软件:SCADA系统开源

PyScada是一个开源的scada系统 源代码地址 http://www.gitpp.com/huangtomy/pyscada-cn SCADA系统是Supervisory Control And Data Acquisition的缩写&#xff0c;即数据采集与监视控制系统。它是以计算机为基础的DCS与电力自动化监控系统&#xff0c;应用领域非常广&#x…

nginx代理参数proxy_pass

proxy_pass参数用于配置反向代理&#xff0c;指定客户端请求被转发到后端服务器&#xff0c;后端地址可以是域名、ip端口URI 代理后端报错提示本地找不到CSS文件、JavaScript文件或图片 例如&#xff1a; nginx &#xff1a;10.1.74.109 后端服务&#xff1a;http://10.1.74.…

Github 2024-03-07 开源项目日报Top10

根据Github Trendings的统计,今日(2024-03-07统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目4C++项目3C#项目1TypeScript项目1非开发语言项目1HTML项目1CSS项目1屏幕截图转代码应用 创建周期:114 天开发语言:TypeScript, Pyt…

vscode中eslint插件不生效问题

case: 最近使用webpack打包js资源中使用到了VS Code中的eslint插件辅助eslint plugin对代码进行校验&#xff0c;在.eslintrc.js文件中以及webpack.config.js配置好后&#xff0c; 在控制台运行npx webpack可以读取到eslint plugin的检测结果 一、eslint插件读取项目中.eslint…

下载无水印抖音视频

在抖音看到某些视频想下载&#xff0c;却出现无法保存在本地【显示"作品暂时无法保存,链接已复制"】。或者下载的视频有水印。 而某些微信小程序下载可能需要付费或者有水印。其实我们可以直接使用电脑浏览器直接下载。 举个例子: 这是来自王道官方账号的一条视频链…

小程序环形进度条爬坑

在做微信小程序的时候&#xff0c;发现用canvas做的环形进度条&#xff0c;在带滚动条的view里面显示有闪动、显示不全的问题&#xff0c;后面改成echart-weixin的pie图实现了&#xff0c;option配置如下 // 表示进度的百分比 var progressValue 70;option {series: [{type: …

回归预测 | Matlab实现BiTCN-BiGRU-Attention双向时间卷积双向门控循环单元融合注意力机制多变量回归预测

回归预测 | Matlab实现BiTCN-BiGRU-Attention双向时间卷积双向门控循环单元融合注意力机制多变量回归预测 目录 回归预测 | Matlab实现BiTCN-BiGRU-Attention双向时间卷积双向门控循环单元融合注意力机制多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.M…

Sqoop “hcatalog does not exist!” 提示信息消除方法

sqoop运行的时候老是有这个报错提示&#xff0c;看着可烦&#xff0c;解决消除一下 解决方法&#xff1a; 1、在$SQOOP_HOME/bin目录下面修改configure-sqoop文件 1&#xff09;进文件夹 cd /training/sqoop-1.4.7/bin2&#xff09;编辑文件 vi /configure-sqoop3&#xff…

区块链媒体套餐:精益求精链游媒体宣发推广7个关键细节分享-华媒舍

在如今竞争激烈的游戏行业&#xff0c;一款优秀的游戏缺乏有效的宣发推广&#xff0c;很难脱颖而出。而随着区块链技术的兴起&#xff0c;链游媒体的宣发推广成为游戏开发者和运营商的重要选择之一。本文将为大家介绍精益求精的链游媒体宣发推广的七个关键细节。 1. 定位目标受…

openGauss基于存储复制的资源池化安装部署流程

第一步&#xff1a;在主存储上创建资源池化需要的lun&#xff0c;以及远程同步复制xlog卷对应的lun&#xff0c;并且所有lun全部映射到业务计算节点上 1. 登录主集群DeviceManager&#xff0c;选择服务->LUN组->创建 来创建主集群LUN组&#xff1b; 2.登录主集群Device…

通过docker安装Mongodb

通过Docker安装MongoDB非常简单和方便&#xff0c;以下是基本步骤&#xff1a; 拉取MongoDB镜像&#xff1a; 首先确保你已经在本地机器上安装了Docker。然后&#xff0c;在命令行中执行以下命令来从Docker Hub下载官方的MongoDB镜像&#xff08;这里以最新版本为例&#xff09…

【洛谷 P8748】[蓝桥杯 2021 省 B] 时间显示 题解(数学+模运算+输入输出)

[蓝桥杯 2021 省 B] 时间显示 题目描述 小蓝要和朋友合作开发一个时间显示的网站。在服务器上&#xff0c;朋友已经获取了当前的时间&#xff0c;用一个整数表示&#xff0c;值为从 1970 年 1 月 1 日 00:00:00 到当前时刻经过的毫秒数。 现在&#xff0c;小蓝要在客户端显示…

Transformer中的位置编码

在Transformer模型中&#xff0c;位置编码是一种特殊的编码方式&#xff0c;用于向模型提供关于输入序列中单词位置的信息。由于Transformer模型没有循环结构&#xff0c;无法像循环神经网络那样从输入序列中推断单词的位置顺序&#xff0c;因此需要引入位置编码来帮助模型理解…