• 【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
      
      • 1

    实例

    • yum list | grep lrzsz
      
      • 1

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

    在这里插入图片描述

    各字段含义

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

    2.4 软件安装

    指令

    • yum install
      
      • 1

    实例

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

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

    2.5 软件卸载

    指令

    • yum remove
      
      • 1

    示例

    • yum remove -y lrzsz
      
      • 1

    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
      
      • 1
    • 百度搜索yum国内版本,然后进行操作【这个是阿里云yum源】

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

      mv Centos-7.repo CentOS-Base.repo
      yum clean all
      yum makecache
      yum update
      
      • 1
      • 2
      • 3
      • 4

    最后完成出现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    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

  • 相关阅读:
    Vue组件与Vue-cli脚手架安装
    【ES6】Promise
    paramiko 使用总结(SSH 操作远端机器)
    Linux安装MySQL(超详细)
    【智能优化算法-蝙蝠算法】基于混合粒子群和蝙蝠算法求解单目标优化问题附matlab代码
    Linux与Shell学习--shell系列12--流程控制5(case ... esac循环)
    NX二次开发-UFUN查询对象的类型和子类型UF_OBJ_ask_type_and_subtype
    (02)Cartographer源码无死角解析-(17) SensorBridge→里程计数据处理与TfBridge分析
    【2】c++11新特性(稳定性和兼容性)—>超长整型 long long
    (附源码)spring boot大学毕业设计管理系统 毕业设计 030945
  • 原文地址:https://blog.csdn.net/hsjsiwkwm/article/details/136466576