Linux工具的使用——yum和vim的理解和使用
目录
- linux工具的使用
- 1.linux软件包管理器yum
- 1.1yum的背景了解
- 关于yum的拓展
- 1.2yum的使用
- 2.Linux编辑器-vim使用
- 2.1vim的基本概念
- 2.2vim的基本操作
- 2.3命令模式命令集
- 2.3.1关于光标的命令:
- 2.3.2关于复制粘贴的命令
- 2.3.3关于删除的命令
- 2.3.4关于文本编辑的命令
- 2.4插入模式命令集
- 2.5底行模式命令集
- 2.6vim的简单配置
linux工具的使用
1.linux软件包管理器yum
1.1yum的背景了解
学习yum之前,我们需要先知道一些常识
常识:
- 下载软件之前,我们需要把软件包下载下来【这个过程需要联网】
- 之所以要下载软件包是因为软件包不在我们的本地【也就是磁盘】,软件包存在别人的本地上【一般是远端的服务器或者云服务器】
- 我如何知道要在那个服务器上面下载软件包呢?
如果是在电脑上就是通过搜索官网【搜索引擎,可以给钱,它把你放上面去】
如果是在手机上,就是通过手机厂商提供的应用商店【这是一个商业模式,做软件的给手机厂商钱,才能进应用商店】
【应用商店就是一个app,功能就是帮你找到你要的软件包的服务器】
- 谁提供的软件包?
是开发这个软件包的企业、个人、组织提供的软件包【其实不是为了钱就是为了知名度】【大部分是为了钱,少部分如linux就是为了知名度】
- 软件包制作完之后通常放在哪里呢?
电脑:放到自家官网服务器上
手机:放到手机制造方的应用商店
知道上面的常识之后,我们再来回到linux中,同样的,在linux中下载软件包也是一样的道理。
同样需要有人提供对应的软件包,有人把软件包放在服务器上
那是谁放的呢?
答案:软件包是开源的,因为linux是个开源软件,整个生态都是开源的,因此这些软件包都是放在了被租用的服务器上,钱是linux社区出的,linux社区的钱是来自世界各地linux使用者的捐款。【这个叫站着把钱挣了】
但是这里有个问题,就算这个软件包是开源的,linux客户端如何得知这个软件包的服务器在哪里呢?怎么将这个软件包下载到本地呢?
答案:不同社区在自己的linux中,都会内置服务器和下载链接。这样用户需要那个软件包,就直接跟客户端的软件yum下达指令,yum软件可以直接通过内置的对应的软件包下载链接,来找到对应的服务器并进行下载。
yum的功能就等同于手机上的应用商店!
这里还有一个问题没有解决,我们知道linux这种开源生态基本都是存在于国外,既然如此,那存放软件包的服务器肯定也是在国外的,并且linux配置的软件包的下载链接肯定访问的也是国外的服务器。
但是我们国内因为一些原因,往往会锁墙,一般来说是访问不到国外的服务器的。因为这个原因,国内的一些大佬,比如清华之类的,就自己弄了服务器,把国外的服务器内容镜像到了国内的服务器
这样还不够,因为linux内所配置的软件包的下载链接还是访问国外的服务器,因此国内的软件服务器还需要提供一套国内的下载链接的配置文件——yum源 配置文件
如果想要知道其yum是如何通过内部内置的链接,找到国内的服务器的话,可以打开这个目录/etc/yum.repos.d/
注意:这个链接有可能打不开的,这个时候直接搜镜像软件源就行了
linux中的yum通过内置的一些链接,找到国内的软件源服务器,在这个路径下去找用户所需要安装的软件,找到了就直接从服务器上面安装到本地就行了。
注意:
关于软件一般分为官方的和非官方的,在bash下有的就是官方的。
如果要安装非官方的软件,要下载这个
yum install -y epel-release
如果在该目录
/etc/yum.repos.d/
下,查看到了下图所圈的文件,就是安装成功了
这个非官方的软件集合基本可以算的上是官方软件的储备,在这里的软件如果能经历时间和大量应用场景的考验并且保持稳定,那么就有可能被添加到官方软件集合中。
这样我们就知道yum是什么,功能是什么,怎么实现了。
**yum其实就是linux提供的一个软件,起到一个应用商店的作用。**我们可以通过yum实现软件的安装,下载,和卸载
关于yum的拓展
yum在帮我们下载软件的时候,其实暗自帮我们解决了软件的软件之间的耦合问题。
我们再下一个软件A的时候,并不是单纯的下载了一个软件A就可以的,软件A内部很可能还有再继续下载一些东西。
比如:vs 2022,我们在下载了vs2022之后,还要下载关于c/c++的一些相关文件。
1.2yum的使用
yum的使用一般就是三板斧——安装、查找、删除
安装一个软件就输入:
yum install 软件名
选项:
- -y
加了-y系统就不会询问你是否要下载,而是直接下载。
注意:
yum的前提是root权限,可以用sudo提权,也可以直接用root来执行。
并且yum下载的软件,是整个linux系统都可以使用的
查找yum是否支持下载某个软件就输入:
yum list | grep 软件名
如果不加 | grep
就是罗列所有yum支持安装的软件名
删除一个软件就输入:
yum remove 软件名
2.Linux编辑器-vim使用
2.1vim的基本概念
vim一共有12种模式:six BASIC modes和six ADDITIONAL modes
在底行模式输入:
help vim-modes
vim最常使用的三种模式——命令模式,编辑模式,底行模式
这里的编辑模式也可以叫插入模式
2.2vim的基本操作
刚用vim打开一个文件的时候,默认就是命令模式
如果要切换成编辑模式
就要输入i、Ins按键。
输入a、
输入o、
要退出编辑模式,可以按esc进入到命令模式。
但是想要进入到底行模式,只能从命令模式输入shift + ;
,也就是:
。
并且要退出底行模式,要输入esc。底行模式无法直接切换到编辑模式
如果要退出vim的话,可以输入wq,表示保存并退出
q 表示不保存直接退出。
w 表示保存当前文件
这三个模式的基本关系图如下面所示:
2.3命令模式命令集
命令模式的意义:就是为了提高编辑效率
因为vim是诞生在没有鼠标和老式键盘的时代下的。
2.3.1关于光标的命令:
关于光标的命令很很多,下面可以参考:
vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、
「l」,分别控制光标左、下、上、右移一格
按「G」:移动到文章的最后【G = shift + g】
按「nG」:移动到第n行的开头【G = shift + g】
按「 $ 」:移动到光标所在行的“行尾”【$ = shift + 4】
按「」:移动到光标所在行的“行首”【 = shift +6】
按「w」:光标跳到下个字的开头【这里w可以+shift,也可以不加,加了会跳多一点】
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:光标移到该行的第#个位置,如:5l,56l
按[gg]:进入到文本开始
按[shift+g]:进入文本末端
按「ctrl」+「b」:屏幕往“后”移动一页
按「ctrl」+「f」:屏幕往“前”移动一页
按「ctrl」+「u」:屏幕往“后”移动半页
按「ctrl」+「d」:屏幕往“前”移动半页
小键盘的上下左右也是可以控制光标的移动的,但是最好用 H J K L
这里图片中的 n + shift + g
的意思就是跳转光标到指定行号
行号需要在底行模式下输入 set nu 之后就会有了
2.3.2关于复制粘贴的命令
关于复制和粘贴的命令:
「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「nyw」:复制n个字到缓冲区
「yy」:复制光标所在行到缓冲区。
「nyy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
「p」:将缓冲区内的字符贴到光标所在位置。
注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能
2.3.3关于删除的命令
关于删除的命令:
「x」:每按一次,删除光标所在位置的一个字符
「nx」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
「nX」:例如,「20X」表示删除光标所在位置的“前面”20个字符
「dd」:删除光标所在行
「ndd」:从光标所在行开始删除n行【向下n行】
[ndd + p]:剪切操作【将光标所在行开始删除的n行剪切到光标所在的位置】
注意:
所有的删除都能粘贴。就是都能执行剪切
2.3.4关于文本编辑的命令
有关对文本内容进行编辑的命令:
[~]:长按不动,会自动将这一行的内容依次切换大小写
[R]:进入替换模式,进行批量化替换
[r]:替换光标所在处的字符
- 撤销上一次操作
「u」:如果误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。
「ctrl + r」: 撤销的恢复【u不小心按多了,撤销了不想撤销的命令,那就用这个】
- 更改
「cw」:更改光标所在处的字到字尾处
「c#w」:例如,「c3w」表示更改3个字
总结:
2.4插入模式命令集
按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按「o」进入插入模式后,是插入新的一行,从行首开始输入文字
2.5底行模式命令集
- 列出行号
「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。
- 跳到文件中的某一行
「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。
- 查找字符
「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。
「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。
/ 和 ?查找有什么区别?
/string 会高亮显示光标后匹配的第一个字符串,回车后光标移到该字符串的第一个字母;
?string 会高亮显示光标前匹配的第一个字符串,回车后光标移到该字符串的第一个字母
- 保存文件和退出文件
「w」: 在冒号输入字母「w」就可以将文件保存起来,可以跟「!」表示强制写入
「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。
「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。也可以跟「!」表示强制保存并退出
- 分屏操作
「vs 文件名」:表示分屏操作,创建一个用户输入的文件名的文件,然后进行分屏操作。如果该文件名已存在文件,那就是打开文件并进行分屏操作
注意:
无轮分了多少个屏,光标从始至终就只有一个,光标在那个屏幕就代表正在操作那个屏幕。和window是一样的【无论window可以开多少个窗口。只能对一个窗口进行操作】
如果要进行光标的分屏要输入:
[ctrl + ww]:切换光标所在屏幕
- !写linux命令
在底行模式下如果想执行一些linux命令但是不想退出vim模式的时候,就需要用到!
如图所示:
执行命令
执行完毕后,按q退出之后,仍然回到vim编辑界面
- 批量替代
在底行模式下输入%s/printf/cout/g
:代表这把所有printf都替换成cout
替换
2.6vim的简单配置
vim的配置可以让vim的使用更加的方便。
关于vim的配置有几个需要注意的地方:
- vim的配置是一个用户一份的,不会影响其他用户
- 每一个用户虽然用的是同一个vim程序,但是使用的是不同的vim配置
- 关于vim的基础配置,就是修改自己的.vimrc配置文件【在家目录下】
- 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效
但是目前的这个vim比较难以使用,它没有自动对齐和高亮等功能
因此我们配置vim,就是通过设置.vimrc这个文件,来使得vim这个编辑器变得更加的好用
配置vim的两个方法:
- 一个一个往.vimrc这个文件添加命令来配置
如下图所示
配置完之后vim界面就会发生变化
但是这个配置vim的方式非常的费时费力。如果自己喜欢可以一条一条的复制粘贴的配置,并且下载一些插件来完善vim的功能
- 因此,我们可以拿别人配置好的vim来配置自己的vim
这里不推荐在root下配置,配置完之后,所有用户包括root自己全都会配置。
最好是在普通用户下配置
注意:因为这是从gitee上面拿过来的,所以需要你的系统中装有git才行
① 使用
git --version
查看自己的系统中是否有安装git② 没安装的话使用 **
yum install -y git
**稍等一会就可以安装好了
这里推荐一个:HGtz2222/VimForCpp - 码云 - 开源中国 (gitee.com)
下载完成之后会显示
输入指令之后显示:
配置好后的效果还是很好的
此时的vim编辑器具备了高亮、自动补齐、自动锁紧、代码自动补齐等功能,并且这个界面也挺好看的
- 参考资料
GitHub - wsdjeg/vim-galore-zh_cn: Vim 从入门到精通
相关文章:

Linux工具的使用——yum和vim的理解和使用
目录 linux工具的使用1.linux软件包管理器yum1.1yum的背景了解关于yum的拓展 1.2yum的使用 2.Linux编辑器-vim使用2.1vim的基本概念2.2vim的基本操作2.3命令模式命令集2.3.1关于光标的命令:2.3.2关于复制粘贴的命令2.3.3关于删除的命令2.3.4关于文本编辑的命令 2.4插…...

websockets库使用(基于Python)
主要参考资料: 【Python】websockets库的介绍及用法: https://blog.csdn.net/qq_53871375/article/details/135920231 python模块websockets,浏览器与服务器之间的双向通信: https://blog.csdn.net/randy521520/article/details/134752051 目录 websocke…...

Electron 主进程与渲染进程、预加载preload.js
在 Electron 中,主要控制两类进程: 主进程 、 渲染进程 。 Electron 应⽤的结构如下图: 如果需要更深入的了解electron进程,可以访问官网 流程模型 文档。 主进程 每个 Electron 应用都有一个单一的主进程,作为应用…...

鸿蒙harmonyos next纯flutter开发环境搭建
公司app是用纯flutter开发的,目前支持android和iOS,后续估计也会支持鸿蒙harmonyos。目前谷歌flutter并没有支持咱们国产手机操作系统鸿蒙harmonyos,于是乎国内有个叫OpenHarmony-SIG的组织,去做了鸿蒙harmonyos适配flutter开发的…...

【学习资源】人在环路的机器学习
说明:本文图片和内容来源 Human-in-the-Loop Machine Learning Human-in-the-Loop Machine Learning Active learning and annotation for human-centered AI by Robert (Munro) Monarch, June 2021 介绍Human-in-the-Loop的目标,学习过程,…...

计算机毕业设计 基于Python的热门微博数据可视化分析系统的设计与实现 Python+Django+Vue 可视化大屏 附源码 讲解 文档
🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…...

031集——文本文件按空格分行——C#学习笔记
如下图,读取每行文本,每行文本再按空格分开读取一个字符串,输出到另一个文本: CAD环境下,代码如下: using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Runtime; using System; using Sys…...

LabVIEW 成绩统计系统
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

SpringBoot技术栈:构建高效古典舞交流平台
第二章 相关技术介绍 2.1Java技术 Java是一种非常常用的编程语言,在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中,Java的身影无处不在,并且拥有旺盛的生命力。Java的跨平台能力十分强大,只需一次编译…...

Docker 容器日志记录与管理:日志输出、轮转与配置实践
Docker 容器化应用的日志管理是运维中的重要环节。容器默认会将标准输出(stdout)和标准错误(stderr)记录到日志文件中,但这些日志文件如果不加管理,可能会无限制地增长,最终导致磁盘空间耗尽。因此,了解如何规范化容器日志管理、配置日志轮转策略以及合理存储位置至关重…...

Django学习笔记一:MVT的示例
Django的MVT(Model-View-Template)架构是一种将应用程序的不同部分分离的方法,旨在提高代码的可维护性和可扩展性。MVT将应用分解为三个主要部分:Model(模型)、View(视图)和Template…...

集合框架01:集合的概念、Collection体系、Collection接口
1.集合的概念 集合是对象的容器,定义了多个对象进行操作的常用方法。可实现数组的功能。 集合和数组的区别: 1.数组长度固定,集合长度不固定; 2.数组可以存储基本类型和引用类型,集合只能存储引用类型; …...

shadcn-vue 快速开始
介绍 基于 Radix Vue 和 Tailwind CSS 构建的可重复使用的组件 一个由社区主导的非官方 Vue 版本的 shadcn/ui。虽然我们与 shadcn 没有正式的合作或联系,但在开始这个项目之前得到了作者本人的同意。创建这个项目的原因是 Vue 生态系统中缺乏类似的项目ÿ…...

智慧管控平台技术解决方案
1. 智慧管控平台概述 智慧管控平台采用先进的AI技术,围绕一个中心和四大应用构建,旨在打造一个智能、共享、高效的智慧运营管理环境,实现绿色节能和业务创新。 2. 平台架构设计 系统整体架构设计包括统一门户管理、IOT平台、大数据、视频云…...

酒店业CRM和酒店数据管理大数据—未来之窗行业应用跨平台架构
一酒店架构图 二、客户数据 三、客户数据源...

滚雪球学Oracle[8.1讲]:高级主题与未来趋势
全文目录: 前言0. 上期回顾1. Oracle数据库中的大数据与分析1.1 Oracle与大数据平台的集成1.2 Oracle Advanced Analytics的使用1.3 Hadoop与Oracle的混合架构设计 2. 机器学习与Oracle数据库2.1 使用Oracle Machine Learning进行预测分析2.2 数据库内置机器学习模型…...

【Matlab绘图】从Excel导入表格并进行三维绘图
前言 今天手头上拿到一份论文的xlsx数据,要求使用MATLAB绘制进行三维图标坐标绘制。那么我们来看看如何使用如下数据进行绘图。 如上数据所示,数据是一个30行25列的数据,数据的内容是论文某项模型模拟的结果,我们希望把横坐标x取…...

IDEA里面的长截图插件
1.我的悲惨经历 兄弟们啊,我太惨了,我刚刚在准备这个继承和多态的学习,写博客的时候想要截图代码,因为这个代码比较大,一张图截取不下来,所以需要长截图,之前使用的qq截图突然间拉胯࿰…...

(15)衰落信道模型作用于信号是相乘还是卷积
文章目录 在使用衰落信道进行通信系统仿真时,有的资料中是用相乘的方法,有的资料中用的是卷积的方法。那么,衰落信道模型作用于传输信号时,是该用相乘还是卷积呢?下面针对该问题给出回答。 在仿真瑞利衰落信道对传输信…...

(C语言贪吃蛇)14.用绝对值方式解决不合理的走位
目录 前言 解决方式 运行效果 总结 前言 我们上节实现了贪吃蛇四方向走位,但是出现了一些不合理的走位,比如说身体节点和头节点重合等等,本节我们便来解决这个问题。 我们希望贪吃蛇撞到自身时游戏会重新开始,并且贪吃蛇的运动方…...

[深度学习]基于YOLO高质量项目源码+模型+GUI界面汇总
以下项目全部是本人亲自编写代码,项目汇总如下: 序号项目名称下载地址1基于yolov8的辣椒缺陷检测系统python源码onnx模型评估指标曲线精美GUI界面.zip点我下载2基于yolov8的海上红外目标系统python源码onnx模型评估指标曲线精美GUI界面.zip点我下载3基于…...

仕考网:公务员国考有三不限岗位吗?
国家公务员考试中的“三不限”岗位,即不限制专业背景、政治面貌、基层工作经验的职位。在国考中,是有的但是数量比较少。 这些岗位主要集中在省级及以下单位,以民航空警和铁路公安为主。其中,有一半的职位是面向四项目人员&#…...

RabbitMq生产者可靠性
基本概念: RabbitMQ生产者可靠性主要涉及确保消息能够可靠地发送到RabbitMQ服务器,并且在出现故障时能够进行适当的处理。 消息确认机制(Publisher Confirms): 启用 Publisher Confirms:生产者在发送消息之…...

Linux Debian12使用Podman安装bwapp靶场环境
一、bwapp简介 bWAPP(buggy Web Application)是一个开源的、故意设计有漏洞的Web应用程序,旨在帮助安全爱好者、开发人员和学生发现和防止Web漏洞。它包含了超过100种不同的漏洞,涵盖了所有主要的已知Web漏洞。 二、bwapp下载 …...

小白快速上手 Docker 02 | Docker 容器生命周期
容器生命周期 下图显示了容器生命周期的简化状态。 CreatedRunningPausedStoppedDeleted 现在让我们逐一讨论容器生命周期的每个状态: 创建状态(Created) 这是容器生命周期的第一个状态,在这个阶段,容器被创建但…...

深刻理解Redis集群(下):Redis 哨兵(Sentinel)模式
背景 现在对3个节点的sentinel进行配置。sentinel的配置文件在redis的安装目录中已经存在,只需要复制到指定的位置即可。 sentinel是独立进程,有对应的脚本来执行。 基于之前的redis 一主二从的架构,我们继续启动3个sentinel进程。 哨兵模式的…...

STM32重启源深度解析
文章目录 STM32重启源深度解析一、STM32重启概述二、硬件层面的重启源1、电源异常电压不稳定:电源供电不足: 2、复位电路故障复位引脚异常:复位电路设计不合理: 3、外部干扰电磁干扰:静电干扰: 三、软件层面…...

windows配置C++编译环境和VScode C++配置(保姆级教程)
1.安装MinGW-w64 MinGW-w64是一个开源的编译器套件,适用于Windows平台,支持32位和64位应用程序的开发。它包含了GCC编译器、GDB调试器以及其他必要的工具,是C开发者在Windows环境下进行开发的重要工具。 我找到了一个下载比较快的链接&#…...

【微信小程序前端开发】入门Day03 —— 页面导航、事件、生命周期、WXS 脚本及自定义组件
1. 页面导航 导航方式 声明式导航:使用<navigator>组件实现页面跳转。 <!-- 导航到tabBar页面 --> <navigator url"/pages/message/message" open-type"switchTab">导航到消息页面</navigator><!-- 导航到非tabBar页…...

【51单片机】点亮LED之经典流水灯
开发环境 开发板:普中51-单核-A2单片机:STC89C52RC(双列直插40引脚 DIP40)Keil uVision5 v9.61 最新版破解方法自行百度,相关文档和视频资料很多,我自己将这一操作记录下来当做博客发布,CSDN以…...