【Linux修炼】5.vim详解【工具篇】

每一个不曾起舞的日子,都是对生命的辜负。

Linux-yum&vim工具的使用

  • 本节目标
  • 1. Linux 软件包管理器 yum
    • 1.1 什么是软件包
    • 1.2 关于rzsz
    • 1.3 查看软件包
    • 1.4 如何安装软件
    • 1.5 如何卸载软件
  • 2. Linux编辑器-vim的使用(重点)
    • 2.1 什么是vim?
    • 2.2 vim的三种模式
      • 2.2.1 命令模式:
      • 2.2.2 插入模式:
      • 2.2.3 底行模式:
      • 2.2.4 三种模式的总结:
    • 2.3 vim的配置
  • 3. sudo权限的配置
    • 3.1 sudo配置的步骤
    • 3.2 以普通用户的身份验证sudo
  • 4. 总结

本节目标

  • 1. 学习yum工具,进行软件安装

  • 2. 掌握vim编辑器的使用,学会vim的简单配置

  • 3. 配置sudo的方法

1. Linux 软件包管理器 yum

1.1 什么是软件包

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

1.2 关于rzsz

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

注意事项

关于 yum 的所有操作必须保证主机(虚拟机)网络畅通!!!(云服务器则不用,因为其自动连接网络)

1.3 查看软件包

通过 yum list 命令可以罗列出当前一共有哪些软件包. 由于包的数目可能非常之多, 这里我们需要使用 grep 命令只筛选出我们关注的包. 例如:

yum list | grep lrzsz

image-20221017122026562

注意事项:

  • 软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.
  • “x86_64” 后缀表示64位系统的安装包, “i686” 后缀表示32位系统安装包. 选择包时要和系统匹配.
  • “el7” 表示操作系统发行版的版本. “el7” 表示的是 centos7/redhat7. “el6” 表示 centos6/redhat6.
  • 最后一列, base 表示的是 “软件源” 的名称, 类似于 “小米应用商店”, “华为应用商店” 这样的概念.

1.4 如何安装软件

对于安装软件我们既可以sudo提升用户权限安装,也可以用root身份安装,安装之后的软件所有用户都是共用的,但我自己的sudo尚未提升权限,因袭这里采用root身份安装

通过 yum, 我们可以通过很简单的一条命令完成 gcc 的安装.(root身份)

yum install lrzsz

yum 会自动找到都有哪些软件包需要下载, 这时候敲 “y” 确认安装.
出现 “complete” 字样, 说明安装完成.

注意事项:

  • 安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成.
  • yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外一个软件, yum会报错.
  • 如果 yum 报错, 请自行百度.

1.5 如何卸载软件

仍然是一条命令:(和安装一样,需要sudo或者root)

yum remove lrzsz

因此,对于yum,我们最主要的就是了解其安装和删除的指令,即:

  • 安装指令:yum install 文件
  • 删除指令:yum remove 文件

2. Linux编辑器-vim的使用(重点)

2.1 什么是vim?

在说vim之前我们首先需要知道什么是vi:

1. vi概述: vi(visual editor)编辑器通常被简称为vi,它是Linux和Unix系统上最基本的文本编辑器,类似于Windows 系统下的notepad(记事本)编辑器。

2. vim编辑器: Vim(Vi improved)是vi编辑器的加强版,比vi更容易使用。vi的命令几乎全部都可以在vim上使用。

3. vim编辑器的安装:

在Linux环境下,通常已经默认安装好了vi或vim文本编辑器,我们只需要通过vim命令就可以使用这个编辑器了:

[root@VM-8-3-centos cfyfile]# touch test1.c
[root@VM-8-3-centos cfyfile]# vim test1.c

创建一个文件,直接通过vim打开:(注:此时先不要打开,不然无法关闭,下面将演示如何退出编辑)

【Linux修炼】5.vim详解【工具篇】_第1张图片

由于我们未对其进行配置,因此打开时是这样,虽然暂时不能对其操作,但可以说明是默认安装好的。

有些精简版的Linux操作系统,默认并没有安装vim编辑器(可能自带的是vi编辑器)。当我们在终端中输入vim命令时,系统会提示"command not found"。

解决办法:有网的前提下,可以使用yum工具对vim编辑器进行安装

#安装vim且询问是否时自动选择yes
yum install vim -y

2.2 vim的三种模式

vim的模式不止三种(一共有12种模式:six BASIC modes和six ADDITIONAL modes.),目前掌握这三种足矣:

  1. 命令模式(正常/普通模式)(Normal mode)
  2. 插入模式(Insert mode)
  3. 末行模式(last line mode)

2.2.1 命令模式:

当我们执行vim编辑器进入文件编辑时,默认的模式就是命令模式,在此模式下,我们不能进行输入操作,由于Linux环境下不支持鼠标的移动,只能通过指定的按键对光标进行移动。除了上下左右四个按键移动光标之外,还有其他移动光标的方式。

  • 光标定位:
  • shift + 4 (也就是$) :直接将光标移动到行的最右面
  • shift + 6(也就是^):直接将光标移动到行的最右面
  • shiift + g(也就是G):直接将光标移动到底部
  • gg(快速按两下g):直接将光标移动到顶部
  • n+shift+g(也就是行号+G):跳转光标到指定行,n代表的是行号(先按数字不放开,在按住shift+g)

光标移动: 我们知道通过上下左右键可以让其对应的移动,但这里还有一种方式让其移动,这种方式在以后的学习中将会用到,因此在这里交代是必要的。

【Linux修炼】5.vim详解【工具篇】_第2张图片

这是年代较为久远的键盘,通过这个我们可以就看出通过这四个键就可以做出相应的移动。

h:向左

j: 向下

k:向上

L:向右

  • 除了光标的移动,此模式下还可以进行文本复制相关的操作:

光标所在行:

yy:复制

p:粘贴 (np:对复制的整行内容进行n行的粘贴)

dd:删除光标所在行(ndd:对光标下面的n行整体删除,ndd+p剪切操作)

  • 文本编辑操作:

文本行的大小写切换:shift + ~ (切换之后光标会自动走向下一个字符)

shift + r(也就是R):批量化替换

r:替换光标所在的一个字符(支持nr的)

行内删除:x 和 X:向前和向后删除(同样支持nx和nX,支持p)

cw:更改光标所在处的字到字尾处。例如:c3w表示更改三个字(同时会切换到插入模式)

  • 撤销操作:

u : 撤销到上一步

ctrl + r:撤销所撤销的行为(即取消u操作)

命令模式的意义: 提高编辑效率。

2.2.2 插入模式:

对于插入模式,实际上就是正常的文本编辑操作,可以正常的在文件中输入信息。

想要切换到插入模式,我们只需要在命令模式的基础上按:i(a、o等都可以)就可以从命令模式切换到插入模式了。

  • 命令模式:【Linux修炼】5.vim详解【工具篇】_第3张图片

  • 插入模式:【Linux修炼】5.vim详解【工具篇】_第4张图片

想从插入模式退回命令模式,按esc键即可。

2.2.3 底行模式:

上述说过,当我们打开vim时,默认的是命令模式,因此其他的模式都必须经过命令模式才能进行切换,对于底行模式来说,在命令模式下输入shift + ;(即:)就可以切换到底行模式了。

【Linux修炼】5.vim详解【工具篇】_第5张图片

在底行模式中,有以下几个功能:

  • 显示行号的切换

显示行号:set nu【Linux修炼】5.vim详解【工具篇】_第6张图片

取消行号:set nonu【Linux修炼】5.vim详解【工具篇】_第7张图片

  • 写入与退出

在这里,就介绍了如何退出和保存文本编辑

保存文件内容:w

离开vim:q (按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。)

保存并离开vim:wq (w、wq同样支持强制操作)

  • 分屏操作

通过vs copy.c就可以新建copy.c并分屏操作两个文本文件了(不过光标只有一个,光标在哪个文件,就对那个文件进行操作)

这里可以通过命令:ctrl +ww就可以实现光标的跨屏操作。

【Linux修炼】5.vim详解【工具篇】_第8张图片

即可以通过上面的指令将test.c的内容复制到copy.c中。

  • 在vim的底行模式中执行shell指令

我们不用退出vim就可以执行命令行,只需要在正常命令的前面加上强制执行即可。

  • 在底行模式执行替换命令(演示将printf替换成cout)

格式:%s/需要替换的/替换后的/g

替换前:【Linux修炼】5.vim详解【工具篇】_第9张图片

替换后:【Linux修炼】5.vim详解【工具篇】_第10张图片

2.2.4 三种模式的总结:

【Linux修炼】5.vim详解【工具篇】_第11张图片

2.3 vim的配置

上述过程中的vim与记事本差别不大,并没有像vs一样的缩进等功能,因此我们就需要配置vim,一般需要创建.vimrc文件,并在.vimrc文件中插入一系列的命令,这一系列的命令就相当于vim的配置文件。对于这样配置,事实上没多少技术含量,只是非常麻烦,会需要很长时间(因为需要配置的命令多)。对于vim的配置问题,用户之间并不会彼此影响,即在同一台机器下,每一个用户的家目录的.vimrc都是独立的,即便是root也不会影响普通用户。

所谓的vim配置,就是修改自己的.vimrc(没有.vimrc就自己在家目录中touch一个)

因此在这里我们只需要在家目录中执行此命令便可以进行一键配置:

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

配置成功之后,我们再次利用vim进入文件:发现通过这样的配置就变成了这样:

【Linux修炼】5.vim详解【工具篇】_第12张图片

对于此配置,默认缩进是两个空格,如果想修改里面配置的参数变成4个空格,我们就可以返回到家目录,打开.vimrc并对相应的位置进行修改:(下面就是通过上面命令自动配置的.vimrc中的内容,400行以上)命令:vim .vimrc【Linux修炼】5.vim详解【工具篇】_第13张图片

接下来通过/2就可以找到配置默认对齐格式的位置:(如下)直接输入/2【Linux修炼】5.vim详解【工具篇】_第14张图片

我们把53/54/55行的2都变成4就可以将缩进的格式从2变成4了:(切换成插入模式再改)

【Linux修炼】5.vim详解【工具篇】_第15张图片

这样保存并退出,就完成了vim的配置了。

3. sudo权限的配置

在之前的文章中,我们都因为没有sudo权限从而必须通过登陆root才能进行root的相关操作,这里将讲解关于提权的配置方法使普通用户通过sudo就可以拥有root的权限。

在配置之前,我们通过sudo命令会出现这样的错误:image-20221022180116219

这是因为cfy用户没有在root的白名单中,因此配置sudo实际上就是将cfy添加到root的白名单中。那么下面进行配置:

3.1 sudo配置的步骤

步骤1: 切换成root用户

因为需要打开root的白名单并将cfy添加到里面,因此我们需要登陆root账号。

步骤2: 查看是否有/etc/sudoers(一定有,这里只是看一下,实际步骤可省略)

步骤3: 通过vim打开已经存在的sudoers(一定有sudoers)并找到相应位置

vim /etc/sudoers

【Linux修炼】5.vim详解【工具篇】_第16张图片

在此位置我们需要添加cfy用户到这里,此时发现只有root和yaozheng两个用户。(root是默认存在的,yaozheng也是和我们描述的一样的步骤添加的)

步骤4: 添加cfy到此位置

image-20221022181136913

通过上面我们学习的vim的三种模式,我们首先在命令模式中yy一下root整行,再p到root下面,然后切换成插入模式将复制的root改成cfy,最后在底行模式下w! 回车,q!回车。(强制修改)就配置完成了!

3.2 以普通用户的身份验证sudo

在3.1标题的前面。我们执行sudo并且失败了,经过配置之后,我们来验证一下:

image-20221022181800849

我们发现,已经可以通过sudo的命令对cfy进行提权操作了,这说明我们配置已经完成。

4. 总结

对于此篇文章,算是对Linux系统工具的第一篇讲解,对于vim来说,虽然我们已经有了VS2019等编译器,但以后也避免不了会使用vim编辑器,因此我们详细讲解了vim的有关知识和相关配置;对于sudo来说,我们也将我们的普通用户变成·了能够提权的用户,因此这篇文章之后,我们就抛弃root用户本身,只使用此普通用户。最后,希望这篇文章能够帮助到你。

你可能感兴趣的:(Linux,linux,vim,服务器)