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 变量 = 某数值(可能会影响结果,导致结果不同)

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

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

相关文章

【链表】反转链表 II-力扣 92 题

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

elasticsearch bulk 批量操作

1:bulk 是 elasticsearch 提供的一种批量增删改的操作API bulk 对 JSON串 有着严格的要求。每个JSON串 不能换行 ,只能放在同一行,同时, 相邻的JSON串之间必须要有换行 (Linux下是\n;Window下是\r\n&#…

避雷器雷击计数器检验

试验目的 由于密封不良, 放电计数器在运行中可能进入潮气或水分, 使内部元件锈蚀,导致计数器不能正确动作, 因此需定期试验以判断计数器是否状态良好、 能否正常动作, 以便总结运行经验并有助于事故分析。 带有泄漏电…

Git学习笔记6

Github分支开发: 第1步:在github上创建一个新的dev分支: 更新了微信的PC版本,发现默认的箭头比以前加粗了,变得更好看了。 create branch: dev from master。 切换到该分支,看到里面的内容跟master分支的…

Spring Boot + Vue的网上商城之springsecurity+jwt+redis实现用户权限认证实现

Spring Boot Vue的网上商城之springsecurityjwtredis实现用户权限认证实现 在网上商城项目中,用户的安全性是非常重要的。为了实现用户权限认证和安全校验,我们可以使用Spring Security、JWT和Redis来实现。本篇博客将详细介绍后端和前台的实现过程&am…

Vue3 菜鸟入门(三)超详细:引用外部依赖、组件、路由

【学习笔记】Vue3 菜鸟入门(三)超详细:引用外部依赖、组件、路由 关键词:Vue 、Vue 3、Java、Spring Boot、Idea、数据库、一对一、培训、教学本文主要内容含Vue 基本框架 模板语法、指令计划1小时完成,请同学尽量提前…

计算机是如何工作的(上篇)

计算机发展史 世界上很多的高科技发明,来自于军事领域 计算机最初是用来计算弹道导弹轨迹的 弹道导弹 ~~国之重器,非常重要 两弹一星 原子弹,氢弹,卫星(背后的火箭发射技术) 计算弹道导弹轨迹的计算过程非常复杂,计算量也很大 ~~ 但是可以手动计算出来的(当年我国研究两弹一…

Python py文件打包成 exe文件

文章目录 安装 pyinstaller 模块pyinstaller 的使用pyinstaller 常用参数多文件打包 安装 pyinstaller 模块 pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple在 pyinstaller 模块安装成功之后,在 Python 的安装目录下的 Scripts 目录下会增加…

二叉树实现的相关函数

1.二叉树的创建 BTNode* BinaryTreeCreate(BTDataType* a, int n, int* pi) { if (n0||a[*pi] #){ (*pi);return NULL;}BTNode* root (BTNode*)malloc(sizeof(BTNode));root->_data a[(*pi)];root->_left BinaryTreeCreate(a, --n, pi);root->_right Binary…

解决VS Code安装远程服务器插件慢的问题

解决VS Code安装远程服务器插件慢的问题 最近想在服务器上做juypter notebook的代码运行,发现要给服务器安装Jupyter插件,但是安装速度奇慢无比(因为服务器不连外网),一开始查看从VS Code插件市场下载插件的博客&…

ip地址怎么改网速快

在当今高度依赖互联网的时代,快速稳定的网络连接对于人们的生活和工作至关重要。然而,有时我们可能会遇到网络速度缓慢的问题。虽然更改IP地址并不能直接影响网络速度,但它可以成为改善网络连接的一种策略之一。虎观代理小二二将探讨如何通过…

Apache Spark 在爱奇艺的应用实践

01 Apache Spark 在爱奇艺的现状 Apache Spark 是爱奇艺大数据平台主要使用的离线计算框架,并支持部分流计算任务,用于数据处理、数据同步、数据查询分析等场景: 数据处理:在数据开发平台中支持开发者提交 Spark Jar 包任务或Spar…

Mac node nvm 切换版本,指定版本

一、Homebrew自动安装 // Homebrew安装 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" // Homebrew卸载 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)&quo…

macOS 运行xxx.command文件提示”无法执行,因为您没有正确的访问权限“解决方法

使用苹果mac电脑运行.command文件时,是否遇到弹出”无法执行,因为您没有正确的访问权限“的窗口?遇到这种问题怎么解决呢?这里小编为大家带来了详细的解决方法,一起来看看吧! 解决方法: 方法一…

matlab 间接平差法拟合二维圆

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。爬虫自重。 一、算法原理 圆的方程为: ( x - x 0 )

PG数据恢复must be member of role “xxxx“

背景:有一份数据库备份文件,sql语句中包含了drop语句。postgresql数据中有一个模式:test_schema,owner是test_schema_onwer。有另外一个用户test_username2。test_username2具有test_schema的所有权限。 test_username2才是操作te…

GO学习之 远程过程调用(RPC)

GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 10、GO学习之 网络通信(Net/Htt…

SqlBulkCopy - 批量写入数据库

SqlBulkCopy 是 ADO.NET 中的一种类,它提供了高性能的批量数据插入功能。SqlBulkCopy 类位于 System.Data.SqlClient 命名空间中,并且适用于使用 SQL Server 数据库。 ADO.NET 是 Microsoft .NET Framework 的一部分,提供了与数据存储的连接…

怎么为Web服务器配置虚拟主机?【步骤演示】

在安装了Web服务器Apache后,为了更好地使用Apache,还需要学习如何对Apache进行配置。在项目开发中,经常需要配置虚拟主机和访问权限,下面对Web服务器的配置进行详细讲解。 配置虚拟主机 在默认情况下,Apache只有Chwe…

Java手写双向广度优先和双向广度优先应用拓展案例

Java手写双向广度优先和双向广度优先应用拓展案例 1. 算法思维 思维如下: 双向广度优先搜索算法 (Bidirectional Breadth-First Search)1. 初始化起始节点和目标节点的队列和访问集合 2. 初始化起始节点和目标节点的距离为0 3. 初始化起始节点和目标节点的父节点…