linux中的开发工具

news2024/11/27 19:42:28
在刚开始使用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 变量 = 某数值(可能会影响结果,导致结果不同)

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

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

相关文章

【Java 基础篇】Java字符打印流详解:文本数据的输出利器

在Java编程中,我们经常需要将数据输出到文件或其他输出源中。Java提供了多种输出流来帮助我们完成这项任务,其中字符打印流是一个非常有用的工具。本文将详细介绍Java字符打印流的用法,以及如何在实际编程中充分利用它。 什么是字符打印流&a…

电脑丢失d3dcompiler47.dll怎么办,这个四个修复方法都可以解决

d3dcompiler_47.dll 是一个与 DirectX 相关的动态链接库文件,它包含了 DirectX 编译器的一些函数和类,对于许多应用程序和游戏来说都是必需的。如果您的系统中缺失了这个文件,可能会导致程序无法正常运行。下面我们将介绍四个修复 d3dcompile…

(图论) 1020. 飞地的数量 ——【Leetcode每日一题】

❓ 1020. 飞地的数量 难度:中等 给你一个大小为 m x n 的二进制矩阵 grid ,其中 0 表示一个 海洋单元格、1 表示一个 陆地单元格。 一次 移动 是指从一个陆地单元格走到另一个相邻(上、下、左、右)的陆地单元格或跨过 grid 的边…

vant 组件库的基本使用

文章目录 vant组件库1、什么是组件库2、vant组件 全部导入 和 按需导入的区别3、全部导入的使用步骤:4、按需导入的使用步骤:5、封装vant文件包 vant组件库 该项目将使用到vant-ui组件库,这里的目标就是认识他,铺垫知识 1、什么…

PyG-GAT-Cora(在Cora数据集上应用GAT做节点分类)

文章目录 model.pymain.py参数设置运行图 model.py import torch.nn as nn from torch_geometric.nn import GATConv import torch.nn.functional as F class gat_cls(nn.Module):def __init__(self,in_dim,hid_dim,out_dim,dropout_size0.5):super(gat_cls,self).__init__()s…

安达发APS|国货品牌崛起,制造业迎来智能排产新机遇

随着国货品牌的不断崛起,制造业的生产也面临着巨大的挑战。为应对这一挑战,越来越多的企业开始引入APS智能排产技术,以优化生产线布局、提升设备利用率、缩短生产周期、减少生产成本,从而增强市场竞争力。本文将为您详细解读APS智…

数据结构-----栈(栈的初始化、建立、入栈、出栈、遍历、清空等操作)

目录 前言 栈 1.定义 2.栈的特点 3.栈的储存方式 3.1数组栈 3.2链栈 4.栈的基本操作(C语言) 4.1初始化 4.2判断是否满栈 4.3判断空栈 4.4 入栈 4.5 出栈 4.6获取栈顶元素 4.7遍历栈 4.8清空栈 完整代码示例 前言 大家好呀!今天我…

登录业务实现

登录业务实现: 登录成功/失败实现 -> pinia管理用户数据及数据持久化 -> 不同登录状态的模板适配 -> 请求拦截器携带token -> 退出登录实现 -> token失效(401响应拦截) 1. 登录成功/失败实现 当表单校验通过时&a…

华为云云耀云服务器L实例评测|云耀云服务器L实例部署odoo开源ERP平台

华为云云耀云服务器L实例评测|云耀云服务器L实例部署odoo开源ERP平台 一、云耀云服务器L实例介绍1.1 云耀云服务器L实例简介1.2 云耀云服务器L实例使用场景1.3 云耀云服务器L实例特点 二、odoo介绍2.1 odoo简介2.2 odoo特点 三、本次实践介绍3.1 本次实践简介3.2 本…

解决Java应用程序中的SQLException:服务器时区值未识别问题;MySQL连接问题:服务器时区值 ‘Öйú±ê׼ʱ¼ä‘ 未被识别的解决方法

目录 ​编辑 问题背景 解决方案 问题背景 今天遇见一个这个问题,解决后发出来分享一下: java.sql.SQLException: The server time zone value is unrecognized or represents more than one time zone. You must configure either the server or J…

STP介绍

目录 STP概述 二层环路带来的问题 1.广播风暴 2.MAC地址漂移问题 3.多帧复制---这个好理解,同一个数据帧被重复收到多次,被称为多帧复制。 802.1D生成树 STP的BPDU BPDU主要分为两大类 配置BPDU RPC COST 配置BPDU的工作过程 TCN BPDU TCN…

【python爬虫】——历史天气信息爬取

文章目录 1、任务描述1.1、需求分析1.2 页面分析 2、获取网页源码、解析、保存数据3、结果展示 1、任务描述 1.1、需求分析 在2345天气信息网2345天气网依据地点和时间对相关城市的历史天气信息进行爬取。 1.2 页面分析 网页使用get方式发送请求,所需参数包括a…

c语言练习63:用malloc开辟二维数组的三种办法

用malloc开辟二维数组的三种办法 使用malloc函数模拟开辟一个3*5的整型二维数组&#xff0c;开辟好后&#xff0c;使用二维数组的下标访问形式&#xff0c;访问空间。 第一种办法&#xff1a;用指针数组&#xff1a; #include<stdio.h> int main() {int** p (int**)m…

2023-09-19 LeetCode每日一题(打家劫舍 IV)

2023-09-19每日一题 一、题目编号 2560. 打家劫舍 IV二、题目链接 点击跳转到题目位置 三、题目描述 沿街有一排连续的房屋。每间房屋内都藏有一定的现金。现在有一位小偷计划从这些房屋中窃取现金。 由于相邻的房屋装有相互连通的防盗系统&#xff0c;所以小偷 不会窃取…

【C++代码】二叉树的最大深度,二叉树的最小深度,完全二叉树的节点个数--代码随想录

题目&#xff1a;二叉树的最大深度 给定一个二叉树 root &#xff0c;返回其最大深度。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 题解 如果我们知道了左子树和右子树的最大深度 l 和 r&#xff0c;那么该二叉树的最大深度即为 m a x ( l , r ) …

令人惊艳的AI项目,这也太猛了...

大家好&#xff0c;我是 Jack。 这两天&#xff0c;我在网上冲浪&#xff0c;发现了一款神器&#xff01; 我在使用 AI 绘画 Stable Diffsuion 和 Midjourney 的时候&#xff0c;花费时间最多的就是写 prompt 描述词了&#xff0c;绞尽脑汁地调试 prompt。 同样&#xff0c;…

pdf怎么转换成word?推荐这几种方法

pdf怎么转换成word&#xff1f;pdf转换成Word是一项常见的需求&#xff0c;首先&#xff0c;Word文档是一种常用的文档格式&#xff0c;几乎在任何计算机上都可以打开和编辑。与PDF相比&#xff0c;Word文档更加灵活和可编辑&#xff0c;可以轻松地修改和更新文档内容。在使用这…

macOS文件差异比较最佳工具:Beyond Compare 4

Beyond Compare for mac是一款Scooter Software研发的文件同步对比工具。你可以选择针对多字节的文本、文件夹、源代码&#xff0c;甚至是支持比对adobe文件、pdf文件或是整个驱动器&#xff0c;检查其文件大小、名称、日期等信息。你也可以选择使用Beyond Compare合并两个不同…

《数据结构、算法与应用C++语言描述》使用C++语言实现二维数组下三角矩阵

《数据结构、算法与应用C语言描述》使用C语言实现二维数组下三角矩阵 下三角矩阵定义 如下图所示&#xff1a; 代码实现 _11lowerTriangularMatrix.h 模板类 /* Project name : allAlgorithmsTest Last modified Date: 2022年8月13日17点38分 Last Version: V1.0 D…

Linux-文件和目录权限

文章目录 权限的作用普通文本文件的权限作用 权限的作用 权限对于普通文件和目录文件的作用是不一样的。 普通文本文件的权限作用 drwxr-xr-x第二个字母开始是文件的权限表示9列权限&#xff0c;前三列表示文件的"拥有者"对该文件具有的权限&#xff0c;中三列表…