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

【Linux】环境基础开发工具的使用(一)

前言:在此之前我们学习了一些Linux的权限,今天我们进一步学习Linux下开发工具的使用。

💖 博主CSDN主页:卫卫卫的个人主页 💞
👉 专栏分类:Linux的深度刨析 👈
💯代码仓库:卫卫周大胖的学习日记💫
💪关注博主和博主一起学习!一起努力!
在这里插入图片描述


目录标题

  • 基础开发工具的使用
    • 什么是软件包
    • yum的使用
    • 关于rzsz
      • 一些好玩的小指令
    • Linux编辑器-vim使用
      • vim的基本操作
        • vim命令模式命令集
        • vim底行模式命令集
          • 如何左右分屏
          • 如何快速切换屏幕
        • 批量注释和批量去注释
        • 简单vim配置


基础开发工具的使用

什么是软件包

  • 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序。
  • 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装。
  • 软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系,yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上。

yum的使用

yum的概念:Linux系统中,yum是一种包管理器,用于安装、升级和管理软件包。它能够自动解析软件包的依赖关系,并从软件源中下载对应的软件包进行安装。
关于yum的更多用法大家可以通过man指令去查看:man yum
下面是yum的一些常用命令和使用示例:

  1. 安装软件包
[wei@centos7 ~]$ yum install <package_name>
  1. 升级软件包
[wei@centos7 ~]$ yum update <package_name>
  1. 删除软件包:
[wei@centos7 ~]$ yum remove <package_name>
  1. 搜索软件包:
[wei@centos7 ~]$ yum search <keyword>
  1. 列出可用软件包:
[wei@centos7 ~]$ yum list
  1. 列出已安装的软件包
[wei@centos7 ~]$ yum list installed
  1. 清除缓存
[wei@centos7 ~]$ yum clean packages # 清理已下载的软件包
[wei@centos7 ~]$ yum clean headers # 清理软件包的header信息
[wei@centos7 ~]$ yum clean all  # 清理所有缓存

关于rzsz

这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件.
安装完毕之后可以通过拖拽的方式将文件上传过去。rz用于接收文件,sz用于发送文件。

  1. 首先我们需要安装:sudo yum install lrzsz

  2. 我们通过: yum list | grep lrzsz查看安装的lrzsz如果安装成功会出现下图这个形式,注意事项也对这个进行了对应的解释
    在这里插入图片描述

  3. 当然了如果我们想要卸载也可以通过该指令来卸载软件:sudo yum remove lrzsz

  4. 我们可以直接通过在桌面拖拽的形式上传文件(如下图)请添加图片描述

  5. yum 会自动找到都有哪些软件包需要下载, 这时候敲 “y” 确认安装

  6. 出现 “complete” 字样, 说明安装完成

  7. 安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成。

  8. yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外一个软件, yum会报错(如果报错不知道如何解决,百度会帮你)。

注意事项请添加图片描述

  • 软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.
  • “x86_64” 后缀表示64位系统的安装包, “i686” 后缀表示32位系统安装包. 选择包时要和系统匹配.
  • “el7” 表示操作系统发行版的版本. “el7” 表示的是 centos7/redhat7. “el6” 表示 centos6/redhat6.
  • 最后一列, base 表示的是 “软件源” 的名称, 类似于 “小米应用商店”, “华为应用商店” 这样的概念.

一些好玩的小指令

小火车:安装:sudo yum install -y sl 运行: sl
在这里插入图片描述
打印一头牛:安装:sudo yum install -y cowsay 运行:sl
在这里插入图片描述


Linux编辑器-vim使用

今天我们讲解vim的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

  • 正常/普通/命令模式(Normal mode) :控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
  • 插入模式(Insert mode):只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
  • 末行模式(last line mode):文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入。

vim的基本操作

  1. 打开文件:在终端中输入vim 文件名,例如vim text.txt,可以打开一个名为text.txt的文件(如果我们打开的是一个新建的文件里面通常是什么都没有的,这里作者这个文件里面的东西是后来写的大家可以忽略)。这里我们用vim直接打开的时候就属于是正常模式/普通模式
    在这里插入图片描述
  2. 如果我们此时在键盘上按一下a或者o,就会进入到插入模式,我们就可以直接通过键盘来在里面输入内容。
  3. 如果进入了正常模式或者插入模式我们想退出,就输入shift+:(你不懂的话可以理解成你在电脑上给别人发信息发:这个符号),此时我们就进入了末行模式。
  4. 在末行模式的时候输入:q可以直接退出编辑器。如果文件有未保存的修改,可以输入:q!来强制退出而不保存修改。如果同时有多个文件打开,可以输入:qa来退出所有文件。w保存文件并推出。
  5. 至于如何流畅的在这三个模式中切换请看下图
    在这里插入图片描述
    接下来我们就来讲这个各个模式如何用用命令来帮助我们以后快速的操作

vim命令模式命令集

移动光标:

  • h:左移一个字符
  • j:下移一行
  • k:上移一行
  • l:右移一个字符
  • Ctrl + f:向下翻页(相当于Page Down键)
  • Ctrl + b:向上翻页(相当于Page Up键)
  • gg:跳到文件的开头
  • G:跳到文件的末尾
  • nG:跳到文件的第n行

删除文本:

  • x:删除光标所在处的字符
  • nx:删除当前光标所在处及其往后n个字符
  • X:删除光标所在处的前一个字符
  • nX:删除当前光标所在处及其往前n个字符
  • dd:删除当前行
  • ndd:删除当前行及其后n-1行

复制与粘贴

  • yy:复制当前行到缓冲区.
  • nyy:复制当前行及其后n-1行
  • yw: 将光标所在之处到字尾的字符复制到缓冲区中
  • nyw:复制n个字到缓冲区
  • p:粘贴复制的文本,往后粘贴
  • P:粘贴在当前行之前
  • dd之后再p :剪切

搜索和替换

  • / 搜索词:向下搜索指定的关键词
  • ?搜索词:向上搜索指定的关键词
  • n:跳到下一个匹配的关键词
  • N:跳到上一个匹配的关键词
  • :s /旧词/新词/g:替换当前行中的旧词为新词
  • :%s/旧词/新词/g:替换全文中的旧词为新词
  • r:替换光标所在处的字符(输入r后在输入想要替换成的字符即可)
  • nr:支持nr 往后替换n个字符
  • R:替换光标所到之处的字符,直到按下「ESC」键为止
  • shift + r 替换模式:直接进行多个内容的替换

撤销上一次操作

  • u:撤销上一次的操作(多按几次u可以执行多次撤销)
  • Ctrl + r:重做上一次被撤销的操作
  • .:重复上一次的编辑操作

保存和退出

  • :w:保存文件
  • :wq:保存并退出编辑器
  • :q:退出编辑器(仅在无修改时生效)
  • :q!:强制退出编辑器,丢弃所有修改

更改:

  • cw:删除从光标处到单词(不包括整型)结尾的文本并进入到插入模式
  • cnw:例如,「c3w」表示删除3个字
  • shift + ~ :快速大小写切换(大写转小写,小写转大写)

vim底行模式命令集

vim的底行命令是在vim编辑器中使用冒号(:)进入底行模式,进行一些编辑、保存、退出和搜索等操作。以下是一些常用的vim底行模式命令集:

  • :w - 保存当前文件
  • :wq - 保存当前文件并退出
  • :q - 退出当前文件(如果没有修改)
  • :q! - 强制退出当前文件,放弃修改
  • :x - 保存当前文件并退出(只有在文件被修改过的情况下)
  • :e <文件路径> - 打开指定路径的文件
  • :bn - 切换到下一个缓冲区
  • :bp - 切换到上一个缓冲区
  • :bd - 关闭当前缓冲区
  • :%s/<目标字符串>/<替换字符串>/g - 全局替换指定字符串
  • :/<目标字符串> - 搜索指定字符串
  • :set nu - 显示行号
  • :set nonu - 隐藏行号
  • :set syntax=<语法类型> - 设置语法高亮类型(如syntax=python)
  • :set spell - 打开拼写检查
  • :set nospell - 关闭拼写检查
  • :help <命令> - 查看命令的帮助文档

这只是一些常用的vim底行命令,vim还有很多其他功能强大、用途广泛的命令,可以通过在底行模式下键入“:help”来查看更多的帮助文档。


如何左右分屏

在底行模式下, vs 文件名 可以不断分屏,往左侧分屏,如果vs后面的文件名不存在,则会默认先创建,再打开
在这里插入图片描述

如何快速切换屏幕

在底行模式下 按ctrl +w +w , 光标在哪里闪动,就说明哪个文件被选中,在该文件底行模式输入wq保存退出,保留的就是另外的文件(如下图所示)
请添加图片描述


批量注释和批量去注释

在命令模式下 : ctrl + v 然后用l,j,k,h选中区域,然后按大写的I,会跳到第一个位置,输入//注释,然后按esc按键
在命令模式下 : ctrl + v 然后用l,j,k,h选中区域,注意:要选中两个// 然后按小写的i,然后按d

简单vim配置
  • 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
  • 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,
  • 通常已经存在一个.vimrc文件,如果不存在,则创建之。
  • 切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~打开自己目录下的.vimrc文件,执行 vim .vimrc

自动配置vim:
直接输入下列命令即可

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

在这里插入图片描述
然后按照提示输入root密码,然后等待安装配置,最后手动执行source ~/.bashrc.配置完成后,类似自动补全、行号显示以及自动缩进等功能就有了。


好啦,今天的内容就到这里啦,下期内容预告gcc/g++、make/makefile、进度条的讲解


结语:今天的内容就到这里吧,谢谢各位的观看,如果有讲的不好的地方也请各位多多指出,作者每一条评论都会读的,谢谢各位。


🌏🗺️ 这里祝各位寒假愉快 💞💞

相关文章:

【Linux】环境基础开发工具的使用(一)

前言&#xff1a;在此之前我们学习了一些Linux的权限&#xff0c;今天我们进一步学习Linux下开发工具的使用。 &#x1f496; 博主CSDN主页:卫卫卫的个人主页 &#x1f49e; &#x1f449; 专栏分类:Linux的深度刨析 &#x1f448; &#x1f4af;代码仓库:卫卫周大胖的学习日记…...

突破编程_C++_面试(基础知识(5))

面试题9&#xff1a;什么是内存地址 内存地址是指计算机内存中存储变量或对象的地址。内存空间大小就是寻址能力&#xff0c;即能访问到多少个地址&#xff0c;比如 32 位机器内存空间大小就是 2^32 4294967296&#xff0c;也就是 4 GB 。每个变量或对象在内存中都有一个唯一…...

十分钟掌握Go语言==运算符与reflect.DeepEqual函数处理interface{}值的比较规则

在 Go 语言中&#xff0c;interface{} 类型是一种特殊的接口类型&#xff0c;它表示任意类型的值。你可以使用 运算符来检测任意两个 interface{} 类型值的相等性&#xff0c;比较的规则和一般的接口类型一样&#xff0c;需要满足以下条件&#xff1a; 两个 interface{} 值的…...

Unity3d Shader篇(一)— 顶点漫反射着色器解析

文章目录 前言一、顶点漫反射着色器是什么&#xff1f;1. 顶点漫反射着色器的工作原理 二、编写顶点漫反射着色器1. 定义属性2. 创建 SubShader3. 编写着色器程序段4. 完成顶点着色器5. 完成片段着色器 三、效果四、总结 前言 在 Unity 中&#xff0c;Shader 可以用来实现各种…...

WordPress主题YIA的文章页评论内容为什么没有显示出来?

有些WordPress站长使用YIA主题后&#xff0c;在YIA主题设置的“基本”中没有开启“一键关闭评论功能”&#xff0c;而且文章也是允许评论的&#xff0c;但是评论框却不显示&#xff0c;最关键的是文章原本就有的评论内容也不显示&#xff0c;这是为什么呢&#xff1f; 根据YIA主…...

选择低代码应该注意什么?如何选择?

我查看了几乎所有的介绍低代码的总结和分析报告&#xff0c;几乎都没有把低代码最底层的产品逻辑说清楚。今天我尝试不用复杂的技术名词&#xff0c;也不用代码&#xff0c;把这个事儿给大家说明白&#xff0c;低代码到底怎么回事儿&#xff01;&#xff08;人云亦云那些&#…...

橘子学linux调优之工具包的安装

今天在公司无聊的弄服务器&#xff0c;想着有些常用的工具包安装一下&#xff0c;这里就简单记录一下。 一、sysstat的安装和使用 1、安装 我是通过源码的方式安装的&#xff0c;这样的好处在于可以自由选择你的版本&#xff0c;很直观。 直接去github上找到sysstat的地址&a…...

函数的连续与间断【高数笔记】

【连续】 分类&#xff0c;分几个&#xff1f;每类特点&#xff1f; 连续条件&#xff0c;是同时满足还是只需其一&#xff1f; 【间断】 分类&#xff0c;分几个大类&#xff0c;又分几个小类&#xff1f;每类特点&#xff1f; 间断条件&#xff0c;是同时满足还是只需其一&am…...

游戏如何选择服务器

选择游戏服务器是一个综合性的过程&#xff0c;涉及到的因素包括但不限于游戏类型和规模、硬件配置、网络质量、安全性、服务商的声誉以及地理分布等。以下是一些具体的指导原则&#xff1a; 游戏类型和规模&#xff1a;根据游戏的具体需求来选择合适的服务器。例如&#xff0…...

ubuntu20安装mysql8

1.安装 sudo apt update sudo apt install mysql-server-8.0 -y2.查看运行状态 yantaoubuntu20:~$ sudo systemctl status mysql ● mysql.service - MySQL Community ServerLoaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset:>Active: active …...

07 SB3之@HttpExchange(TBD)

HttpExchange是SpringBoot3的新特性. Spring Boot3 提供了新的 HTTP 的访问能力&#xff0c;封装了Http底层细节. 通过接口简化 HTTP远程访问&#xff0c;类似 Feign 功能。 SpringBoot 中定义接口提供 HTTP 服务 --> 框架生成的代理对象实现此接口 --> 框架生成的代理…...

Redis数据淘汰策略

Redis作为一种高性能的键值存储数据库&#xff0c;通常用于缓存和提高数据检索速度。然而&#xff0c;由于内存资源有限&#xff0c;当内存不足以容纳所有数据时&#xff0c;Redis就需要采取一些策略来删除部分数据&#xff0c;以确保新的数据能够被写入。这就引入了数据淘汰策…...

Git的一些基本操作

初始git 我们给出下面的一个场景&#xff0c;在大学里&#xff0c;一些老师在我们做完实验之后喜欢让我们交实验报告&#xff0c;假设我们有一个比较追求完美的老师和一个勤奋的学生&#xff0c;这个学生叫做小帅&#xff0c;那天小帅桑勤奋的完成实验报告&#xff0c;在第二天…...

Spring Boot中异步线程池@Async

很多业务场景需要使用异步去完成&#xff0c;比如&#xff1a;发送短信通知。要完成异步操作一般有两种&#xff1a; 1、消息队列MQ 2、线程池处理。 我们来看看Spring框架中如何去使用线程池来完成异步操作&#xff0c;以及分析背后的原理。 一. Spring异步线程池的接口类 …...

ArcGIS学习(五)坐标系-2

3.不同基准面坐标系之间的转换 在上一关中,我们学习了ArcGIS中的投影(投影栅格)工具,并以"WGS1984地理坐标系与WGS1984的UTM投影坐标系的转换”为例进行讲解。 "WGS1984地理坐标系与WGS1984的UTM投影坐标系的转换”代表的是同一个基准面下的两个坐标的转换。 …...

2024Node.js零基础教程(小白友好型),nodejs新手到高手,(五)NodeJS入门——http模块

044_http模块_创建HTTP服务端 hello&#xff0c;大家好&#xff0c;那这个小节我们来使用 nodejs 创建一个 http 的服务&#xff0c;有了这个 http 服务之后&#xff0c;我们就可以处理浏览器所发送过来的请求&#xff0c;并且还可以给这个浏览器返回响应。 顺便说一下&#x…...

sklearn.preprocessing 标准化、归一化、正则化

文章目录 数据标准化的原因作用归一化最大最小归一化针对规模化有异常的数据标准化线性比例标准化法log函数标准化法正则化Normalization标准化的意义数据标准化的原因 某些算法要求样本具有零均值和单位方差;需要消除样本不同属性具有不同量级时的影响: ① 数量级的差异将导…...

Windows系统编程(一) 文件与目录操作

以下程序需要包含<Windows.h>头文件 创建打开文件 HANDLE hFile CreateFile("D:\\rkvir.ini", GENERIC_READ | GENERIC_WRITE, NULL, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); 此处打开文件&#xff0c;参数依次 已有文件的路径&#xff0c;注意…...

6-2、T型加减速计算简化【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】&#xff0c;查看本系列全部文章 摘要&#xff1a;本节介绍简化T型加减速计算过程&#xff0c;使其适用于单片机数据处理。简化内容包括浮点数转整型数计算、加减速对称处理、预处理计算 一、浮点数转整型数计算 根据上一节内容已知 常用的晶振大小…...

配置Jenkins自动构建打包项目

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 需求说明 1、给A项目配置jenkins每2小时无条件自动构建一次&#xff0c;无论是否有代码提交。 2、给B项目配置jenkins每15分钟检…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 &#xff08;一&#xff09;项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台&#xff0c;其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言&#xff0c;首次接触 OpenBCI 设备时&#xff0c;往…...