目录
- 1. Linux软件包管理器:yum工具
- 1.1 yum是什么(软件商城)
- 1.2 yum的使用
- 1.3 yum的背景生态
- 2. 项目开发与集成开发环境
- 3. vim编辑器
- 3.1 vim编辑器的常见模式与模式切换
- 3.3 vim编辑器的使用
- 3.3.1 命令模式下的常见命令:
- 3.3.2 vim编辑器的相关配置问题
1. Linux软件包管理器:yum工具
1.1 yum是什么(软件商城)
- 在前面的学习中,我们使用
yum install -y ...
这条指令安装过一些操作系统没有自带的指令(可执行程序),可是,这条指令的安装操作究竟是怎么实现的呢,除此之外,它还能安装其他的资源吗?- 接下来就让我们进行对这条简单指令背后知识的学习。
- Linux操作系统下安装软件的三种方式:
<1> 下载软件的源代码,再对其进行编译,最后得到可执行程序(交叉编译)
<2> 下载网络上已经整合好的对应版本的rpm包,然后进行安装
<3> 通过操作系统自带的预装指令yum/apt,直接进行一条龙式的软件安装(搜索,下载,安装)
注:两者方式操作起来较为复杂,且可能会下载安装到没有安全保障的资源,所以在初学时,我们不推荐这两种安装方式。
- CentOS下的yum预装指令是如何实现软件安装的:
<1> 此条指令的意义为请求操作系统中一个名为yum的软件安装工具进行我们所指定软件的安装。
<2> 这款名为yum的工具软件其实类似于windows操作系统,手机中自带的软件商城,唯一不同的是,Linux操作系统下的软件商城采用的也是命令行的操作方式。
1.2 yum的使用
- 在日常中,我们在使用电脑或手机中的软件商城进行软件的安装之外,会对所需要的软件进行搜索定位,或为浏览软件商城中的软件查找所需,在安装后可能还要进行软件的卸载。浏览,搜索卸载与安装,这四种方式搭配才能满足我们在软件安装时的需求,而这三个操作在yum中也有对应的命令行操作方式。
- 指令:
yum list
指令意义:查看所有软件列表
- 指令:
yum list | grep [要搜索软件(lrzsz)]
指令意义:搜索指定软件(软件罗列与行文本过滤搭配使用达到搜索的目的)
- 指令:
yum remove [软件]
指令意义:进行软件卸载
- 补充:
<1> 在使用上述搜索,安装,卸载等指令时,可能需要管理员权限(sudo提权)
<2> 在使用安装指令时,在安装过程中会存在一些问答,给指令自带的-y
参数选项,会同意默认yes回复。
- 软件信息的浏览:
1.3 yum的背景生态
- 经过上面两部分知识的学习我们已经对yum这款工具软件有了初步的了解,接下来,让我们对它背后知识较深入学习。首先,让我们来看下面几个问题:
<1> 我们下载使用的软件是谁进行开发,维护与提供的
<2> 软件的提供方为什么免费提供这些软件
<3> 我们需要下载的软件资源存放在哪里
<4> 我们搜索软件时,是怎么搜索到软件的,搜索方式是什么
- 让我们带着这些问题,先来了解一下不同Linux操作系统的社区与生态:
<1> 现在的市面上有各种各样免费开发源的操作系统Ubuntu,CentOS,RedHat等等,它们的内核都是Linux,可是,又因为什么使得它们有了区别做了划分。
<2> 当我们需要一个操作系统时,Linux类的各种开源又功能强大的操作系统是我们的首选与优选,可是,Linux操作系统有着众多不同的品牌,我们应该如何选择呢。在选择之前,我们应该去了解哪些信息
<3> 首要的,应该了解这些操作系统间的不同,经过了解得知,这些操作系统的功能偏向与使用场景不同,它们的基座都是Linux,只是上层的资源存在不同,CentOS的常用于企业级开发,Android用于手机移动端的开发,Ubuntu的用户大多数都是学生。
<4> 其次,我们如何判断一个操作系统是否足够稳定,足够优秀,我们去进行调研比对,应该采用哪些标准,为什么使用这些指标进行调研。
<5> Linux系统的调研指标:
版本:软件项目与应用对操作系统的版本有要求
使用人数:基数庞大的使用人群,会充分快速的暴露操作系统中的问题并进行解决
周边软件:周边软件的数量是否足够多,质量是否足够高,有没有能够帮助我们解决问题的软件工具
配套资源:是否有齐备配套的文档,维护人员与软件开发人员是否专业,这标识着这个操作系统是否足够成熟,是否有良好稳定的发展
<6> Linux操作系统的社区:
社区:因为这个操作系统,聚集起来的开发组织,使用人员组成的集体。
<7> Linux操作系统的生态:以Linux操作系统为环境背景下,整个相关链条上事物的运作与发展。
- 经过上面的了解后,我们大概了解了Linux操作系统的社区与生态。那么,再来回答前面的问题就变得不再困难。
<1> Linux操作系统上软件的开发,由负责操作系统开发与维护的人员和有能力有意愿的用户共同完成。
<2> 之所以免费提供这些软件,是因为开发与维护的组织为开源组织,并且软件的开源也可以更好的促进操作系统的良性发展。
<3> 我们下载的软件资源,存在在专门的充当软件仓库的远端服务器,由开发与维护操作系统的组织进行管理。
<4> 通过访问远端软件仓库或者网上搜寻的方式来获得软件资源,yum工具在配置文件中有存放远端仓库的地址与专门的网址。
- 补充:
<1> yum存放下载地址的配置文件路径:/etc/yum.repos.d/
<2> yum源:yum从哪里获得软件资源,即软件资源的来源
<3> 更新yum源:即更新存放下载地址的配置文件,更换为拥有想要下载地址的配置文件
- 更新yum源的指令操作:
<1> 指令1:wget [存放路径] [下载地址]
<2> 指令2:wget -O [存放路径 + 重命名的文件名] [下载地址]
(将下载后的配置文件重命名)
<3> 指令3:make clean
(清空之前yum源留下的缓存)
<4> 指令4:makecache
(缓存现在的yum源)
<5> 阿里云yum源下载地址:http://mirrors.aliyun.com/repo/Centos-7.repo
(Centos-7操作系统)
<6> 镜像文件:从国外网站获取的操作系统相关的开源源代码
- 基础软件源与扩展软件源
<1> Linux操作系统中,会将系统中常用的软件(会进行动态的添加与删除管理)集中放置到一个地方,方便管理与调用。我把这个用来存放这些软件资源的地方称为基础软件源。
<2> 我们可以通过指令,安装一个额外的软件源用来集中存放管理不常用的软件,这种软件源被称为,扩展软件源。
指令:yum install -y epel-release
2. 项目开发与集成开发环境
- 我们平常想要顺利的开发项目,进行代码的编写运行,需要经过编写,编译,调试等步骤去一步步实现。
- 这一过程中,每个步骤所需要的开发工具都是不同的。在C语言的学习我们并没有对这些开发工具进行详细了解,我们通过直接使用集成开发环境方式进行项目的开发。
- 集成开发环境为我们带来便利的同时,它的高度集成也使得我们对程序创建到生成的过程比较陌生,不太利用这方面知识的学习。
- 接下来,在Linux操作系统中项目开发我们将不再使用集成开发环境的方式来进行,而会通过不同的开发工具对整个个开发过程进行相对深入与细致的学习。
3. vim编辑器
- 程序源代码的编写工具(vim编辑器)
3.1 vim编辑器的常见模式与模式切换
- vim编辑器应对不同的编辑需要拥有不同的模式,我们经常会使用的模式有下列几种:
<1> 命令模式(命令模式所有输入都会被当做命令)
<2> 插入模式
<3> 底行模式
<4> 替换模式
- 指令:vim [文件]
指令意义:使用vim编辑器打开文件,当当前目录中没有此文件,创建此文件并打开
- vim编辑器的开启默认模式与模式间的切换:
- 命令模式切换插入模式,不同命令的效果:
<1>i
切换进插入模式,开始位置为当前光标位置
<2>a
切换进插入模式,开始位置为当前光标位置的后一个字符
<3>o
切换进入插入模式,在当前光标所在行的下面创建新的一行,开始位置为新建行的行首
- <1>在我们的使用中,使用vim编辑器打开文件后,可能会发生异常退出的情况,此时我们还未来得及对更新的文件内容进行保存。
<2> 操作系统为了防止内容丢失,会在文件所在目录生成一份保存异常退出时内容的隐藏临时文件(.[文件名].swap
)。
<3>当我们进入再次进入这个文件时,会跳出以下界面。我们可以通过底行提示,使用R + D,恢复内容,删除临时文件,再次进入文件就可以正常登录。
3.3 vim编辑器的使用
3.3.1 命令模式下的常见命令:
- 光标移动命令:(锚点)
<1>shift + 4($)
(光标移动到所在行的最右侧/后侧)
<2>shift + 6(^)
(光标移动到所在行的最左侧/前侧)
<3>shift + g(G)
(光标移动到文件内容的结尾处)
<4>gg
(光标移动到文件的开始位置)
<5>n + shift + g
(光标移动到确定的第n行)
<6>H J K L
(光标向左,下(jump),上(king),右移动,早期键盘没有专门的上下左右键)
- 对文件内容的操作命令:
<1>yy
(复制光标当前所在行)
<2>n + yy
(复制n行的内容)
<3>p
(在光标位置粘贴复制内容)
<4>n + p
(将复制内容粘贴n次)
<5>u
(撤销上一步的操作(undo))
<6>ctrl + R
(撤销,撤销操作)
<7>dd
(删除当前行/剪切当前行,配合粘贴达到剪切的效果)
<8>n + dd
(删除/剪切n行)
<9>shift + (~)
(大写小写互相切换)
<10>r
(替换光标所在字符)
<11>n + r
(替换多个字符)
<12>x
(删除光标所在字符)
<13>n + x
(向后删除n个字符)
<14>n + shift + x
(向前删除n个字符)
<15>w
(以单词为步长向后移动)
<16>b
(以单词为步长向前移动)
补充:
shift + r(R)
(切换到替换模式,此模式下输入均视为替换操作)
- 补充命令:
<1> 当文件处于特殊状态(被查看等)或我们没有权限进行对编辑内容的保存退出
w!
(强制保存),q!
(强制退出)(管理员,sudo提权)
<2> 底行模式下:! + shell命令(command)
(在不退出文件编辑的情况下,执行shell命令)
<3>shift + /(?),输入要搜索的函数名
(在整个文件范围,搜索同名函数)
<4> 底行模式下:vs + 文件名
(可在不关闭当前文件的情况下,分屏打开指定文件)
<5>ctrl + ww
(光标在两个两个文件中跳转)
<6> 底行模式下,set nu
与setnonu
(显示行号,取消行号显示)
<7> shell命令:vim + 文件 + n
(打开文件并跳转到文件的第n行)
<8> 命令模式下:shift + zz(ZZ)
(退出vim编辑器,此种方式不推荐使用)
补充:打开文件时,光标会在上一次关闭文件时光标停留位置
3.3.2 vim编辑器的相关配置问题
- 图示模式与批量化注释/去注释:
<1>ctrl + v
(进入图示模式)
<2>hjkl
(选择区域)
<3>shift + i
(进入插入模式)/d
(将选择区域去掉)
<4>//
(向选择区域添加注释)
<5>Esc
(退出)
- 进行vim编辑器配置的目的
vim编辑器的初始功能模式,对于编写代码开并不方便,但我们可以通过调整vim编辑器的配置,来为我们的编辑添加一些辅助功能设置。(自动补全,语句补全,语法报错,自动缩进等)
- vim编辑器的配置方法:
<1> vim编辑器的配置并不是操作系统全用户共享的
<2> 首先,进入家目录使用ll -a
指令查看是否存在.vimrc
文件,若不存在则创建此文件
<3> 接下来,我们对vim编辑器的配置操作都是在这个文件中执行的,我们不断向这个文件添加我们需要的配置命令来满足我们的需求(set nu
设置行号,"
将配置文件中的内容注释)
- 安装应用已经配置成熟的配置文件:
<1>执行指令:curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
<2> 按步骤进行安装
<3> 安装完成后,执行指令:source ~/.bashrc
- sudo权限的白名单配置
<1> 打开系统文件:/etc/sudoers
(浏览编辑保存,需要管理员权限)
<2> 在文件100行左右处,添加内容用户名 ALL=(ALL) ALL
<3> 强制保存:w!
,强制退出:q!