当前位置: 首页 > news >正文

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&#xf…...

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的调试,是一个难啃的骨头,除了要有耐力,还需要方法;本文假设您是一个很有耐力的开发者,为您提供一些方法;这些方法也许不容易驾驭,但是依然强调您只要有耐力&#xff0c…...

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 父子组件传值

一&#xff0c;子传父 父组件 <script setup> import HelloWorld from ./components/HelloWorld.vue import { ref } from vue//直接赋值页面不会自动渲染&#xff0c;使用ref存储响应式数据 import { defineExpose } from "vue";父传子 let val ref(); con…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...