linux中的开发工具
在刚开始使用linux的时候,我们需要在系统上写一些简单的代码,来熟悉环境以及各种指令
并且熟悉属于linux的一套开发的环境,而这对于c++来说需要三个软件就可以进行简单的编码
和使用,让我们来认识一下下列工具,以及工具的使用。
我所使用的系统是centos 7
文章目录
- 1.yum
- 2.vim
- 1). vim的模式
- a. 命令模式
- 命令模式的各种操作
- b. 底行模式
- c. 视图模式
- d. vim开发环境的配置
- 3.gdb
1.yum
yum是centos中的下载软件的一个软件,它相当于我们手机中的应用商店,当我们需要下载一个需要的工具时,我们只需要输入"yum install 软件名"即可他就会帮我们从对应操作系统版本提供的服务器上,下载到我们的系统中。需要在root账户中下载,或者使用sudo提高账号权限
yum install 软件名(命令也可以比如tree)-y选项,下载过程中默认一路yes
yum remove 软件名
yum update 更新软件
yum update 更新特定的软件
yum list 软件名 展示出目标软件的版本
2.vim
vim是一款是十分强大的文本编辑器,我们编代码的环境就是使用它。
1). vim的模式
vim有着许多的模式,但是我们只需要学会其中的几种就可以很熟练的编写代码。
a. 命令模式
当我们输入"vim 文件名"时我们就会使用vim打开这个文件,进入我们不按任何键的状态下,我们所处于的就是命令模式。
我现在这里面输入一个简单的程序

命令模式的各种操作
命令模式中大多数操作都跟我们的光标位置有关。
gg:光标快速定位到最开始n + shift + g:光标快速定位到n行,不输入n时,默认定位到最后一行hjkl:这四个键控制光标的移动,h向左移,j向下移,k向上移,l向右移下列缩进过的都可以在输入命令前输入数字,以表示操作的行数,以光标当前行开始。dd:剪切当前行yy:复制当前行p:粘贴剪贴板内的内容行内的操作:shift + '`'(也就是波浪号):将光标所在处的字母大小写替换r:替换光标更所在位置字符,前面也可以加数字,往后替换x:删除字符shift + x: 往前删除#:查找同名单词(跳到第一个),n向下翻高亮同名单词u:撤销ctrl + r:撤销对撤销的撤销,也就是对u的行为进行撤销
处于底下所有模式都可以按下返回键esc回到命令模式
b. 底行模式
底行模式是为了让我们实现对文件外部的操作,在命令模式下输入分号’:'进入底行模式。
w:保存,w!:强制写入
q:退出,wq:保存并退出,q!:强制退出
set nu:调出行号,set nonu:去掉行号
可以运行命令:! + 命令,在不退出vim的情况下查看编译、运行等工作。
/:搜索关键字,n表示下一个
调出行号

多文件操作(依旧底行模式):
vs:分屏打开其他文件
ctrl + ww可以将光标在文件之间切换

c. 视图模式
这个模式是方便我们进行一些批量化操作,如注释/取消注释代码。命令模式下ctrl + v进入视图模式
注释多行代码:
首先我们的光标要到开始注释行的开始:

进入视图模式->使用hjkl移动光标选中区域->输入shift + i->输入//进行注释->输入返回键->完成注释

d. vim开发环境的配置
在刚开始使用vim的过程中,我们会发现这个软件编写代码极其的不舒服,没有自动匹配括号,关键词联想,自动缩进等等。其实,这些都可以来由使用人员配置。我们需要在我们的账户目录下找到一个隐藏文件’.vimrc’,如果没有我们可以自己创建一个。
使用vim打开这个文件,我们输入set nu也就是显示行号


我们会发现我们再使用vim打开文件就会自动带上行号。而配置一个合适的环境,会大大的提高我们的开发效率,想了解如何配置的话可以自行上,网上搜索相关的配置代码,个性化定制自己的开发环境。
3.gdb
gdb是用来调试c/c++代码的软件,需要注意的是只有在debug版本编译出的可执行程序才能被调试。
而gcc/g++默认编译好的可执行程序是release版本,想要debug版本
gcc/g++ 文件名 -g (debug版本)list(l) + 数字:从数字行开始显示代码,回车下翻
run(r):F5的作用,调试
breakpoint(b) + 行号:打断点多个.c文件时,言明文件名+冒号+行号
info b:显示断点
delete breakpoint(d) + 断点num:删除断点退出调试状态时,断点全部清除
dis/en able + 编号:禁用/启用断点
n:逐过程,相当于F10
s:逐语句,相当于F11
display/undisplay:查看/删除(编号)变量和变量的地址属性
until:跳转到指定行
finish:运行到当前函数的结尾
continue,c:从一个断点跳到下一个断点
bt:查看调用堆栈
set var 变量 = 某数值(可能会影响结果,导致结果不同)
相关文章:
linux中的开发工具
在刚开始使用linux的时候,我们需要在系统上写一些简单的代码,来熟悉环境以及各种指令 并且熟悉属于linux的一套开发的环境,而这对于c来说需要三个软件就可以进行简单的编码 和使用,让我们来认识一下下列工具,以及工具的…...
2023 第十二届中国智能产业高峰论坛 - 文档大模型的未来展望
目录 前言文档图像分析识别与理解中的技术挑战 文档图像分析识别与理解的研究主题文档图像分析与预处理文档解析与识别版面分析与还原文档信息抽取与理解AI安全知识化&存储检索和管理 多模态大模型在文档图像处理中的应用多模态的GPT-4在文档图像上的表现多模态的Google Ba…...
【小沐学NLP】关联规则分析Apriori算法(Mlxtend库,Python)
文章目录 1、简介2、Mlxtend库2.1 安装2.2 功能2.2.1 User Guide2.2.2 User Guide - data2.2.3 User Guide - frequent_patterns 2.3 入门示例 3、Apriori算法3.1 基本概念3.2 apriori3.2.1 示例 1 -- 生成频繁项集3.2.2 示例 2 -- 选择和筛选结果3.2.3 示例 3 -- 使用稀疏表示…...
对话ChatGPT:AIGC时代下,分布式存储的应用与前景
随着科技的飞速发展,我们正步入一个被称为AIGC时代的全新阶段,人工智能、物联网、大数据、云计算成为这个信息爆炸时代的主要特征。自2022年11月以来,ChatGPT的知名度迅速攀升,引发了全球科技爱好者的极大关注,其高超的…...
java多线程学习笔记一
一、线程的概述 1.1 线程的相关概念 1.1.1 进程(Process) 进程(Process)是计算机的程序关于某数据集合上的一次运行活动,是操作系统进行资源分配与调度的基本单位。 可以把进程简单的理解为操作系统中正在有运行的一…...
BOM与DOM--记录
BOM基础(BOM简介、常见事件、定时器、this指向) BOM和DOM的区别和联系 JavaScript的DOM与BOM的区别与用法详解 DOM和BOM是什么?有什么作用? 图解BOM与DOM的区别与联系 BOM和DOM详解 JavaScript 中的 BOM(浏览器对…...
Docker安装MongoDB
一、docker安装mongodb MongoDB 是一个免费的开源跨平台面向文档的 NoSQL 数据库程序。 二、安装步骤 1.docker 拉取mysql镜像 docker pull mongo:latest 2.运行容器 docker run -itd --name mongo -p 27017:27017 mongo --auth参数说明: -p 27017:27017 &#…...
不要对正则表达式进行频繁重复预编译
背景 在频繁调用场景,如方法体内或者循环语句中,新定义Pattern会导致重复预编译正则表达式,降低程序执行效率。另外,在 JDK 中部分 入参为正则表达式格式的 API,如 String.replaceAll, String.split 等,也…...
vue入门及小项目小便签条
vue 框架:是一个半成品软件,是一套可重用的,通用的,软件基础代码模型。基于框架进行开发,更加快捷 ,更加高效 v-bind为HTML标签绑定属性值,如设置href,css样式等 v-model在表单元素上创建双向数…...
详解TCP/IP协议第四篇:数据在网络中传输方式的分类概述
文章目录 前言 一:面向有连接型与面向无连接型 1:大致概念 2:面向有连接型 3:面向无连接型 二:电路交换与分组交换 1:分组交换概念 2:分组交交换过程 三:根据接收端数量分…...
SpringMvc决战-【SpringMVC之自定义注解】
目录 一、前言 1.1.什么是注解 1.2.注解的用处 1.3.注解的原理 二.注解父类 1.注解包括那些 2.JDK基本注解 3. JDK元注解 4.自定义注解 5.如何使用自定义注解(包括:注解标记【没有任何东西】,元数据注解)? 三…...
【MySQL集群一】CentOS 7上搭建MySQL集群:一主一从、多主多从
CentOS 7上搭建MySQL集群 介绍一主一从步骤1:准备工作步骤2:安装MySQL步骤3:配置主服务器步骤4:创建复制用户步骤5:备份主服务器数据,如果没有数据则省略这一步步骤6:配置从服务器步骤7…...
RGB格式
Qt视频播放器实现(目录) RGB的使用场景 目前,数字信号源(直播现场的数字相机采集的原始画面)和显示设备(手机屏幕、笔记本屏幕、个人电脑显示器屏幕)使用的基本上都是RGB格式。 三原色 RGB是…...
认识面向对象-PHP8知识详解
面向对象编程,也叫面向对象程序设计,是在面向过程程序设计的基础上发展而来的,它比面向过程编程具有更强的灵活性和扩展性。 它用类、对象、关系、属性等一系列东西来提高编程的效率,其主要的特性是可封装性、可继承性和多态性。…...
毕业设计|基于51单片机的空气质量检测PM2.5粉尘检测温度设计
基于51单片机的空气质量检测PM2.5粉尘检测温度设计 1、项目简介1.1 系统构成1.2 系统功能 2、部分电路设计2.1 LED信号指示灯电路设计2.2 LCD1602显示电路2.3 PM2.5粉尘检测电路设计 3、部分代码展示3.1 串口初始化3.1 定时器初始化3.2 LCD1602显示函数 4 演示视频及代码资料获…...
星闪空口技术初探
星闪技术设计目标 在星闪技术的应用场景中,最低的时延要求达到了20us量级,比如智能座舱的主动降噪。最高的可靠性要求达到了99.9999%,比如智能制造的传感器与执行器的消息收发。除了低时延和高可靠之外,高精度同步、多并发和信息…...
如何在不失去理智的情况下调试 TensorFlow 训练程序
一、说明 关于tensorflow的调试,是一个难啃的骨头,除了要有耐力,还需要方法;本文假设您是一个很有耐力的开发者,为您提供一些方法;这些方法也许不容易驾驭,但是依然强调您只要有耐力,…...
24. 图论 - 图的表示种类
Hi,你好。我是茶桁。 之前的一节课中,我们了解了图的来由和构成,简单的理解了一下图的一些相关概念。那么这节课,我们要了解一下图的表示,种类。相应的,我们中间需要穿插一些新的知识点用于更好的去理解图…...
C++ 读bin文件,部分代码。赚经验。
编号:1 Head: magicWord[0] 0x0102 magicWord[1] 0x0304 magicWord[2] 0x0506 magicWord[3] 0x0708 version 0x02010004 totalPacketLen 288 platform 0x000a1443 frameNumber 12 timeCpuCycles 172969774 numDetectedObj 99 numTLVs 2 subFrameNumber 0 TLV…...
vue3 父子组件传值
一,子传父 父组件 <script setup> import HelloWorld from ./components/HelloWorld.vue import { ref } from vue//直接赋值页面不会自动渲染,使用ref存储响应式数据 import { defineExpose } from "vue";父传子 let val ref(); con…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...
