前言:
我们学习Linux的时候,是有编程语言的基础的,那么呢,我们学习Linux的时候最迫切的就是希望能打印出来一点东西,所以在最开始的几章的时候,我们学会了使用nano,来打印Hello world:
但是使用nano实在是没有vim好,比如我们要快速的定位,快速的删除等,所以本文会着重介绍vim,对于yum,我们一开始就用上了,第一次接触man的时候,我们就是yum install man,安装我们的Linux青春修炼手册,所以我们大致对yum也有了一定的了解,本文的第一个重点就是介绍yum。
那么,就开始吧!
1 yum
1.1 yum是什么?
我们知道,每个手机里面几乎都有一个应用商店,当我们需要某个软件的时候,我们就去该应用商店里面下载,那么下载的软件是你手机本来就有的还是从远端服务器下载的呢?显然是云端服务器,我们最初学习Linux的时候,同样需要相关的软件,比如man 比如tree等,所以我们不难猜测,yum是一个管理软件下载安装的客户端,那么安卓手机下载的时候,可以上云服务器下载,yum呢?
实际上yum是内置了下载链接的,这点放在生态部分介绍,我们现在知道yum是一个软件下载安装的客户端即可。
但是为什么基本上下载都是用的yum,难道没有第二个类似的吗?当然,有安装软件的其他方法,但是Linux中安装软件有可能会有依赖关系,所以需要我们自己操作。
1.2 Centos的生态和yum的本地配置
什么是生态?在高中的生物学中,我们知道生物圈,有消费者,生产者,分解者等,他们共同构成了这个大环境,每个人都在为这个大环境作出自己的贡献,同理,Linux这个开源项目,也有自己的生态,因为它是开源的,几乎所有程序员都得用,那么开源的没有人投资,怎么办呢?
要知道,一个开源项目,如果做的好,每个人都想用的话势必会有人出来维护,但是维护的不是该项目,而是该项目对应的社区,因为开源,面临的所有问题基本都是可以在社区上找到相关的问题,如果一个开源项目的社区维护不好,志同道合的程序员没有办法好好交流,该项目黄掉也是迟早的事,所以项目的好坏,主要看社区,那么我们使用的centos对应的社区,因为需要人维护,所以国内的大厂,比如阿里,在Linux项目上投资了很多,因为要用这个项目,所以得投资以至于这个项目不能跨掉吧。
当有一天你给你的老板说,选择一款操作系统作为我们的基准的话,我一定选择linux,老板问你为什么,你不能说因为我学过吧?你总得列出,Linux相对于其他操作系统的好处。比如社区,比如系统的稳定性,比如有谁参与到了该系统的研发,比如有谁也在用。
那么呢,我们平常安装软件的时候,我们实际上是有3种方法来安装的:源代码安装,rpm安装,yum安装。那我们为什么选择yum而不是选择rpm呢?
首先,源代码安装肯定是不用想的,如果运气好点,拿过来编译,没有问题就万事大吉,如果编译报错那可就真的是头都大了,可能就涉及到库的安装,有依赖关系的软件还没有安装等问题,所以源代码安装是不太推荐的。
其次就是rpm安装,rpm安装实际上也是将软件打包了,但是对于需要的依赖软件还是没有一起打包的,所以用了rpm之后,我们还需要自己安装相关的软件,还是比较麻烦的。
那么相对于上面的两个安装方法呢,yum是很不错的一种工具,它可以帮你安装对应的依赖文件,就这点都可以打败前两个了。
那么yum凭什么知道它去哪里安装呢?
我们知道,Linux最初是国外发行的,所以我们下载对应的软件,我们实际上是对国外进行请求,有的时候呢就可能比较慢,那么怎么办呢?首先是国内的各大厂商,镜像一个国外的官网,比如Centos官网,把对应的软件什么的,打包,放在云服务器上,yum安装的时候,就可以快速的安装了,国内比较有名的是阿里,清华这些,其次是yum会根据/etc/yum.repos.d/该路径下的配置文件打包成自己的下载链接,内置链接默认的是国外的Centos的官网,所以我们需要配置一下,就可以快速访问了。
那么如何修改yum呢?修改yum的本质其实就是修改文件内容,所以我们先看看本地的yum:
这里呢引入base源和Epel源,我们可以理解base为稳定源,Epel为扩展软件源的,上传了一款软件之后,多少人用了多少次,没有出现bug,就可以传到base源了,他们之间的简单关系是这样。
使用指令 vim查看一下:
可以看到博主的是已经配置过腾讯云的了,不同的厂商有不同的情况,如果有人默认的是国外的,可以搜索一下如何配置yum。
1.3 yum的相关操作
好了,现在对yum有了一些基本的理解,我们可以尝试安装卸载一些软件,首先我们尝试安装一下s这个软件:
输入指令之后可以发现列举了很多很多的软件吗,后面的e17就是适应我们这个版本的软件:
我们要找的是这款软件,@epel就是代表它是来自扩展软件源的。然后我们直接安装:
当然了,因为我们这里已经安装过了,所以显示的是already,那么安装成功了我们试试效果:
就是一辆会动的小火车,对应的还有其他好玩的指令,这里不演示了,对应的,删除使用remove即可删除:
2 vim
我们知道,之前写代码的是我们使用的是nano记事本,可是说是要多不方便就有多不方便了,那么Linux提供了两个软件,作用和nano一样,可以查看文件并且编辑,这里因为vi没有vim好,所以我们着重介绍一下vim。
学习vim之前,我们需要了解vim是一款多模式的文本编辑器,分为命令模式,插入模式,底行模式。而它们三者之间是可以连续切换的,怎么切换呢,看这个图:
这是最简单的切换模式,也就是说,我们从命名模式转到插入模式,需要输入i,退回去需要esc,从命令模式到底行模式需要输入shift + ;,也就是英文冒号,退回去同样需要输入esc。
当我们用vim打开文件的时候,默认是命令模式,此时是输入不了任何东西的,只能输入某些命令,所以呢,我们现在先介绍一下命令模式:
1 复制-> n+yy :复制多少行:
2 粘贴->n + p,粘贴多少次:
3 撤销->u,撤销上一次的操作;
4 剪切->n + dd,剪切n行;
5 移动到当前文本行末尾->$
6 移动到当前文本行开头->^
7 将光标移动到该文本的最开头-> gg
8 将光标移动到该文本的末尾->G
9 将光标移动到文本的任意一行 -> n + G
10 左下上右 -> hjkl:
这是因为早期的键盘没有那么多键,所以使用的hjkl代替的。
11 按照单词的单位光标后移->w
12 按照单词的单位光标前移->b
13 切换大小写-> ~
14 删除光标的后面的字符-> n + x
15 删除光标的前面的字符-> n + X
16 替换字符-> n + r,可以替换多个,但是会覆盖到后面的字符
17 文本替换模式-> R
18 保存并退出-> ZZ
这是命令模式汇中常见的命令。
那么插入模式呢,实际上就是编辑模式,没有要特别注意的,接下来是底行模式:
底行模式顾名思义,我们输入英文冒号后,就从命令模式跳到了底行模式,首先,我们要显示行号,就可以在底行模式输入set nu,取消行号就是set nonu:
输入wq是保存且退出,那么w就是write,代表保存的意思,q就是退出。
那么有的时候呢,我们修改系统文件,比如yum的base源的时候,如果我们不是root就不会让我们保存退出,此时我们只要输入wq! ,加一个感叹号,就代表我的意愿强烈,就可以退出去了。
我们平时使用VS2022的时候,创建头文件,是在图形化界面创建的,很是方便,在底行模式中,我们只要输入 vs filename,就可以分屏并且创建文件了:
之后界面就变成了这样。
我们想要进行光标切换就使用ctrl + ww即可,还有其他方法,但是我们平常就ctrl + ww就够用了。
退出的话,光标在哪个窗口,我们退出的就是哪个窗口。
底行模式还有十分bt的玩法,可以直接查找关键字,然后会高亮:
只需要输入 /关键字即可。
这还不是最bt的,底行模式可以直接执行shell命令,也就是说,底行模式可以包括但不限于和shell交互,比如我们可以直接编译:
只需要输入 !command即可,这就意味着我们可以直接在vim里面进行编译。
当我们代码多了,注释也是少不了的,我们应该怎么注释呢?
这是有点复杂的:
ctrl +v,hjkl区域选择,现在选择好了要注释的区域,也可以直接n + G,定位。然后我们进入到插入模式,此时要输入I,然后输入// ,最后输入两下esc,就完成注释了,还是挺复杂的。
去掉注释选择区域的操作是一样的,选择好了输入d,即可。这里的d就是删除,所以只能包含//。
那么vim这样还是有点复杂的,需要同学们自己配置,怎么配置呢,因为存在个人喜好的问题,所以想要配置的可以上网搜索即可。
配置实际上就是修改.vimrc文件,没有该文件自己创建一个即可。为什么要配置呢?因为走指令的时候,实际上也会带依赖性的文件,比如vimrc,配置了vimrc我们用vim的时候才更舒服。
感谢阅读!
版权归原作者 _lazy. 所有, 如有侵权,请联系我们删除。