当前位置: 首页 > 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分钟检…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一&#xff0c;能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时&#xff0c;需要添加Git仓库地址和凭证&#xff0c;设置构建触发器&#xff08;如GitHub…...

uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)

UniApp 集成腾讯云 IM 富媒体消息全攻略&#xff08;地理位置/文件&#xff09; 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型&#xff0c;核心实现方式&#xff1a; 标准消息类型&#xff1a;直接使用 SDK 内置类型&#xff08;文件、图片等&#xff09;自…...