1.Linux 软件包管理器 yum
centos 7中安装软件的方式:
(1)源码安装
(2)rpm包安装
(3)yum安装
yum安装的好处:
(1)不用编译源码
(2)不用解决软件的依赖关系
例如:我们的Linux操作系统里面没有sl指令,如下图所示
在root用户下使用命令yum install sl。如果在普通用户下,需要使用命令sudo yum install sl,sudo是使用root身份执行该命令(sudo命令现在如果无法使用没关系,后面会讲),如下图所示,进行安装
如果想要卸载sl指令,在root用户下使用命令yum remove sl。如果在普通用户下,需要使用命令sudo yum remove sl,如下图所示,进行卸载
从上面可知,如果我知道要安装什么软件,用yum可以很简单
无论在什么系统下,我们要安装别人的软件,需要经历两步:
第一步:需要别人先把代码给我编译成为可执行程序
第二步:需要有人将编好的软件放在用户能下载的地方(官网、应用软件市场)
Linux也是一样的
常规下载的过程我们举个例子,以应用市场APP为例:
在手机(客户端)上的应用市场APP中我们要下载抖音,点击下载,那么下载的请求就会通过网络发送给公司的应用市场服务器,服务器内部有APP列表,服务器找到抖音软件发送给手机(客户端),在手机上下载好抖音软件并安装就可以使用了
Linux也是一样的,Linux上有专门下载的软件yum(类似于手机上的应用市场APP),有Linux服务器,里面存放有常见的Linux工具软件,Linux机器里面的yum软件会根据你的要求,向Linux服务器发送软件请求,Linux服务器将软件发送给Linux机器,Linux机器进行下载安装
因此yum可以理解为类似于手机上的应用市场APP
在Linux上搜索安装卸载软件:
1.软件搜索:yum list | grep sl
yum list的作用是获取服务器所有的软件名,grep sl是搜索所有名字里面包含sl的软件,yum list | grep sl就得到了所有名字里面有sl的软件,如下图所示,其中第一列就是软件的名字
搜索结果以下图为例,介绍各部分内容
◆ 软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.
◆ "x86_64" 后缀表示64位系统的安装包, "i686" 后缀表示32位系统安装包. 选择包时要和系统匹配.◆ "el7" 表示操作系统发行版的版本. "el7" 表示的是 centos7/redhat7. "el6" 表示 centos6/redhat6.◆ 最后一列, base 表示的是 "软件源" 的名称, 类似于 "小米应用商店", "华为应用商店" 这样的概念2.软件安装:yum install 软件名 / sudo yum install 软件名
如下图所示,因为我们已经安装过sl了,所以下面提示什么也没有做
注:安装的时候可以使用-y选项,系统就不会再问你是否确认安装了
3.软件卸载:yum remove 软件名 / sudo yum remove 软件名
手机上的应用市场APP和Linux上使用的yum下载软件,是怎么知道去哪个服务器下载软件呢?
我们手机上的应用市场APP一定内置了很多下载链接或者网址,Linux也一样。yum在下载的时候会去/etc/yum.repos.d路径下找 Centos-Base.repo yum源。
yum源有很多,我们也可以自己配置yum源,其中yum在找下载链接的时候是在Centos-Base.repo yum这个源里面找的,如下图所示
使用命令nano Centos-Base.repo打开该这个yum源可以看见里面有很多网址,如下图所示
不是所有人的Linux上面的yum源都是国内的链接,如果不是国内的,或者安装软件特别慢,建议更新yum源(更新yum源很简单,自己在网上找教程即可)(注意做任何配置,绝对不要先rm删除,一定是先mv备份)
建议安装两个软件
第一个软件:rzsz工具
这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件。 安装完毕之后可以通过拖拽的方式将文件上传过去查找命令:yum list | grep lrzsz / sudo yum list | grep lrzsz
下载命令:yum install -y lrzsz.x86_64 / sudo yum install -y lrzsz.x86_64
第二个软件:epel-release扩展源
epel-release是一个扩展源,一些软件在正式的官方服务器上没有,epel-release是一个准官方的服务器列表
下载命令:yum install -y epel-release / sudo yum install -y lrzsz.x86_64
2.Linux 编辑器 vim
2.1.vim的引入
vim下载命令:yum install -y vim / sudo yum install -y vim
引入:
在windows下,像vs2019这种编译器是集编写、编译、链接、运行、调试于一体的集成开发环境。在Linux下就不再是集成环境了,Linux下是一个个分散的工具,比如说vim,vim是一个编辑器,只能用来写代码,但是vim本身的功能十分强大,是多模式的编辑器
为什么要学习vim?
vim是Linux上自带的编辑器,有些情况下,我们需要在生产环境(上线环境)下快速定位问题,甚至需要快速修改代码,此时我们就需要使用vim
vi和vim的区别:vi/vim 的区别简单点来说,它们都是多模式编辑器,不同的是 vim 是 vi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window 、 mac os 、windows
2.2.vim的基本概念
我们讲解vim的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下(1)正常/普通/命令模式(Normal mode)控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode(2)插入模式(Insert mode)只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。(3)底行模式(last line mode)文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下 shift+: 即可进入该模式。注:要查看你的所有模式:打开vim,底行模式直接输入:help vim-modes
2.3.vim的基本操作
创建一个文件,用vim指令打开该文件,如下图所示
使用vim命令打开文件,此时的模式叫做命令模式,此时键盘上的很多按键是用不了的,我们进行shift :(shift :其实就是输入冒号,因为单敲冒号键输入的是分号,要输入冒号,必须摁住shift然后敲冒号键)操作,我们发现左下角有一个冒号,这种模式我们称为底行模式
如果我们想退出vim,在底行模式下输入q,如果想保存退出vim,在底行模式下输入wq
在命令模式下,进行 i 操作即可进入插入模式,插入模式下就可以写代码了。命令模式进入插入模式,除了i键还有a键和o键,a、i、o三个键的区别是:
a:光标向右移动一格并进入插入模式
i:光标不移动直接进入插入模式
o:光标向下移动一格并进入插入模式
这里其实我们只需要记住i就可以了
要想退出插入模式,点击Esc就会进入命令模式。任何模式想进入命令模式无脑Esc即可
如果想从底行模式回到命令模式,点击Esc即可
总结:三种模式的转换,快捷键如下图所示
使用vim编辑器写代码,并进行编译运行,如下图所示
2.4.vim正常模式命令集
命令模式下的文本批量化操作:
1.复制行内容
◆ yy:复制当前行 ◆ p:粘贴到当前行的后面
将光标放到要复制的行上输入yy, 输入yy后该行代码就被复制了,然后光标放到要粘贴的前一行位置输入p,整行代码就被粘贴过来了,如果想连续粘贴n次就输入np(例如如果想粘贴5次,就输入5p)
如果想复制连续的n行,光标放在这n行中的第一行,输入nyy(例如如果想复制2行,将光标放在第1行输入3yy)即可,然后光标放到要粘贴的位置输入p,n行代码就被粘贴过来了
2.剪切行内容
◆ dd:剪切(删除)当前行
◆ p:粘贴到当前行的后面
将光标放到要剪切的行上输入dd,输入dd后该行代码就被剪切了,然后光标放到要粘贴的前一行位置输入p,整行代码就被粘贴过来了,如果想连续粘贴n次就输入np(例如如果想粘贴5次,就输入5p)
如果想剪切连续的n行,光标放在这n行中的第一行,输入ndd(例如如果想剪切2行,将光标放在第1行输入3dd)即可,然后光标放到要粘贴的位置输入p,n行代码就被粘贴过来了
注:dd可以当作删除连续的一行或n行来使用
3.撤销操作
◆ u:撤销刚刚的操作
◆ ctrl+r:针对u操作,再次进行撤销
4.快速将光标移动到某一行
◆ shift g(本质上输入是G):光标快速定位到文本末尾
◆ gg:光标快速定位到文本开始
◆ n + shift g:光标快速定位到文本第n行
5.快速将光标移动到文本行的首尾部
◆ shift $(本质上输入是$):光标快速定位到文本行的末尾
◆ shift ^(本质上是^):光标快速定位到文本行的开始
我们称$和^为锚点
6.以单词为单位进行前后光标的移动
◆ w:以单词为单位后移光标
◆ b:以单词为单位前移光标
7.光标上下左右的移动
◆ h:左移光标
◆ j:下移光标
◆ k:上移光标
◆ l:右移光标
建议熟悉hjkl移动光标而不是上下左右键移动光标,因为后面一些组合命令是不支持上下左右键的。选用hjkl移动光标是因为老式键盘的上下左右是复用在这四个键里的,如下图所示。
快速记住hjkl如何对应上下左右:h在最左边所以是左,l在最右边所以是右,k大j小所以k上j下
8.光标处字母大小写变换
◆ shift ~(本质上是~):大小写快速切换
9.字符替换
◆ r + [替换的字符]:将光标处的字符进行替换
◆ n + r + [替换的字符]:将光标及其后n个字符进行替换
◆ shift r(本质上是R):进入replace模式,接下来输入的内容依次覆盖光标及其后面的内容(Esc退出replace模式)
10.删除字符
◆ x:删除光标处的字符
◆ n+x:删除光标及其后n个字符
注:从上面这些文本批量化操作可以看出,vim更适合处理大型项目或文件
2.5.简单vim配置
快速配置:
在gitee网站上搜索vimforcpp,打开下图一所示插件,复制下图二所示这一段命令内容。在shell里登录你的普通用户(不建议在root用户下执行),粘贴命令运行并输入root密码即可安装,如下图三所示。
安装好之后输入source~/.bashrc命令使vim配置生效,如下图四所示,这样我们登录的普通用户的vim就完成了配置(只对该普通用户的vim进行了配置)
注:该方法只支持centos 7