今天,和大家分享一些与Linux中工具相关的知识。本篇文章包含了如何去安装,有那些值得安装的软件等知识。
Linux的软件安装
在Linux中,我们安装软件的方式,主要有三种。
一是,源代码安装。别人直接把源代码给,让你自己安装。这种方式不推荐,即使是程序员也会十分头疼,刚刚修好一个bug,又报一堆错误。实在没有办法的时候,才选择这种方式,进行安装。
二是,rpm包安装。这种方式,也不推荐。首先,同一款软件有很多的版本,比如1.0,2.0,3.0。我们得通过官网找到适合我们电脑配置版本的软件rpm包。当我们下好一个rpm包后,进行,好的情况,就直接安装好了,可以直接使用了。可大多情况是,在安装时候,它会报错,说需要依赖软件A,才能进行安装。当你安装完软件A的时候,它又说需要安装软件B才能继续安装。我们明明只想安装当前的软件C。可它却需要各种的准备工作,软件A啦,软件B呀。这个称之为依赖关系。软件C的安装依赖软件A和软件B。
三是,yum安装。这种安装方式是比较推荐的。yum安装,本质是一堆的rpm包安装。为什么推荐它?它帮我们解决了安装源的问题,安装版本的问题,安装依赖的问题。它安装的软件,基本上都是适合,我们电脑当前配置的。
总结下来就是这样:
安装软件的前提是,我们得有相应的设备。比如说笔记本,ipad,以及手机。
相信大家,都有见过应用商店应用管家之类的软件吧!
我们在里面下载各种软件。这些并不在应用商店里,而是存在远端的服务器中。远端的服务器中,有抖音,迅雷,微信,QQ等众多软件。
好,现在,我知道远端的服务器有各种各样的软件。可应用商店这个客户端怎么知道去哪里下载?公司和个人组织出于什么目的或动机给我们提供软件服务。
第一个问题去哪下载?前面,提到软件并不在应用商店中。我们可以搜索,是因为它从远端把应用的列表拉了下来。所以,我们可以搜索有什么软件。当下载某个软件时,应用商店这个客户端会通过网络要服务器发出请求。远端服务器收到请求后,会将相应的软件通过网络传输过来。
第二个问题处于什么目的?这个问题很明显,出于赚钱。Windowns的客户主体是小白用户。直接使用操作系统,对于它们有一定的难度。于是,就有公司或个人组织,开发出一些容易上手的软件,供他们使用,然后,从中获取利润。
现在,我们大致了解了应用商店的一个原理。可这和我们今天了解的东西有什么关系呢?
在Linux中,yum,其实也就相当于应用商店。ubuntu中还有apt-get。
我们用的云服务器,就相当于手机这些设备。我这里将应用商店软件画在手机这些设备的方框中,并不是指软直接运行在笔记本的硬件上的。我们平时用的软件是运行在操作系统之上的。大部分的电脑搭载是windowns系统,那这些电脑的软件就是运行在windowns系统上的。而我用的云服务器是模拟centos的,所以,我云服务器中的软件就是运行在centos系统上的。
在了解yum的使用之前,我们再了解一些和Linux生态相关的知识。
Linux的生态
众所周知,Linux它是开源的。开源就是公开的意思。它实际上是一种商业战略。有时也挺贵的。有点奇怪,怎么理解?
作为一个公司的操作系统负责人,你会如何选择一款操作系统啦!当然是生态健康,完整的操作系统啦。那怎么知道一款操作系统是否健康完整。通常会考察下面五点:
首先,这个操作系统,它获取的来源是否足够的多,而且足够的官方,容易获取与硬件相匹配适应的版本。
其二,在我们的选择的时候,它是不是一个非常稳定的版本,是不是一个行业内共识,大家都认为它是一个非常好的软件,且非常稳定。
第三个,看这个操作系统,它有没有非常成熟,活跃的社区。如果有。社区里面各种各样的问题,是否早已经被暴露出来,而且已经有非常成熟的解决方案。
第四个,它的周边文档是否非常丰富。对于你未来调研的新软件,它有没有非常成熟的开发文档。告诉了我们各种各样的场景,及应用。
第五个,操作系统背后有没有非常丰富的软件生态,比如说它有各种各样的软件解决方案,你可以去查网络的查io的,可以去查端口的,可以查我们负载的,查CPU的。你有各种各样的资源来查看,包括有很多其他的服务以及软件配套跟不跟得上。
刚刚我们从使用者的角度出发,下面,我们从提供者的角度出发。
假设你是centos社区的负责人。请告诉我,你会怎么办?答案很显然,你会积极的去推动你的生态变得更完整。那怎么去推动你的生态更完整?你们这个组织就必须买云服务器。然后,花钱推广,告诉他们这是一件很光荣很有使命感的事情。社区里的程序员基数足够大了,就一定有人愿意免费的去帮我们开发出某些软件。写的时候,其中我们就一定会有人看到顶级程序员冒尖,既然有人愿意写操作系统,就一定有人在上层愿意写上层的服务,这样至少我们会有一批,那么企业级的软件一定会诞生。
那么我们的社区是干什么?不就是把人和人合在一起吗?所以最终这些社区一旦足够活跃,我们的社区里说我想写个什么?我想写个查看内存的软件有没有大神,我们可以写一个开源一下。然后,我们共同开发一下。你发起了之后就有人参与,有人参与就有人推动,有人推动就有人完善,最终,这个软件就变得越来越好了。
这样一来,这个软件提供者,他就提供了对应的一整套生态。
有一天,使用者做技术选型,他发现你的生态还可以,然后怎么办?然后,就直接给你说我就用你这个东西了。
好,后来使用的人越来越多,腾讯也开始用你们的这个技术了。
大家一直用着,一直用着。
有一天,提供者说对不起,因为经营不善,我们社区现在混不下去了,为什么?
是因为我们的云服务器使用的人太多了,使用我们整个生态的人太多了,我们的服务器扛不住了,现在我们的社区里面的这些下载的稳定性出现了严重的瓶颈问题。对于这样的问题,我也没办法。所以,我们大家只能忍一忍了。
作为腾讯的技术管理者,你发现你们公司底层用的全都是这个技术。现在,这个社区不稳定了,要是出现什么问题,或者干脆他不干了,那就麻烦大了。
以腾讯为代表的使用者,把别人的免费的东西用的时间久了,对别人的东西产生依赖,并不希望这样的社区这样的生态这样的组织全部都倒掉。于是,他们就问提供者,你们怎么了?
你们服务器是不是扛不住了。
没关系,我们腾讯,免费捐助你一堆的服务器,好,甚至我们给你打钱都可以,对你的开源社区进行捐助。有了腾讯的捐助表率,就会带动更多公司的捐助。社区一定会受到各行各业的各种捐助。在受到捐助之后,那么社区也就能够继续再对它的生态再进行完善,完善的时候,就会影响到人。影响到人,影响上会越来越大时,就会有更多的人愿意给他提供各种捐助。
比如说像SSL社区以前就受过我们国内的一家手机厂商的捐助,它是一个关于网络通信的安全方面的协议,也受到了别人的捐助。
从centos社区中,我们能看到因为开源,它的生态迅速的建立完善起来,吸引大批的用户来使用它。使用它之后,它就可以达到非常强的市场占有率,然后,非常强的市场占有率。人是一定用了你的,就不用我的了,就跟操作系统一样用了我们Linux了,就不用windows了,所以,它就可以达到很好的市场占有率这样的效果。
当年我们对应的Google它为什么要开源自己的,开源安卓操作系统,就是它的一种战略。以此,来对抗美国苹果的 iOS操作系统。好,那么开源有时候也挺贵的,就指的就是你作为使用者,你使用开源的软件。你用了它,用起来舒服,用起来爽。最终你和它形成一种强依赖关系。
依赖关系一旦形成。那么你就特别不希望别人的这款软件出现任何倒闭或者那么停工的这样的情况。当我们有了这个理解之后,再看看,有人帮我写代码了,就是社区里面的那些人帮我们去维护写这批软件。服务器,这个问题更不用操心了。
所以,centos它就可以在自己的平台当中,使用别人已经给我们提供好的服务器,帮我们去那么把软件提前准备好。最后,我们只需要使用,要么直接使用yum下载就行了。
yum的使用
使用,使用。要是使用yum,我们得先有软件需要安装。下面,我们以lrzsz这个软件为例。
lrzsz安装
这个工具用于windowns和Linux系统之间的文件传输。
在安装某个软件前,我们需要先查看搜索是否存在这个软件。使用yum list指令,它会将目前环境所支持的所有软件,一一展示出来。
这些软件数量众多,一一查看,显然很麻烦。我们可以通过grep指令,把没用的信息过滤掉。
通过grep过滤的方式,我们轻易就找到了相应的安装包。这一行信息,从左往右。标红的是软件名,它后后面跟着的数字表示在什么平台下。我用的是云服务器,只能是64的。在后面的就表示软件对应的版本。el7表示centos7。再后面的信息表示该软件从哪里下载的。
下面,我们来安装一下这个软件。
这个软件,我之前已经安装过了。所以,它说Nothing to do。
下面,我们使用remove选项,把这个软件卸载掉。
Complete。我们成功卸载了。我再来看看正常的安装流程,及指令的使用。
我们按照格式使用yum install+软件名,进行软件的安装。
它默认会询问,我们是否需要安装。如果你不想它询问,直接进行安装,则需要加上-y选项。
同理,在卸载的时候,如果你不想它询问你,你就加上-y选项,它就会直接卸载了。
现在,这个软件下好了,那怎么去使用它呢?
如果你想把云服务器的文件,发送到电脑本地。执行指令sz+要发送的文件名。就会弹出下面的界面。
选择想发送到的位置,就可以了。
如果你想把本地电脑的文件,发送到云服务器。可以执行rz -E指令,就会弹出下面的界面。
然后,选择你要发送的文件,就可以了。
除了上面这种方法,还可以直接把想要发送的文件直接拖到云服务器中即可。
到这里,我们已经了解一个软件到卸载的全部指令。
前面,我们只是简单的描述了yum的工作方式与应用商店相同。现在,我们来真真实实的感受一下,yum这个客户端是怎么知道去哪下载的?
yum源(yum安装的软件的源头)被放置在一个路径/etc/yum.repos.d中,我们可以查看一下。
这些文件里面是什么呢?我们可以打开看看。
这文件里面的就是下载链接,是真实存在的。可以到浏览器中打开,打开后,那你就可以看到传说中的yum源了。
到这里,我们也就彻底明白了,yum是怎么知道去哪里下载的了。它里面内置有相应的链接。
凡是在刚刚我们说的路径/etc/yum.repos.d下,Centos开头这些yum源,都叫做官方yum源,官方yum源就说明它是已经被官方认可的。
官方yum里并不是什么软件都有,就好比我们手机里的应用商店,有些软件没有,但我们又想用。于是,就有了epel,扩展源。
像cowsay这个奇怪的软件,yum源中就没有。如果,想要下载。我们得先执行指令,yum install -y epel-release,安装扩展源
无论是yum源还是扩展源都是可以配置的。一般操作系统都是国外的,所以,yum源的默认配置也是国外的。如果你的yum访问过慢,可能用的是国外的yum源,需要重新配置一下。不过,这个问题。用虚拟机的同学才需要考虑,
编辑器vim
我们在windows当中,平时用的 vs2022或者vs2019,它不是一个简单的软件,它是能编写代码、编译代码、调试代码,甚至运行。不仅能写C,还能写C++。你所知道的各种各样的软件,包括Python,它也能写。它的这种软件,我们一般把它叫做集成开发环境,
而今天,我们要谈的vim,它只是一个编辑器,它的核心工作是帮助我们进行,文本编写。
Vim,它是一个多模式的编辑器,它有很多种的模式,我们最常用的模式大概有3~5种。那么今天给大家分享4种最常用的模式。第一种我们叫做命令模式,第二种我们叫做插入模式,还有一种我们叫做底行模式。
下面我们想用它的时候,我们直接vim+文件名,就可以了。
弹出下面这个界面。
看到这个界面,基本就是你已经进入了。我们随便按几个按键,发现大多没有什么反应。为什么会这样?因为我们用vim打开某个文件,一开始处于命令模式,也叫做默认模式。而处在命令模式时,用户所输入的所有内容都会被当成指令,一般不会给你作为文本输入。这与我们在Windowns下形成的思维习惯不同,不是一进来就可以卡卡的往文本里面输内容。
我们需要使用对应的编辑指令来,切换模式。然后,才能进行文本输入。
好,那怎么才能进行文本输入?
我们只需要按一下i字母这个按键,左下角就会显示我们进入INSERT,插入模式。
在这个模式下,我们就可以正常的编写代码了。
那怎么退出呢?把你的目光移动到键盘左上角,看到Esc这个按键没。按下它,就可回到命令模式。
假设现在,我们已经把代码写好了。想要退出,怎么办。同时按下Shift+分号,即可进入底行模式。左下角就会发生下面这样的变化。
然后,我们输入wq表示保存退出。如果,你不想保存,那就只输入q。最后,按下回车键,就会退出vim了。这里还有一种情况,就是如果你保存出了问题,可以w!,强制保存。q!表示强制退出。而wq!表示强制保存退出。
刚开始,你写完了代码想退出vim,进入了底行模式。可突然,你发现代码里又一个很明显的错误,你暂时不想退出了。那我们怎么退出底行模式?和刚刚同样的操作,无脑按Esc按键。
好,到这里。我们已经了解到了由命令模式到底行模式或者插入模式的切换方法。如果我们想由底行模式到插入模式,需要先回到命令模式。当然,也有相应的快捷方式,不过不推荐。
用一张图呈现三者的关系就是这样。
前面,我们简单的了解了切换模式的编辑指令。现在,我们了解一些在编写代码中实用的编辑指令。
在命令模式中,我们可以通过h、j、k、l这四个按键来代替鼠标,进行上下左右的光标移动。这四个按键怎么去记呢?h和l在一个在左,一个在右,就表示向左或向右进行光标移动。j可以和jump联系起来,往下跳,表示向下移动光标。k可以和king联系起来,我要往上成为王,表示想上移动光标。
h、j、k、l这四个键的移动是小幅度移动。下面,我们了解几个大幅度移动的。字母w是在行内间以单词为单位向后移动,字母b是在行内间以单词为单位向前移动。Shift+$定位光标到当前行的末尾,Shift+^定位光标到当前行的开始。Shift+g定位光标到最结尾行,gg定位光标到最开始行。n+Shift+g定位光标到第n行。
我们经常会用到Ctrl+C,Ctrl+V,Ctrl+X,来进行复制粘贴及剪切。到了vim,这些功能键失效了。如果你想复制光标所在的行,按两下y(简略说为yy)就可以了。如果你n+yy,就表示复制以光标所在行开始的下面n行。如果你想剪切光标所在的一行,dd就可以了。n+dd就表示剪切以光标所在行为开始的下面n行。剪切后不粘贴就相当于删除。如果你想粘贴,p就可以了,它会把内容粘贴到光标所在行的下一行。n+p就表示粘贴n个重复的内容到光标所在的下一行。
删除方式,除了dd。我们还可以使用x按键,它可以删除光标后面的字符。n+x就表示删除光标后面的n个字符。
如果我们误操作了,就按u表示撤销。那如果我撤销错了,怎么办?那就Ctrl+r,撤销之前的撤销。
不知道,大家还记不记的,我们在使用vs2022或者vs2019等编译器时,可以同时打开多个窗口,来回切换进行编译。
vim也可以,我们只需要进入底行模式,按照格式vs+文件名。
按下回车,就可以打开打开多个文件了。
光标现在在左边的窗口里,表示现在,我们对text.h这个文件进行编写。那我们如何,将光标切换到右边的窗口呢?Ctrl+ww。
光标就到了,右边的窗口,我们可以对text.c进行编写了。
现在,我们来了解第四种模式,替换模式。切换的方式,我们当前处于命令行模式,Shift+r,就进入了替换模式。进入该模式后,我们就可以输入相应的内容,替换掉从光标开始往后的内容。退出方式,同样是按Esc。如果我们不按Shift键,只按r。就只可以替换掉光标所对应的那个字符。如果你想替换光标开始往后的n个字符,就n+r。如果你只是,字母的大小写搞错了,可以shift+~,转换大小写。如果你想将从光标开始的n个字符,同时转为大写或小写,就n+Shift+~。
讲的编辑指令有点多,我们换个方式呈现。
对于刚下载下来的编辑器vim,它没有自动补齐等众多功能。使用起来很不方便,接下来,我们来对vim做一下配置。
vim的配置
一开始,我们的vim,基本什么都没有。写出来的代码是这样的。
我们可以通过底行模式,输入set nu,回车后,调出行号。
取消行号,就输入set nonu,回车,行号就消失了。
如果我们想每次打开vim的时候,都自动有行号。
可以在自己的家目录下,找到.vimrc这个隐藏文件。
很显然,此时,temp用户的家目录中,并没有这个文件。
没关系,我们可以创建一个.vimrc文件。
我们创建好文件.vimrc后,进入这个文件中写入set nu后保存退出。
从此以后,我们在这个家目录下,使用vim打开文件时,就会默认带行号了。
关于更多vim配置选项。请打开浏览器。
如果你不想花时间自己配置,这里有一套配置好的vim方案。
下面,我来给大家演示一下。
首先,在浏览器打开这个VimForCpp: 快速将vim打造成c++ IDE (gitee.com)
打开之后,往下滑。看到这个位置。
将红色方框里的这串字符全部复制下来。
在确认,复制的内容粘贴出来是一行后。
粘贴到命令行解释中,回车执行。
下载完成后,我们可以手动执行source ~/.bashrc,也可以重启终端。使这个vim配置方案生效。
当vim配置方案生效之后,我们再用vim打开文件,进行写代码时,就会有各种提示信息,及括号补齐等众多辅助功能。
刚刚我们安装的这个vim配置方案。不建议直接用root用户来进行安装,你用那个普通用户账号就在那个账号下进行安装,这样出了问题就不会影响root账号了。
如果你习惯了4个缩进的格式,可以通过我们前面讲的方式进行修改。
首先,我们先找到.vimrc这个文件并打开它。
进入.vimrc这个文件之后,先按下‘/’(斜杠)键,再按二,输入数字2。搜索含有数字2的位置。
把他们都改成4,保存退出。
执行source ~/.bashrc这个指令,让新的vim配置方案生效。
当我们再用vim打开文件,进行代码编写。这时,回车换行的缩进明显变成了4。
好了,到这里,我们本次的分享就到此结束了,不知道我有没有说明白,给予你一点点收获。关于更多和Linux相关的知识,会在后面的文章更新。如果你有所收获,别忘了给我点个赞,这是对我最好的回馈,当然你也可以在评论发表一下你的收获和心得,亦或者指出我的不足之处。如果喜欢我的分享,别忘了给我点关注噢。
标签:有没有,vim,yum,Linux,软件,工具,安装,我们,光标 From: https://blog.51cto.com/u_15933803/9614149