【从零开始学习Linux】一文带你了解yum周边生态及vim常见模式

🚩纸上得来终觉浅, 绝知此事要躬行。
🌟主页:June-Frost
🚀专栏:Linux入门

🔭【从零开始学习Linux】系列均属于Linux入门,主要包含Linux操作系统下的指令、操作、权限以及开发工具,使得拥有基本编写代码的能力。

🔥该文章旨在深入探讨Linux工具,其中包括yum的使用方法和周边生态,以及vim的常见模式和操作方法。

目录:

  • 🔎前言:
  • ⏳包管理工具 yum
    • ✉️使用yum
    • ✉️周边生态问题
  • ⏳文本编辑器 vim
    • ✉️模式
    • ✉️基本操作
    • ✉️一些小tips
  • ❤️ 结语

🔎前言:

  在之前的博客中,我们介绍了Linux操作系统的一些基本指令和权限管理。接下来,我们将深入探讨基础开发工具,这些工具为开发者提供了一个完善且高效的开发环境,帮助用户进行软件编程、代码调试、版本控制等一系列操作。

 yum作为Linux系统的包管理器,能够方便、快捷地安装和管理软件包。而vim作为一款强大的文本编辑器,在Linux开发中扮演着重要的角色,掌握vim的基本操作和命令,能够提高代码编辑的效率。

 通过本文的介绍,希望能让你在软件管理和文本编辑方面有所收获。


⏳包管理工具 yum

 Linux中安装软件的方式大概有三种:

  • 源码编译安装

由于Linux系统的开源特性,与它伴生的有很多开源软件。我们可以把软件的源程序代码编译为可执行的二进制代码,再把二进制代码文件复制到系统指定位置。但是这种方式必须找到正确的源码和版本,而且在编译过程中,会依赖于特定的编译器和库版本。如果系统环境不符合编译所需的最低要求,或者编译器、库的版本不匹配,就可能出现不兼容的情况,为了解决这类问题,可能还需要进行交叉编译,这种方式无疑会很繁琐。

  • RPM包直接安装

 Linux社区的工作者提供了RPM包,里面包含了应用程序本身、其依赖项、配置文件、文档等一系列组件,用户可以将其下载并直接安装。

  • yum

 yum是一个在Fedora、RedHat以及CentOS中的Shell前端软件包管理器,我们可以将其看作应用商店。它基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。Linux系统中也预装了指令yum,可以帮助我们搜索,下载,安装软件


✉️使用yum

  • 命令yum list
  • 功能:列出所有可用的软件包。
  • 说明:它能够查询yum源中的软件包及其详细信息,包括软件包的名称、版本、大小、类型、打包格式等等,以及提供软件包的描述、依赖关系和可选的软件包组列表。

 由于可用的安装包数量很多,所以通常会使用命令grep进行筛选,从而找到我们所关注的安装包 (这种操作类似于在软件商城中搜索软件)。

 有两个因素可以影响一个软件的运行。一个是硬件架构,有些软件需要在特定的cpu下运行,例如上图的软件需要的架构就是x86_64 。另一个是操作系统,在Windows操作系统下编译的可执行程序和在Linxu操作系统下编译的可执行程序是不互通的。

📙yum会根据当前的操作系统版本软件源配置,自动获取并推荐符合当前系统的软件版本

  • 命令yum install [选项] 软件包名
  • 功能下载并安装指定的软件包,并自动处理其依赖关系。
  • 常用选项-y 表示在安装过程中自动应答所有问题(默认情况下,yum需要用户手动确认是否安装依赖包等操作)。

 yum将软件下载后,还会进行安装操作,即需要将可执行程序,配置文件,日志信息等拷贝到系统特定目录下。对于一个普通用户来说,有些目录是没有写权限的,这就会导致安装软件失败,所以一般执行yum install命令时,需要加上sudo或者切换为root身份

📗与安装软件类似,如果要卸载一个软件,可以使用命令yum remove [选项] 软件包名,这个命令也需要sudo或者root身份


✉️周边生态问题

 当我们在自己的Linux机器上使用yum listyum install等指令时,其实是向一个Linux的远端服务器提供了一个申请,这个服务器包含了各种各样的软件,例如treelrzsz等一些列工具,所以也可以对其称之为yum的远端指令仓库。

📗探讨yum的生态问题,可以从硬件和软件层面入手,关注服务器及其软件的提供商及提供的原因。

 如果要选择一款操作系统,通常不只是需要考虑操作系统本身,它们的效率相差不大,更加关注的应该是操作系统的其他因素。例如:

  • 操作系统的版本可以反应出历史涵盖的bug问题。

  • 使用操作系统的用户人数可以反应出社区活跃度,大量用户的使用可以使得系统问题暴露的很充足,相应的,在论坛中也会有很多解决方式。当其他用户或企业在使用该系统时,就拥有了解决问题的渠道。

  • 操作系统的周边配套资源充足程度,文档的全面程度,更新速度等

不同操作系统的侧重点不同,会吸引不同的人群,这就会使得社区的核心资料不同,软件工具不同,这导致整个生态出现了不同的侧重点。例如,CentOS的目标受众是企业和生产环境中的服务器用户,Kali Linux主要面向渗透测试和网络安全领域。

 随着操作系统产生的一系列问题被收集,并不断的被解决,系统会不断优化,这就会使得一些软件开发者,企业等一些收益群体产生依赖,这些群体会更加希望这款操作系统变好,于是就会为其提供服务器以促进发展。一些有能力和资源的人也会成为出力者,为系统提供软件工具。这些做法都会推动系统的发展。

📗生态问题还涉及yum如何获取目标服务器地址和下载链接。这是由于系统里有一些配置文件,即yum的本地仓库源,当使用yum命令安装时,会读取配置文件,对配置文件中的指定链接进行访问。

基础软件源和扩展软件源

 Linux系统的基础软件源和扩展软件源都是存放软件包的地方。基础软件源通常包含操作系统的核心组件和常用工具,而扩展软件源则包含额外的软件包,如特定的应用程序或驱动程序。

  • 基础软件源:这是默认的、自带的软件源,主要用于安装操作系统的核心组件和基本工具。对于衍生发行版如CentOS,其自带的yum源有时内容更新可能比较滞后

  • 扩展软件源:为了弥补基础软件源的不足或增加额外的软件包,用户可以选择添加扩展软件源。例如,epel就是一个常见的扩展源,它提供了许多在标准CentOS源中不可用的应用程序和工具。

 一般来说,新的软件会放入扩展软件源里,如果使用多,够成熟,就会移出一部分放入基础软件源中。这种做法可以保持软件有一定的更新速度,也不会因为有问题的软件被放入基础软件源而出现一系列问题,而且在过渡的过程中可以淘汰一些不好的软件。


⏳文本编辑器 vim

 Vim是一款多模式编辑器,相比于vi,它不仅完全兼容vi的命令,而且在易用性、可定制性和可视化操作方面表现得更加出色。它支持多级撤消,可以无限制地撤消之前的操作,并具有语法加亮功能,可以用不同的颜色来突出显示不同的语法元素。除此之外,vim可以在多个平台上运行,不仅可以在unix和类unix系统中使用,也可以在windows、mac os等其他操作系统中运行(vi只能在unix中运行)。

✉️模式

  Vim有三种最常见的模式,分别为命令模式,插入模式,底行命令模式。

  • 命令模式:这是Vim的默认模式,所有的输入都会被当作命令来处理,在该模式下不能对文件直接进行编辑,但可以对文件进行操作(删除行、复制行、移动光标、粘贴等)

  • 插入模式:在该模式下可以对文件内容进行编辑。

  • 底行模式:可以在底行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等)。

模式之间的转换方式:

 命令模式下可以输入i,o,a 其中一个切换到插入模式。

注意:

  • i 从目前光标当前位置开始输入文字。
  • a 从目前光标所在位置的下一个位置开始输入文字。
  • o 在当前光标所在处的下一行处插入新的一行,从行首开始输入文字。

 在插入模式和底行模式之间,无法直接进行切换,需要先切换到命令模式,再从命令模式进行切换。


✉️基本操作

命令模式下的相关操作

📙光标定位:

  • h 将光标向左移动。
  • j 将光标向下移动。
  • k 将光标向上移动。
  • l 将光标向右移动。
  • $ 将光标定位在当前行的最右侧结尾处。
  • ^ 将光标定位在当前行的最左侧开头处。
  • G 将光标定位到文本结尾处,也可以 [输入数字]+G 将光标定位到指定行。
  • gg 将光标定位到文本最开始。
  • w 按照”单词“向进行行内移动。
  • b 按照”单词“向进行行内移动。

📙文本编辑:

  • yy 复制当前行,也可以 [输入数字] + yy 复制多行,例如,输入3yy命令可以复制当前行及其下面两行的文本。
  • p 在下一行进行粘贴,也可以[输入数字] + p进行多次复制。
  • u 撤销编辑操作。
  • ctrl + r 对撤销进行恢复,例如,当你使用u对一个操作进行撤销后,如果突然”反悔“了,可以使用ctrl + r对撤销进行撤销。
  • dd 删除当前行,同理,该操作也可以使用[输入数字] + dd删除多行。注意,如果使用dd后,再使用 p,该操作就会成为剪切。

📙细力度编辑:

  • ~ 进行大小写快速切换。
  • r 替换当前光标所在字符,可以使用[输入数字] + r对多个字符同时替换。
  • R 切换为替换模式,此时,屏幕左下角会出现“–REPLACE–”字样,在该模式下,输入的字符将替换光标所在位置的字符或连续替换光标及其后边的字符。
  • x 删除光标所在字符,也可以使用[输入数字] + x删除字符,这种是向后删除。
  • X 删除当前光标的前一个字符,可以使用[输入数字] + X进行局部性删除。
  • # 高亮要查找的函数名,使用n进行跳转。
底行模式下的相关操作
  • w 保存文件。
  • q 退出Vim编辑器。

🔭注意:这两个命令可以前面加上!表示强制执行,通常用于在特定情况下快速执行操作,例如当文件被锁定或发生其他异常情况时。在使用强制命令时需要谨慎,它们可能会导致文件内容丢失或其他不可逆的后果。

  • ![命令] 可以在不退出vim的情况下执行Shell命令。
  • vs [文件名] 将创建一个新窗口并加载指定的文件。如果没有这个文件,会自动创建文件(如果没有对这个文件进行任何写入,当底行输入wq时会创建文件,如果只是输入q退出,则不会创建该文件)。ctrl + ww命令可以实现光标在多个终端之间切换,光标在哪个界面,对应就会编辑哪个界面。

✉️一些小tips

📗 ① 批量化注释:

 使用命令ctrl + v进入可视模式,通过hjkl 等命令进行区域选择,再使用 I (shift + i) 命令,输入//之后,点击Esc

 如果要取消注释,可以进入可视模式之后进行区域选择,再使用d命令。

📗② 代码编译错误后,如果直接打开vim修正代码,光标会停留在上次编辑时停留的地方。根据报错时显示的行号,我们可以使用 vim [文件名] [+行数] 快速定位到有问题的区域。

📗③ vim异常退出后的处理方式:

 假设存在一个文件,当使用vim写了一些代码后因为某些原因异常退出了,当再次使用vim打开文件时,会出现以下画面:

 可以先输入R进行恢复,之后用vim打开文件后将再次出现该画面,这时候可以输入D来删除因异常退出而产生的错误文件,此时,该文件之后就可以正常编辑了。

 如果采用直接输入D或直接删除产生的临时文件,这会导致异常产生之前所写的内容直接消失。


❤️ 结语

 文章到这里就结束了,如果对你有帮助,你的点赞将会是我的最大动力,如果大家有什么问题或者不同的见解,欢迎大家的留言~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

15.Docker-Compose的概念理解及安装

1.Docker-Compose是什么? Docker-Compose是实现对Docker容器集群的快速编排的工具软件。它是Docker官方开源的一个工具软件,可以管理多个Docker容器组成一个应用。你需要定义一个YAML格式的配置文件docker-compose.yml.写好多个容器间的调用关系&#x…

佳易王个体诊所管理系统电子处方软件,个体诊所人员服务软件,卫生室配方模板电子病历系统教程

佳易王个体诊所管理系统电子处方软件,个体诊所人员服务软件,卫生室配方模板电子病历系统教程 软件试用版下载可以点击最下方官网卡片 软件功能: 1、配方模板:可以自由添加配方分类,预先设置药品配方,可以…

力扣hot100 最大子数组和 动态规划 分治 无后效性 子问题划分

👨‍🏫 题目地址 无后效性 为了保证计算子问题能够按照顺序、不重复地进行,动态规划要求已经求解的子问题不受后续阶段的影响。这个条件也被叫做「无后效性」。换言之,动态规划对状态空间的遍历构成一张有向无环图,遍…

《许犁庭与柔性世界》第二十五章 藤乃伊

“据说虽然内院被外殿层层环绕,可它们却分属不同系统,是也不是?”台下有人问道。 “没错。就算你天赋异禀,外殿九层一路闯将过去,顺利成为命运师。可若是没收到不忍大师的邀请函,也绝无可能进入内院。” “…

NineData:帮助开发者用好数据和云

导语 :数据库工具是指用于创建、设计、管理、开发、维护和优化数据库的一系列软件工具,包括数据库设计工具、数据库迁移与复制、数据库管理工具、数据安全工具等,这些工具可以帮助数据库管理员和开发人员更高效地管理、使用和开发数据库&…

Lambda表达式与方法引用

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 引子 先来看一个案例 …

技巧-PyCharm中Debug和Run对训练的影响和实验测试

简介 在训练深度学习模型时,使用PyCharm的Debug模式和Run模式对训练模型的耗时会有一些区别。 Debug模式:Debug模式在训练模型时,会对每一行代码进行监视,这使得CPU的利用率相对较高。由于需要逐步执行、断点调试、查看变量值等操…

Python hashlib库解析:数据安全加密必备指南

更多资料获取 📚 个人网站:ipengtao.com 哈希函数在计算机科学中扮演着重要的角色。它是一种能够将任意长度的数据转换成固定长度的唯一值的算法。Python提供了hashlib库,用于生成哈希摘要,提供了常见的哈希算法,如MD…

Prometheus的详细部署

普罗米修斯下载网址: Download | Prometheus 准备两台机器: 192.168.58.152 prometheus 192.168.58.142 node_exporter 关闭防火墙和selinux: [rootlocalhost ~]# setenforce 0 && systemctl stop firewalld[rootlocalhost ~]# seten…

Ubuntu:安装Powershell

Powershell的安装与使用: 1)安装Powershell:在终端依次运行以下命令即可: $ sudo apt-get update $ sudo apt-get install -y wget apt-transport-https software-properties-common $ wget -q "https://packages.microsof…

基于ArcGIS Pro、R、INVEST等多技术融合下生态系统服务权衡与协同动态分析实践应用

生态系统服务是指生态系统所形成的用于维持人类赖以生存和发展的自然环境条件与效用,是人类直接或间接从生态系统中得到的各种惠益。联合国千年生态系统评估(Millennium ecosystem assessment,MA)提出生态系统服务包括供给、调节、…

【Vue】绝了!还有不懂生命周期的?

生命周期 Vue.js 组件生命周期: 生命周期函数(钩子)就是给我们提供了一些特定的时刻,让我们可以在这个周期段内加入自己的代码,做一些需要的事情; 生命周期钩子中的this指向是VM 或 组件实例对象 在JS 中,…

分层理解Java字符串常量池

Java是一门计算机编程语言,但我们脑海中所理解的Java不仅仅是一门语言。它还包括Java虚拟机(JVM)的一系列规定,及具体Java产品(如Hotspot)的实现原理。 不管我们日常在Java中用到的任何一种语法&#xff0…

Ubuntu Linux玩童年小霸王插卡游戏

1.下载安装模拟器 在Windows平台模拟器非常多,而且效果也很优秀,Linux平台的用户常常很羡慕,却因为系统的缘故,无法使用这样的模拟器,但是随着时代的发展,Linux平台也出现了许多优秀的模拟器,现…

选择更灵活的设计工具:SOLIDWORKS 软件网络版与单机版的比较

随着科技的飞速发展,工程设计领域对于高效、灵活的设计工具需求日益增加。SOLIDWORKS 作为一款广受欢迎的三维设计软件,提供了网络版和单机版两种选择。在本文中,我们将深入探讨这两个版本的区别,并为您详细介绍它们的价格差异。 …

基于单片机的烟雾检测报警装置(论文+源码)

1.系统设计 (1)利用传感器实现环境中温度、烟雾浓度的实时检测; (2)系统检测的各项数据信息通过液晶模块进行显示,提高设计可视化; (3)系统可以根据实际情况利用按键模…

20天GMV超过百万美金!桌下迷你跑步机在TikTok Shop美国站热销

上周总GMV达到1.59亿美元,达到历史新高,是美国站自开通以来首次单周出单达到亿级;日均出单1660万美元,单日出单最高达2820万美元; 截至11月19日,GMV Top 5 的商品分类排名依次为:美妆个护、女士…

《深入理解计算机系统》学习笔记 - 第三课 - 位,字节和整型

Lecture 03 Bits,Bytes, and Integer count 位,字节,整型 文章目录 Lecture 03 Bits,Bytes, and Integer count 位,字节,整型运算:加,减,乘,除加法乘法取值范围乘法结果 使用无符号注…

交流负载的功能实现原理

交流负载的功能实现原理主要涉及到电力电子技术、电机控制技术和电力系统保护技术等多个方面。 交流负载的功能实现需要通过电力电子器件进行电能的转换和控制,电力电子器件主要包括开关器件和电力电子变压器等。开关器件主要用于实现电能的通断控制,如晶…

消息队列进阶-1.消息队列的应用场景与选型

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码、Kafka原理🔥如果感觉博主的文章还不错的话,请&#x1f44…
最新文章