【Linux】软件管理器yum和编辑器vim

在这里插入图片描述
🔥博客主页 小羊失眠啦.
🎥系列专栏《C语言》 《数据结构》 《C++》 《Linux》 《Cpolar》
❤️感谢大家点赞👍收藏⭐评论✍️


在这里插入图片描述

文章目录

一、Linux下安装软件的方案

1.1 源代码安装

源代码安装是我们找到软件的源代码,对源代码进行编译,得到软件包,然后进行安装。优点是可以自定软件包,缺点是源代码安装的操作复杂成本非常高,对用户有着较高的要求。在安装一些组件、动静态库等,可能需要我们通过源代码进行安装。

1.2 rpm安装

rpm安装就是在软件官网下载rpm包,类似于windows中的安装包,下载下来之后直接安装。缺点是不能自己解决依赖,在安装软件的时候,需要做很多的前期准备工作,才能把软件安装好。

1.3 yum安装

yum安装,就是通过yum命令下载指定的远程互联网主机上的rpm包,然后自动进行安装,解决了相互间的依赖关系。yum安装基于rpm安装,也就是在rpm上增加了自动解决依赖的功能。


二、Linux软件包管理器yum

Linux中我们进行工具、指令、程序的安装,卸载等,都需要yum的软件,yumLinux中预装的指令,它相当于手机上的应用商店。

2.1 什么是软件包

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

2.2 关于rzsz

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

  • rz 是将本地Windows中的文件上传到远端的Linux机器上
  • sz 是将远端Linux机器上的文件拿到本地Windows电脑中

2.3 查看软件包

**指令 **:

  • yum list
    

实例

  • yum list | grep lrzsz
    

    通过 yum list 命令可以罗列出当前一共有哪些软件包。 由于包的数目可能非常之多, 这里我们需要使用行文本过滤器 grep 命令配合管道 | 只筛选出我们想要的软件包。 例如:

在这里插入图片描述

各字段含义

  • lrzsz:软件名
  • .x86_64 :表示64位系统的安装包,i686后缀表示32位系统的安装包。选择包时要和系统匹配。
  • 0.12.20-36:表示软件版本
  • el7:表示操作系统发行版的版本,也就是centos7
  • @base:表示的是 “软件源” 的名称, 类似于 “小米应用商店”, “华为应用商店” 这样的概念

2.4 软件安装

指令

  • yum install
    

实例

  • #安装前询问
    yum install lrzsz 
    
  • #安装前不询问
    yum install -y lrzsz   
    

当把软件下载下来,要将对应软件的可执行程序、配置文件等信息拷贝到系统特定的目录下。当我们使用普通用户,没有权限时,是无法完成拷贝的,安装就会失败,所以普通用户在指令前加上sudo,root用户直接使用即可。

2.5 软件卸载

指令

  • yum remove
    

示例

  • yum remove -y lrzsz
    

2.6 yum源问题

当我们要下载软件时,这个软件在哪里,yum是如何得知目标服务器的地址和下载链接的呢?

就好比我们手机的应用商店,它是被安装到手机上的,会有各种配置文件,配置文件中会存有想要下载软件的地址,同样yum内部中也存在有下载链接的路径。

/etc/yum.repos.d/ 路径下,就可以看到当前设备的yum仓库源,如下图:

在这里插入图片描述

其中 centos-Base.repo 是官方认可的yum源,里面就存放的有下载链接,可以通过指令 vim /etc/yum. repos.d/Centos-Base.repo 去查看

  • 首先把此文件重命名(mv)(我们进行配置的时候,不要进行删除文件,而是进行先备份)

    mv CentOS-Base.repo CentOS-Base.repo-bak
    
  • 百度搜索yum国内版本,然后进行操作【这个是阿里云yum源】

    wget http://mirrors.aliyun.com/repo/Centos-7.repo
    
  • 最后依次进行一下操作即可

    mv Centos-7.repo CentOS-Base.repo
    yum clean all
    yum makecache
    yum update
    

最后完成出现complete即可,如果没有扩展yum源的话可以执行这条指令, yum install -y epel-release 进行安装。


三、Linux开发工具-编辑器vim使用

3.1 vim的基本概念

我们先介绍 vim 的三种模式,分别是命令模式(command mode)插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

命令模式
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者进入底行模式

插入模式
只有在插入模式下,才可以做文字输入,按ESC键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。

底行模式
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下输入,shift + ' : '即可进入底行模式。

注意:要查看你的所有模式:打开vim,底行模式直接输入help vim-modes

3.2 vim的基本操作

3.2.1 进入vim

  • vim code.c

    在系统提示符号输入vim加文件名称后,就进入vim全屏幕编辑画面。打开vim默认是命令模式,命令模式下所有的输入都被当成命名,所以我们敲击键盘,屏幕不会显示字符,想要显示字符,我们要切换为插入模式,接下来就让我们看看怎么切换模式。

注意:如果vim后的文件不存在,系统会生成一个新文件并进入编辑画面。

在这里插入图片描述

3.2.2 模式转换:

「命令模式」切换为「插入模式」

从命令模式切换为插入模式,可以输入 aoi ,它们三个的区别在于,进入插入模式后光标的位置不同。

  • 输入 a :进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字

在这里插入图片描述

  • 输入 o :进入插入模式后,是插入新的一行,从行首开始输入文字

    在这里插入图片描述

  • 输入 i :进入插入模式后,是从光标当前位置开始输入文件

在这里插入图片描述

**「插入模式」切换为「命令模式」 **

  • 点击键盘上的Esc键,就可以退回到命令模式。(所有模式退到命令模式都是按Esc)

「命令模式」切换为「底行模式」

  • 点击shift + ; ,其实就是输入
    在这里插入图片描述

在这里插入图片描述

插入模式无法直接进入底行模式, 因为插入模式下所有的输入都会被当成文本输入,没有被解释成命令。

3.2.3 退出vim:

要退出vim要在底行模式下进行,在命令模式下输入下:即可进入底行模式,输入q退出vim。

  • :w :保存当前文件
  • :wq:保存并退出vim
  • :q!:不保存,强制退出vim

3.3 vim正常模式命令集

3.3.1 移动光标

  • $ :移动到光标到所在行的行尾
  • ^ :移动到光标到所在行的行首
  • gg:移动到光标到文本开始
  • G :移动到光标到文本末尾
  • w :光标移动到下个字的开头(可以配合n,一次跳过n个单词)
  • b :光标移动到上个字的开头(可以配合n,一次跳过n个单词)
  • hjkl :以字符为单位,进行左、下、上、右移动

3.3.2 复制粘贴

  • yy:复制光标所在行到缓冲区
  • p :将缓冲区内的字符贴到光标所在行的下一行位置。
  • n+yy:n是任意数字,从光标所在行开始,复制n行
  • n+p:n是任意数字,将缓冲区的的字符粘贴n份

注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

3.3.3 删除文字

  • dd:删除光标所在行
  • n+dd:从光标所在行开始删除n行
  • x :删除光标所在位置的一个字符
  • n+x:删除从光标位置开始的n个字符
  • X :删除光标所在位置的前一个字符
  • n+X:删除从光标位置开始的前n个字符

注意:dd完如果不p的话就是删除,如果p的话就是剪切。

3.3.4 撤销

  • u :回到上一个操作,按多次可以执行多次回复
  • ctrl+r:撤销的恢复

3.3.5 替换

  • shift + ~:快速更换大小写
  • r :替换光标所在字符,点击r后,再点输入待替换的字符
  • n+r:把从光标位置开始的n个字符全部替换成目标字符
  • R :替换光标所到之处的字符,直到按下Esc键停止

3.4 vim底行模式命令集

在使用底行模式之前,请记住先按ESC键确定已经处于命令模式,再按冒号即可进入底行模式。

3.4.1 调出行号

  • set nu:调出行号,在文件每一行前面列出行号
  • set nonu:取消行号

3.4.2 保存退出

  • w :保存
  • w!:强制保存
  • q :退出
  • q!:强制退出
  • wq:保存并退出
  • wq!:强制保存并退出

3.4.3 多文件操作

  • vs 文件名:实现多文件分屏
  • ctrl+w+w:实现光标在分屏多文件之间的切换

注意:光标在哪个界面,我们就在编辑哪一个界面,底行也是一样。

3.4.4 命令执行

  • !command:在底行模式下执行命令

在!后直接跟shell命令就可以执行 。

3.4.5 查找字符

  • / 关键字:先输入 / ,在输入你先更要查找的字符,如果第一次找的不是你想要的,可以一直按n,会继续往后寻找你想要的。
  • ?关键字:先输入 ? ,在输入你先更要查找的字符,如果第一次找的不是你想要的,可以一直按n,会继续往后寻找你想要的。

3.5 vim配置

没有配置的vim,在插入模式下写代码的时候,没有任何语法提醒,也没有自动补全功能,使用起来比较笨重。要实现在写代码的时候给出提示,需要我们自行对vim进行配置。

3.5.1 配置文件的位置

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

3.5.2 vim常用配置选项

#设置行号
set nu  
#语法高亮
syntax on
#底部显示当前处于什么模式
set showmode
#显示行号下划线
set cursorline
#设置缩进的空格数为4
set shiftwidth=4    

在这里插入图片描述

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

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

相关文章

Spring Boot 配置热部署

前言 对于 Spring Boot 项目之中, 在刚开始学习的时候, 每当代码进行变动的时候, 想要生效那就必须要手动重启. 为什么要重启呢 ? 原因在于写的代码是依靠运行之后的 class 文件运行的, 当我们的代码更新以后, 如果不去手动重启, 那么就无法生成新的 class 文件, 执行的就是旧…

蓝桥杯物联网竞赛_STM32L071_11_知识体系的查漏与补缺

太久没学单片机了,再重新过一遍查漏补缺,对其中之前没怎么在意的,而现在又发觉的问题进行再分析与补充 1. debug serial wire是干什么用的 这个东西我勾选不勾选都对我的程序没有什么影响,我很好奇是干什么用的,网上查…

vue3+elementPlus:el-table-column表格列动态设置单元格颜色

:cell-style属性 //html<el-tableempty-text"暂无数据":data"datalist.table":max-height"height"row-key"id"border:cell-style"cellStyle"> <el-table>//js //动态设置单元格颜色 const cellStyle ({ row, c…

Java后台面试相关知识点解析

文章目录 JavaJava中四种引用类型及使用场景集合HashMap源码及扩容策略HashMap死循环问题ConcurrentHashMap与HashtableConCurrentHashMap 1.8 相比 1.7 判断单链表是否有环&#xff0c;并且找出环的入口IO线程池线程池的几种创建方式判断线程是否可以回收线程池的7大核心参数线…

【MySQL】lower_case_table_names作用及使用

知识点&#xff1a; lower_case_table_names 是mysql设置大小写是否敏感的一个参数。 场景&#xff1a;在使用dataease时&#xff0c;连接外部数据库&#xff0c;启动报错&#xff01;后查看官方文档&#xff0c;特别要求改数据库配置文件&#xff1a;lower_case_table_names …

Mybatis从入门到CRUD到分页到日志到Lombok到动态SQL再到缓存

Mybatis 入门 1.导入maven依赖 <dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>x.x.x</version> </dependency>2.配置核心文件 <?xml version"1.0" encoding"U…

【MySQL知识体系】第1章 初始 MySQL

文章目录 第1章 初始 MySQL1.1 MySQL 介绍1.1.1 什么是 MySQL&#xff1f;1.1.2 MySQL 的特点&#xff1f;1.1.3 MySQL 默认端口&#xff1f; 1.2 安装 MySQL1.2.1在MacOS上安装MySQL1.2.2 在Windows上安装MySQL 1.3 如何选择 MySQL 客户端1.3.1 在MacOS上安装Workbench1.3.2 在…

【吊打面试官系列】Java虚拟机JVM篇 - 三道最简单最常问的JVM面试题

大家好&#xff0c;我是锋哥。今天分享三道最简单最常问的JVM面试题&#xff0c;希望对大家有帮助&#xff1b; 一&#xff0c;请问JDK与JVM有什么区别&#xff1f; 简单来说&#xff1a; 1. JVMJava 运行器&#xff1b; 2. JREJVM Java 基础&核心类库&#xff1b; 3. JD…

【贪心算法】专题练习二

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;【LeetCode】winter vacation training 目录 &#x1f449;&#x1f3fb;买卖股票的最佳时机&#x1f449;&…

吴恩达深度学习笔记:神经网络的编程基础2.1-2.3

目录 第一门课&#xff1a;神经网络和深度学习 (Neural Networks and Deep Learning)第二周&#xff1a;神经网络的编程基础 (Basics of Neural Network programming)2.1 二分类(Binary Classification)2.2 逻辑回归(Logistic Regression) 第一门课&#xff1a;神经网络和深度学…

【机器学习】详解正则化思想

我们的生活当中真正有意义或者有价值的部分可以概括为两句话&#xff1a;一句话是&#xff1a;弄清楚某个东西是怎么一回事&#xff0c;另一句话是&#xff0c;弄清楚某个东西是怎么一回事。头一句话&#xff0c;我们弄清楚的那个东西对于我们而言是未知的&#xff0c;但是已经…

【数据结构】二、线性表:4.循环链表的定义及其基本操作(循环单链表,循环双链表的初始化、判空、判断头结点、尾结点、插入、删除)

文章目录 4.循环链表4.1循环单链表4.1.1初始化4.1.2判断单链表是否为空4.1.3判断p结点是否为循环单链表的表尾结点 4.2循环双链表4.2.1初始化4.2.2判断循环链表是否为空4.2.3判断结点p是否为循环双链表的表尾结点4.2.4双链表的插入4.2.5双链表的删除 4.循环链表 4.1循环单链表…

Android自定义横向滑动菜单的实现

本文讲述了Android自定义横向滑动菜单的实现。分享给大家供大家参考&#xff0c;具体如下&#xff1a; 前言 开发安卓过程中&#xff0c;经常会用到标题栏的样式&#xff0c;有时候传统方式不能满足开发者的需要&#xff0c;这时候就需要自定义控件来实现。&#xff08;注意&…

Mac版2024 CleanMyMac X 4.14.6 核心功能详解以及永久下载和激活入口

CleanMyMac 是 macOS 上久负盛名的系统清理工具&#xff0c;2018 年&#xff0c;里程碑式版本 CleanMyMac X 正式发布。不仅仅是命名上的变化&#xff0c;焕然一新的 UI、流畅的动画也让它显得更加精致。新增的系统优化、软件更新等功能&#xff0c;使得在日常使用 macOS 时有了…

短视频矩阵系统----矩阵系统源码搭建(技术门槛?)

短视频矩阵是什么意思&#xff1f;短视频矩阵的含义可以理解为全方位的短视频账号&#xff0c;通过不同的账号实现全方位的品牌展示。实际上是指一个短视频账号&#xff0c;通过不同的链接实现品牌展示&#xff0c;在不同的粉丝流量账号中互相转发同一个品牌&#xff0c;在主账…

为什么电容器放电电阻器现在被强制要求作为基本安全装置

在电子产品中&#xff0c;电容器放电电阻器或泄放电阻器是与高压电源电路的输出并联的电阻器&#xff0c;其明确目的是释放存储在电源滤波电容器中的剩余电荷。 例如&#xff0c;开关模式电源使用桥式整流器将交流市电转换为 320V&#xff08;市电电压为 220/240V&#xff09;或…

【Python学习篇】Python基础入门学习——你好Python(一)

个人名片&#xff1a; &#x1f981;作者简介&#xff1a;学生 &#x1f42f;个人主页&#xff1a;妄北y &#x1f427;个人QQ&#xff1a;2061314755 &#x1f43b;个人邮箱&#xff1a;2061314755qq.com &#x1f989;个人WeChat&#xff1a;Vir2021GKBS &#x1f43c;本文由…

学术神器ChatGPT在论文分析中的妙用!

话语分析是一个广泛的研究领域&#xff0c;它关注的是人们在实际社会交际场景中使用的语言单位。话语分析旨在揭示语言、社会和文化之间的互动关系&#xff0c;以及话诺在构建意义、传递信息、维护社会关系和表达权力等方面的作用。话语分析包括对话分析、批判性话语分析、语篇…

二维码门楼牌管理系统应用场景:促进环境保护与资源管理的创新应用

文章目录 前言一、二维码门楼牌管理系统的概念与特点二、在环境保护领域的应用三、在资源管理领域的应用四、促进可持续发展的作用 前言 在数字化时代的浪潮下&#xff0c;二维码技术凭借其高效、便捷的特点&#xff0c;已经渗透到了我们生活的方方面面。二维码门楼牌管理系统…

大模型笔记:最少到最多提示过程 (Least to Most prompting, LtM)

LEAST-TO-MOST PROMPTING ENABLES COMPLEX REASONING IN LARGE LANGUAGE MODELS 2023 ICLR 1 概述 进一步发展维链提示过程 (CoT prompting) 分为两个阶段&#xff1a; 第一阶段&#xff1a;向语言模型提出查询&#xff0c;将问题分解成子问题。第二阶段&#xff1a;再次向语…