Linux环境下的工具(yum,gdb,vim)

一,yum

yum其实是linux环境下的一种应用商店,主要用centos等版本。它也有三板斧:yum list,yum remove,yum install。当然不是说他只有这三个命令,还有yum search等等。在这直说以上三个。

yum list其实是查看你所能安装的软件包,这个是根据你的yum源来决定的,这个yum源怎么说,我们可以这么理解,我们手机上的应用在下载的时候其实是在服务端上面找到对应的链接,然后再下载,其实yum源中存储的就是这些应用的链接,所以你的yum源越多,能下载的应用就越多。这个可以根据后面的自己的需求来自己加。下面是自己的yum源:

这就是我的yum源中的东西,你打开任何一个文件,其实是他里面就是一些链接,你在浏览器上复制搜索其实也可以下载,这个也可以自己加一些。

yum remove,这很好理解吧,remove就是移除的意思,所以他就是卸载,我的linux上有一个cowsay的一个比较好玩的命令,看下面:

 

它运行起来就是这样的,现在我用yum remove卸载这个命令,然后再继续使用这个命令,具体指令看下图:

 

 我卸载了这个命令,中间有一部分就没必要看了,都是英语,也看不懂,后面显示出来的是complete这个我们知道,是完成,现在卸载了这个指令,我再试一下用这个指令,如下:

我用了这个文件之后,他说的是没有对应的文件或者目录,所以足以证明我们已经卸载了这个。

yum  install,还是刚刚的那个列子,我们已经卸载了,这个命令当然是安装了,所以我们如下:

 

我们可以看到已经完成安装,-y的意思就是再安装过程中,不管大小直接安装,如果不写-y,那么安装的时候就会显示出来你要安装的这个应用占用的大小,然后是否安装这个到时候直接点y就好。此时你在用cowsay就会执行这个命令了。

二.vim

vim是一种编辑器,我们在写代码的时候,像我们用的vs2019这些,是集成开发环境,而vim只是一种编辑器,不过他是多模式的。它有插入模式,低行模式,命令行模式等,他们之间的转换如下:

我们看到的是,插入模式不可以直接换到低行模式,所以这个一定要注意。我们再用vim写代码的时候,只需进入插入模式即可,当然,一个舒适的编辑器当然是可以自己配置的,可以在网上搜一下vim配置,然后自己建立一个.vimrc的文件,然后往里面加就可以了。快去把自己的vim配置起来吧。

三.gdb

很简单,他就是调试器,我们可以用来调试代码。在我们编译链接自己的代码的时候,在这里就不得不说一个小知识点了,大家知道我们经常用的gcc或是g++在编译链接的时候,默认生成的可执行文件是静态链接还是动态链接啊?其实是动态链接,那么他生成的是release还是debug啊,记住,他生成的是release。所以我们在编译链接的时候,必须要在他后面加一个-g,才可以用gdb调试。如下一段代码:

这段代码很简单就可以理解,我们调试一下看看:

 

大家可以看到的是我用了一个 l    0的命令,这个是什么意思呢?其实他的意思就是从0行开始显示我的代码,但是我只是写了一次,这个是因为他会默认的记住我的这个命令,只需按回车他就会继续执行他记忆中的命令。它显示全部的代码后,我们看下面,它显示了一个,这个文件只有13行的代码,说明此事已经全部显示完成,我们只需进行下一步操作即可。我们开始打断点,打断点的命令是b+代码行数,如下:

 

 说明此事已经在test.cpp这个文件的第9行打上了断点,因为他前面显示了breakpoint,这个就是断点的意思,他就是b的全称,然后我们让他运行起来命令如下:

我们可以看到的是已经跑起来了,删除断点是d+断点的序号,查看当前断点的个数是info+b,如下:

然后再gdb中,s相当于vs中的F11,n相当于VS的F10。如果想要退出gdb调试,则直接命令quit即可。总结一下gdb命令:

 

还有很多的指令,但是个人觉的调试的时候有这些命令就已经够了,所以再多的也记不住,以上有些命令没有给大家显示,就不尝试了,大家下来可以自己尝试一下。

其实,gdb调试器个人感觉是很高级的,但是写代码,调试代码不是炫技,如果大家觉的不好用的话可以把代码复制到vs上,在调试(因为我自己刚开始是这样干的,因为感觉太麻烦),我刚开始用感觉太麻烦,但是后强迫自己用gdb调试,感觉也还好,没有刚开始的那种感觉。

以上就是这篇文章的内容,所以,大家如果感觉有收获的话,给我一个赞吧!支持一下 !

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

13.常用类|Java学习笔记

文章目录 包装类包装类型和String类型的相互转换Integer类和Character类的常用方法Integer创建机制&面试题 String类创建String对象的两种方式和区别字符串的特性String类的常用方法 StringBuffer类String和StringBuffer相互转换StringBuffer常用方法 StringBuilder类Strin…

安卓手机使用Termux搭建Hexo个人博客网站【内网穿透公网访问】

文章目录 1. 安装 Hexo2. 安装cpolar内网穿透3. 公网远程访问4. 固定公网地址 转载自cpolar极点云的文章:安卓手机使用Termux搭建Hexo个人博客网站【内网穿透公网访问】 Hexo 是一个用 Nodejs 编写的快速、简洁且高效的博客框架。Hexo 使用 Markdown 解析文章&#…

R 语言学习笔记

1. 基础语法 赋值 a 10; b <- 10;# 表示流向&#xff0c;数据流向变量&#xff0c;也可以写成10 -> b创建不规则向量 不用纠结什么是向量&#xff0c;就当作一个容器&#xff0c;数据类型要相同 a c("我","爱","沛")创建一定规则的向…

意向共享锁和意向排他锁

InnoDB表级锁 在绝大部分情况下都应该使用行锁&#xff0c;因为事务和行锁往往是选择InnoDB的理由&#xff0c;但个别情况下也使用表级锁&#xff1a; 1&#xff09;事务需要更新大部分或全部数据&#xff0c;表又比较大&#xff0c;如果使用默认的行锁&#xff0c;不仅这个事…

前端web入门-CSS-day06

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 一、标准流 二、Flex 布局 组成 主轴对齐方式 侧轴对齐方式 修改主轴方向 弹性伸缩比 弹性盒子换行…

uniapp中使用mixins(混入)使用

mixins 选项接收一个混入对象的数组。这些混入对象可以像正常的实例对象一样包含实例选项&#xff0c;这些选项将会被合并到最终的选项中&#xff0c;使用的是和 Vue.extend() 一样的选项合并逻辑。也就是说&#xff0c;如果你的混入包含一个 created 钩子&#xff0c;而创建组…

设计用户模块的schema

schema 在计算机科学中&#xff0c;schema通常指的是 数据结构的定义和约束。 关系型数据库 在关系型数据库中&#xff0c;schema指的是数据库中所有表格的定义和表格之间的关系约束&#xff0c;包括每个表格的列名、数据类型、主键、外键等等。 如果要对一个关系型数据库进行…

Leetcode-6425. 找到最长的半重复子字符串

题目描述 给你一个下标从 0 开始的字符串 s &#xff0c;这个字符串只包含 0 到 9 的数字字符。 如果一个字符串 t 中至多有一对相邻字符是相等的&#xff0c;那么称这个字符串是 半重复的 。 请你返回 s 中最长 半重复 子字符串的长度。 一个 子字符串 是一个字符串中一段…

力扣日记2481

1. 题目 LeetCode 2481. 分割圆的最少切割次数 1.1 题意 可以使用直接或半径切分&#xff0c;管他叫一次切分&#xff0c;求切分圆为n等份的最少次数。 1.2 分析 可以想到&#xff0c;对圆做n等分&#xff0c;然后每个半径看出一次切分&#xff0c;这是最多次数&#xff0c;…

Python3 列表与元组 | 菜鸟教程(六)

目录 一、Python3 列表 &#xff08;一&#xff09;简介相关 1、序列是 Python 中最基本的数据结构。 2、序列中的每个值都有对应的位置值&#xff0c;称之为索引&#xff0c;第一个索引是 0&#xff0c;第二个索引是 1&#xff0c;依此类推。 3、Python 有 6 个序列的内置…

算法刷题-字符串-替换空格

题目&#xff1a;剑指Offer 05.替换空格 力扣题目链接 请实现一个函数&#xff0c;把字符串 s 中的每个空格替换成"%20"。 示例 1&#xff1a; 输入&#xff1a;s “We are happy.” 输出&#xff1a;“We%20are%20happy.” 思路 如果想把这道题目做到极致&…

webpack提升开发体验SourceMap

一、开发场景介绍 开发中我们不可避免的会写一些bug出来&#xff0c;这时候要调试&#xff0c;快速定位到bug到底出现在哪尤为关键。 例如我故意在sum函数中写一个错误代码如下&#xff1a; 这时我们用前面章节已经写好的开发模式的webpack.dev.js运行&#xff0c;控制台会出…

【总结笔记】Spring

1 Spring容器加载配置文件进行初始化。 Spring容器加载配置文件进行初始化主要有两种形式&#xff1a; 加载配置文件进行初始化&#xff1a; ClassPathXmlApplicationContext ctx new ClassPathXmlApplicationContext(“ApplicationContext.xml”); 加载配置类进行初始化&…

业务流程自动化:ThinkAutomation Professional Crack

ThinkAutomation 助力您的业务流程自动化。自动执行本地和基于云的业务流程&#xff0c;以降低成本并节省时间。 自动化传入的通信渠道&#xff0c;监控数据库&#xff0c;对传入的Webhook&#xff0c;Web表单和聊天机器人做出反应。处理文档、附件、本地文件和其他邮件源。 …

基于Spark的气象数据分析

研究背景与方案 1.1.研究背景 在大数据时代背景下&#xff0c;各行业数据的规模大幅度增加&#xff0c;数据类别日益复杂&#xff0c;给数据分析工作带来极大挑战。气象行业和人们的生活息息相关&#xff0c;随着信息时代的发展&#xff0c;大数据技术的出现为气象数据的发展…

模板匹配笔记

模板匹配是一种最基本、最原始的模式识别的方法。通过对比某一特定物体的图案位于图像的什么地方&#xff0c;进而识别出物体。它是图像处理中最基本、最常用的匹配方法。它的局限性主要是它只能进行平行移动&#xff0c;若原图像中的匹配目标发生旋转或大小变化&#xff0c;该…

前端vue入门(纯代码)09

【09.vue中组件的自定义事件】 自定义组件链接 在vue中用的click【点击】、keyup【按键】……等事件&#xff0c;这些属于内置事件&#xff0c;也就是js自带的事件。 问题一&#xff1a;什么是组件自定义事件呢&#xff1f; 【内置事件】:是给html元素用的&#xff0c;比如s…

014、数据库管理之配置管理

配置管理 TiDB配置系统配置集群配置配置的存储位置区分TiDB的系统参数和集群参数 系统参数系统参数的作用域系统参数的修改 集群参数集群参数的修改配置参数的查看 实验一&#xff1a; 在不同作用域下对数据库的系统参数进行修改session级别global级别 实验二&#xff1a; 修改…

【TCP/IP】多进程服务器的实现(进阶) - 信号处理及signal、sigaction函数

目录 信号 signal函数 sigaction函数 用信号来处理僵尸进程 在之前我们学习了如何处理“僵尸进程”&#xff0c;不过可能也会有疑问&#xff1a;调用wait和waitpid函数时我们关注的始终是在子进程上&#xff0c;那么在父进程上如何实现对子进程的管控呢&#xff1f;为此&am…

零基础速成simulink代码生成——简单滤波器实现2

simulink setting 找到model settings solver求解器配置 Code Generation 代码生成配置 生成代码报告 添加stateflow注释 可以将变量保存在定义的文件(选) 实践 简单一阶滤波器