首先先说明一点:
Centos系统适用于yum
而Ubanto适用于apt-get
一.yum
在Linux中我们也要进行工具/程序/指令的安装,检查和卸载,
而我们安装软件的方式:
1.源代码安装-需要进行交叉编译的工作
一般那些很强的程序员中的大佬才能拿捏
2.rpm包直接安装,也很麻烦
3.yum直接安装
这就需要用到yum了
那么yum是什么呢?
1.yum的快速入门
yum:是我们Linux系统中预装的一个指令,负责搜索,下载,安装对应的软件
就像是手机上的应用商店等等,也是一个软件,
只不过是厂商内置的
而yum就相当于Linux中的应用商店
就像是是我们平常在手机上下载软件都是在应用商店中下载
在Linux中平常下载软件就是在yum中下载
而yum的基本指令是:
sudo yum install 软件/指令/工具的名字 sudo yum install -y 软件/指令/工具的名字:这个-y代表同意安装 否则会询问你是否确定要安装对应的软件/指令/工具 如果我们想要移除一个命令 yum remove command
执行sudo命令需要在sudoers file配置文件中
我们这篇博客中也会介绍使用vim来修改sudoers file文件
大家也可以切换为root用户
这样的话使用yum就不需要用sudo命令了
我这里切换为root来使用yum命令
1.yum安装软件
大家可以先安装一下这个sl指令
yum install -y sl
我这里之前就安装过sl了,所以显示Nothing to do
如果安装成功了,那么执行sl就会显示
一辆火车经过
这里说一下如何安装g++
我们后续会介绍g++编译器的
我这里之前就安装过g++了,所以显示Nothing to do
2.yum卸载软件
下面我们看一下如何使用yum进行卸载呢?
yum remove sl 移除sl命令
移除之后我们执行sl命令,发现无法执行,也就说明我们移除成功了
然后这个时候我就能演示一下安装sl成功的情形了
2.yum的生态环境
几个问题
首先我们先明确一点:
在这里补充一下:
1.操作系统的分化
一款操作系统的好坏不仅仅要看这个操作系统本身,大家在效率上是差不多的,
因此在选择一款操作系统时还要看:
1,操作系统的版本,因为版本问题能够决定操作系统中历史含留的bug问题
2.这款操作系统使用的人数
因为人数多不多就能决定这款操作系统所能暴露出来的问题充不充分
比方说:
人数多了的话,这款操作系统的社区的活跃度就高,问题暴露的就越充分,问题暴露的多,自然而然就会有更多的人去解决问题
而且用的人多,这款操作系统的配套资源就会更加充分,
社区的维护者也会更加专业等等等等
因此Linux商业化操作系统分为了Centos,Ubanto,Kali等等
Centos主要与企业级开发相关
Kali主要与网络安全相关
等等等等
2.四个问题
1.服务器是谁提供的呢?
2.服务器上的软件是谁提供的呢?
3.为什么要提供呢?
这三个问题可以一起解释
不同操作系统/社区所定义的基调不同,生态不同,这也就吸引了不同领域的人们去维护,去使用
使用的人多了,暴露出来的问题就多了,解决的人也多了,并且发布配套资源的人也就多了,这个社区就会变得更加偏向于那个基调/生态
就会吸引更多人去使用,维护,从而形成了一个良性循环
这样不同社区就会有更多的人去使用,去维护
就会有更多人从中受益,既然从中受益,那么自然就更加不希望这个社区出现问题,因此:
那些依赖于这些社区的人:
比如:创业公司,大/中/小型公司就会更加想要这个社区变好
因此他们可以投入金钱,提供对应的服务器
再比如:那些高水平的开发者,开源组织等等就可以提供对应的技术去提供服务器上的软件
他们为什么要去提供呢?
就是为了让自己所在的社区变得更好
从而让自己能够更好的去使用对应的操作系统,并从中受益
这也就形成了一个正向反馈
甚至不同的社区之间会形成"卷"
4.yum是如何得知目标服务器的地址和下载链接呢?
我们使用root,找到/etc/yum.repos.d路径下的Centos-Base.repo文件
然后vim进入(强烈建议大家再看完下面的vim之后在使用vim进入这个文件,否则你不知道该怎么退出来!!!)
然后我们找到这一行
找到对应的yum的目标服务器的地址和下载链接
然后我们打开这个链接
发现我们这个yum的目标服务器的下载链接是有阿里云提供的
这些就是阿里云从国外的镜像源镜像过来了,是为了更好的维护国内的社区
其中,这个Centos-Base.repo文件就是我们所说的yum源
5.软件源
大家可以先执行一下这个指令
sudo yum install -y epel-release • 1
我这里之前已经安装过这个软件了,所以显示nothing to do
然后我们
ls /etc/yum.repos.d
发现有这个epel.repo文件,就说明安装成功
这个epel.repo就是扩展软件源
Linux中的软件源可以分为
1.基础软件源:十分稳定,经过了长期的"考验",已经广泛为人们所接受的软件,比方说我们的Centos-Base.repo
2.扩展软件源:这里面放的是一些新兴的软件,
当这些软件经过了长期的"考验"后,会选出一些很好的软件放入基础软件源中
并且也可以在基础软件源中淘汰一些不太好了的软件
这也就很好地进行了Linux中软件的更新换代
既可以保证基础软件中的软件足够稳定可靠,又可以保证软件的更新换代
也就是说我们平常在下载软件时,基础软件源和扩展软件源都需要去使用
二.vim
1.vim的快速入门
vim是一款多模式的编辑器,vim里面还有很多的子命令.来进行代码的编写操作
vim的模式
vim有三种常见模式:
命令模式,插入模式,底行模式
它们之间切换的按键如下:
使用vim也可以直接创建文件进行编写
刚进入的样子是这样的
此时就是命令模式
然后我们先使用i命令进入编辑模式
此时我们就可以在test.c中写代码了
接着我们使用Esc键回到命令模式
首先我们使用i来进入插入模式
然后我们就能发现:使用i进入插入模式时,光标位置没有任何变化
接着我们使用Esc键回到命令模式
然后使用a进入插入模式
然后我们就能发现:使用a进入插入模式时光标会向右移动一位
接着我们使用Esc键回到命令模式,并将光标复位
然后使用o进入插入模式
然后我们就能发现:使用o进入插入模式时会新起一行,并将光标移动到新起的那一行
一般情况下我们都是使用i进入插入模式
那么当前我的代码写完了,该如何退出呢?
首先:我们先调到命令模式
然后按shift+; 进入底行模式
我们会发现左下角出现了一个冒号
也就是说现在已经进入了底行模式
然后我们输入:wq
然后按下回车键就能保存文件并退出该文件的编辑模式(vim)
2.vim中的快捷键
首先我们先明确两点:
1.插入模式下我们从键盘输入的字符信息都会被当作文本输入到该文件中
就像是Windows中的记事本一样
2.在我们没有对vim进行配置鼠标操作的状态下,在vim中我们是无法使用鼠标的
因为vim中在不进行鼠标操作的配置的状态下,是不好进行操作的
因此vim中拥有很多快捷键可以帮助我们定位光标等等
甚至可以说:当我们很好地熟悉了vim中这些快捷键后,书写代码等等是会比使用鼠标更快的
就像是ctrl+c ctrl+v 碾压了使用鼠标选中后右键进行复制粘贴的操作
ctrl+a 碾压了鼠标去进行全选的操作等等
3.关于vim的手动配置,大家可以看一下这位大佬的博客中的vim基础配置:
【从入门到进阶】vim基础配置+ 常用插件(NERDTree, cscope, rainbow等)
4.关于vim的自动配置,大家可以看一下这位大佬的博客中的那个在gitee中开源的vim自动配置的README.md
那位大佬的博客:vim的自动化配置(一条指令就够了)
该博客中提到的那个gitee的链接:
1.命令模式下的快捷键
1.光标定位指令
其实这里的shift+就是就是就是,也就是shift+4,
只不过如果说shift+4的话:
4在键盘的数字区有,在键盘的F1,F2…键的下方也有,而这里是要按键盘的F1,F2…这些键的下方的数字键
所以这里干脆就说成shift+$符号了
同理这个shift+^也是如此
从#位置按shift+$
然后再按shift+^
shift+g
5 + shift + g
gg:快速按两次g
2.方向键
这是一个很早很早的老式键盘
注意看:这个键盘上面并没有我们独立的↑↓←→方向键
因此把←给到了h键,
↓给到了j键
↑给到了k键
→给到了l键
因此在vim中,我们也可以使用h,j,k,l键来移动光标
那你会说:vim中这么定义有什么用呢?
一方面是历史原因,当时键盘上面还没有独立的↑↓←→方向键
另一方面:就像是打游戏的时候控制角色移动,释放技能等等,当我们完全熟悉了之后
是比居于键盘右侧那狭小的空间当中才能控制方向要高效,舒服很多的
如果我们想要快速在这一行中移动光标呢?
w:按照"单词"在行内进行向右移动
b:按照"单词"在行内进行向前移动
注意:这里的"单词"的识别标准是由vim来定的,而不是指英语中的单词