博客主页:Morning_Yang丶
欢迎关注点赞收藏⭐️留言
本文所属专栏: 【Linux】
作者水平有限,如果发现错误,敬请指正!感谢感谢!
- 在Linux下安装软件, 一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序。
- 但是这样太麻烦了,于是有些人把一些常用的软件提前编译好,做成软件包(可以理解成windows上的安装程序)放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安装。
- 软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系。
- yum (Yellow dog Updater, Modified) 是 Linux 下非常常用的一种包管理器(工具)。主要应用在 Fedora, RedHat, Centos 等发行版上。
Linux 下安装软件的方式:
- 源代码安装
- rpm 包安装
- yum 工具(yum 是一条命令)
总结:
- yum 是什么?
- 我们在 Linux 中下载资源的一种工具,类似于手机上的应用商店。
- yum 可以为我们提供什么服务呢?
- 查找、安装、卸载资源。
- 解决依赖关系。
我们在手机应用商店上面搜索下载软件,本质是在该公司的后端服务器上搜索下载软件。
思考:那么应用商店如何知道该去哪个服务器上下载软件呢?
这个应用商店在本地一定有相关软件的配置信息(比如软件名和其对应的下载链接)。
所以 yum 工具中一定也有配置文件,指明我们应该去哪里下载资源。
sudo yum install -y epel-release
拓展源
有些服务是非标准的,放在其他库,所以需要拓展源
查看软件包:yum list
命令
通过此命令可以罗列出当前一共有哪些软件包。由于包的数目非常之多,一般配合管道(grep 命令)筛选出我们关注的包。
例如:
$ sudo yum list | grep lrzsz
这个指令的含义是:通过管道把yum检索的结果传递给grep,过滤其中包含lrzsz的软件包。
结果如下:
# 软件包的名称和版本
lrzsz.x86_64 0.12.20-36.el7 @os
lrzsz是一个用于文件的上传和下载的工具
注意:
第 1 列:软件包名称,主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构。
“x86_64” 后缀表示64位系统的安装包,“i686” 后缀表示32位系统安装包,选择包时要和系统匹配。
第 2 列:“el7” 表示操作系统发行版的版本,“el7” 表示的是 centos7/redhat7。
第 3 列:表示的是 “软件源” 的名称,即该软件包的发布方,类似于 “微信官网”,“华为应用商店” 这样的概念。
安装软件:yum install
命令
$ sudo yum install -y sl # 一个好玩的东西,可以在屏幕上跑一个小火车,大家可以去试一试
yum 会自动找到都有哪些软件包需要下载,-y 表示直接安装,中途不需要确认。
注意:
- 安装软件时由于需要向系统目录中写入内容,一般需要 sudo 命令或者切到 root 账户下才能完成。
- yum 安装软件只能一个装完了再装另一个。在 yum 安装一个软件的过程中,如果再尝试用 yum 安装另外一个软件,yum 会报错。
卸载软件:yum remove
命令,不是unistall !
$ sudo yum remove -y sl # 卸载sl软件以及它的依赖包
yum search 搜索包含指定关键字的软件包
更新 yum 源:
yum 的配置文件 /etc/yum.conf,这个一般不要去改动。
在 yum 配置路径下,会有 yum 源:
[yzy@VM-4-4-centos day5]$ ls /etc/yum.repos.d/ # 查看yum源
CentOS-Base.repo CentOS-Epel.repo epel.repo epel-testing.repo
# CentOS-Base.repo: yum源,要求软件可靠稳定才能放进yum源中,这里的软件版本迭代比较慢
# CentOS-Epel.repo: 扩展源,比如某个软件新开发的版本,就可以放到epel源中
在 CentOS-Base.repo 文件中可以进行软件源(即软件的下载链接)的配置,当你使用 yum install 安装软件时,就会去对应的服务器上下载软件。
执行
vim /etc/yum.repos.d/CentOS-Base.repo
:
以下命令正确的是:
A.yum makecache命令的功能是将服务器的软件包信息缓存到本地
B.yum search命令可以在所有软件包中搜索包含有指定关键字的软件包
C.yum clean all 命令可以清除缓存中老旧的头文件和软件包
D.yum upgrade命令可以更新所有的rpm软件包
答案解析
yum工具在每次安装指定软件包的时候,都会检测源服务器上的软件包信息,为了便捷不用每次都去搜索软件包信息,因此使用 yum makecache将软件包信息缓存到本地,使用 yum clean all 清理老旧的缓存信息。因此A和C是正确的
yum search 用于在搜索包含有指定关键字的软件包,B也是正确的
D选项:
yum -y update:升级所有包同时,也升级软件和系统内核;
yum -y upgrade:只升级所有包,不升级软件和系统内核,软件和内核保持原样。 所以D选项不完整严谨
正确答案是:A,B,C
功能:这个工具用于本地 windows 机器和远端的 Linux 服务器通过 XShell 传输文件。
安装 rzsz 工具:
$ sudo yum install -y lszrz # lszrz是要安装的软件名称
安装完毕之后可以通过拖拽的方式将文件上传过去。
用法:
rz 命令,上传 windows 中的文件到远端 Linux 服务器中:
$ rz # 运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器,上传到服务器的路径为当前执行rz命令的目录。
sz 命令,将选定的文件发送到本地 windows 机器:
$ sz filename # filename是文件名
我们在 windows 中编写 C/C++ 程序时,常用的 VS,是一个集成开发环境,包含了很多工具包。
而 Linux 下开发,大部分情况下都是使用的一个一个独立的工具。比如编写代码用 vim,编译代码用 gcc,调试代码用 gdb。
为什么使用 vim 呢?因为它是所有 Linux 环境下自带的。
vi / vim 的区别简单点来说,它们都是多模式编辑器,不同的是 vim 是 vi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于 mac os、windows。
vim 的常见三种模式(其实有好多模式,掌握常见这 3 种即可)的功能如下:
正常 / 普通 / 命令模式(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入 Insert mode 模式或者 last line mode 模式下。
插入模式(Insert mode)
只有在 Insert mode 模式下,才可以做文字输入编辑。
底行模式(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。
如果要查看你的所有模式:打开 vim,底行模式直接输入 :help vim-modes
【拓展】
安装vimforcpp插件
在使用vim前,可以安装一个vimforcpp插件,方便写C/C++代码。初学时不了安装和配置可以直接复制下面这段指令到命令行中:
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
常见错误
如果上一次编辑时异常退出了,就会产生这样的警告,这是因为异常退出导致.swp文件没有删除,当进入vim时遇到这样的警告,按"d"将.swp文件删除即可。
刚进入 vim 编辑器时,是处于「正常模式」下的,你要切换到「插入模式」才能够输入文字。
shift + :
」,其实就是输入「 : 」冒号。移、删、复、替、撤、更、跳,这是正常模式常用的七个类型的指令。
移动光标:
删除文字:
这里的删除本质上都是剪切,可以通过p进行粘贴。
复制文字:
替换操作:
字母大小写转换:<