【Linux】软件包管理器 yum 与编辑器 vim 的基本使用

news2024/11/15 21:31:05

文章目录

  • 一、yum 背景知识
    • 1、商业生态
    • 2、开源生态
    • 3、软件生态本土化
  • 二、yum 的基本使用
    • 1、查看软件包
    • 2、安装软件
    • 3、卸载软件
  • 三、vim 的基本使用
    • 1、vim 的基本概念
    • 2、vim 的基本操作
      • 2.1 模式间切换
      • 2.2 光标定位
      • 2.3 文本复制
      • 2.4 文本编辑
      • 2.5 底行模式的操作
  • 四、简单 vim 配置
    • 2、简单 vim 配置
    • 3、一键 vim 配置
  • 五、配置 sudo 权限

一、yum 背景知识

1、商业生态

我们在安装一个软件之前,需要先下载对应的软件包,但是这个软件包并不存在于我们本地的计算机磁盘,而是存在于远端服务器上;那么计算机如何知道该软件存在于具体的哪一台服务器上呢?

对于电脑来说,我们一般通过搜索对应软件的官网来得到相应软件包;对于手机来说,表面上我们通过手机自带的应用商店来下载软件包,但实际上应用商店里面并不存在软件包,而只是存在着对应软件官网的链接,最后我们的软件包还是从官网上下载的;

其次,这些软件包是由谁提供的呢?答案很明显,它们是由一些企业、组织或个人提供的;这些企业、组织以及个人为了某种利益编写出了软件包,然后将其放在了对应的服务器上。

自此,一条简单的商业生态链就出来了 – 一部分人编写出了软件包供其他人使用,并通过收费或者内置广告等方式从中获取利益;同时,它们也向手机厂商支付费用,使得自己的软件能够在对应手机的应用商店或者第三方的下载工具 (比如迅雷、应用宝) 中被下载使用。

2、开源生态

有人编写软件是为了赚钱,自然也有的人不为赚钱,他们可能是为了提高技术与获得成就感、也可能是为了提高自己的知名度、又异或是无聊等等原因;总之,有的人会将自己编写出的软件包的源代码公开,让别人能够免费随意使用,这种就叫开源;

在托瓦兹编写出了Linux操作系统并开源之后,世界上有很多人参与到了Linux的完善与扩展中来,其中也不乏为Linux免费编写软件的人;这些人会加入相应的Linux社区,然后将自己编写的软件放在社区对应的服务器上;而不同的社区会在自己的Linux版本中内置服务器和软件对应的下载链接,而这个用于存放下载链接的软件就是yum

yum (Yellow dog Updater, Modified) 是Linux下非常常用的一种包管理器;主要应用在 Fedora, RedHat,Centos 等发行版上;软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系。

上面的过程也是开源生态的形成过程 – 不同的Linux发行版创建对应的Linux社区,社区拥有一个公共账户,用于接受来自世界各地的捐款,然后用账户里面的资金购买服务器、举行各种活动等等;来自世界各地的具有开源精神的人将自己编写的开源软件部署在社区的服务器上;社区再将这些软件的下载链接拷贝到对于Linux发行版的软件包管理器 (比如yum) 中,使得我们能够在Linux中通过软件包管理器安装使用各种软件。

3、软件生态本土化

由于西方在计算机方面起步与发展比我国要早很多,所以我们上面所说的开源生态最先在西方形成,即大多数Linux社区,包括社区对应的服务器都是部署在国外的;所以在国内通过链接下载软件时访问会比较慢,再加上我国的一些特殊国情,有时候还会访问失败;

针对上面这种情况,我国的一些高校以及公司就 镜像了国外的软件服务,即把国外服务器上的软件拷贝到了国内自己公司的服务器上,使得我们可以直接访问国内的服务器来下载软件;

但是只拷贝软件还不行,因为 yum 中下载软件时默认访问的链接还是国外的,所以这些高校/公司还提供了一套国内的下载链接配置文件 – yum 源配置文件

在Linux中,yum 源配置文件是存在于 /etc/yum.repos.d/ 目录下的 CentOS-Base.repo 文件:image-20221022183303532

如果你使用的是云服务器,那么 yum 源一般都是配置好的,如果你使用的是虚拟机,你需要打开 CentOS-Base.repo 查看里面的链接是否是国内的链接,如果不是,就需要自己手动配置,配置的方法网上很多,直接搜索对应的Linux发行版即可;image-20221022182100949

image-20221022182231376


二、yum 的基本使用

1、查看软件包

我们可以通过 yum list 命令罗列出当前一共有哪些软件包;但由于包的数目非常之多, 所以我们一般使用 grep 命令来筛选出我们关注的包;如:image-20221022184139736

注意事项

  • 软件包名称构成:主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构;
  • “x86_64” 后缀表示64位系统的安装包,“i686” 后缀表示32位系统安装包,选择包时要和系统匹配;
  • “el7” 表示操作系统发行版的版本: “el7” 表示的是 centos7/redhat7,“el6” 表示 centos6/redhat6;
  • 最后一列中 base 表示的是 “软件源” 的名称, 类似于 “小米应用商店”, “华为应用商店” 这样的概念;

注:rzsz 工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件,安装完毕之后我们可以通过拖拽或者命令的方式将文件上传过去。

2、安装软件

我们可以通过如下命令来安装软件包 (其中 -y 代表不询问直接安装):

yum install -y 软件名

image-20221022185454445

有一些软件并没有被纳入 Centos、Ubuntu、Kail等相关生态平台的官方软件集合中,如果我们想使用这些软件,需要安装 非官方软件集合列表 – epel-realseimage-20221022183624866

注意事项

  • 安装软件时由于需要向系统目录中写入内容,一般需要 sudo 或者切到 root 账户下才能完成;
  • yum安装软件只能一个装完了再装另一个;正在yum安装一个软件的过程中,如果再尝试用yum安装另外一个软件,yum会报错;
  • 软件和软件之间是有关联的,即具有一定的耦合度; yum 为了解决软件之间相互依赖的问题,有时候在安装一个软件会连带安装其他一些软件。

3、卸载软件

卸载软件的指令如下 (其中 -y 代表不询问直接卸载):

yum remove -y 软件名

image-20221022190220279

注意:关于 yum 的所有操作必须保证主机 (虚拟机) 网络畅通;可以通过 ping 指令验证网络:image-20221022191209930


三、vim 的基本使用

1、vim 的基本概念

Vim 被誉为世界上最强大的编辑器,是一个类似于 Vi 的著名的功能强大、高度可定制的 文本编辑器,在Vi的基础上改进和增加了很多特性;vi/vim 都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面,例如语法加亮、可视化操作;其不仅可以在终端运行,也可以运行于x window、 mac os、windows。

vim 一共有12中模式,我们目前掌握其中三种模式即可,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

  • 正常/普通/命令模式 (Normal mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段以及进入Insert mode下,或者到 last line mode;

  • 插入模式 (Insert mode)

只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式,该模式是我们后面用的最频繁的编辑模式;

  • 底行模式 (last line mode)

文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作,在命令模式下,输入 : 即可进入该模式;

我们可以在底行模式下输入 “help vim-modes” 来查看 vim 的所有模式。

2、vim 的基本操作

2.1 模式间切换

我们使用 vim 打开一个文件时默认处于命令模式,然后我们可以通过如下指令切换到其他模式:

  • [命令模式]切换至[插入模式]:输入 i/a/o;其中使用 i 进入时光标处于第一个字符之前,使用 a 进入时光标处于第一个字符之后,使用 o 进入时光标处于第一行之后空白行的行首;
  • [命令模式]切换至[末行模式]:「shift + ;」, 其实就是输入「:」;
  • [其他模式]切换至[命令模式]:[Esc];
  • 退出 vim:在底行模式下输入 wq,其中 w 是保存的意思,q 是退出的意思,我们也可以不保存直接退出;

image-20221022230230199

注意:从其他任意模式切换到命令模式都是 [Esc],只是有的只需要按一次,有的需要按多次,总之无脑 [Esc] 最终一定可以回到命令模式。

2.2 光标定位

  • $ – 将光标移动到行尾;
  • ^ – 将光标移动到行首;
  • G – 将光标移动到文件末尾;
  • gg – 将光标移动到文件开头;
  • n + G – 将光标移动到第 n 行;
  • h j k l 将光标向 左 下 上 右 移动;

2.3 文本复制

  • yy – 复制当前行 (nyy:从当前行开始向下复制n行);
  • p – 粘贴一次 (np:粘贴n次);
  • dd – 删除当前行 (ndd:从当前行开始向下删除n行);
  • u – 撤销操作 (后退一步);
  • ctrl + r:取消撤销操作 (前进一步);

注意:vim 下的所有删除操作都相当于 Windows 下的剪切操作;

2.4 文本编辑

  • ~ – 切换光标所在字符的大小写 (长按~:从光标所在字符开始往后切换所有字符的大小写,直到遇到行尾);
  • rx – 将光标所在字符替换为x字符 (nrx:将光标所在字符开始往后的n个字符都替换为x字符);
  • R – 批量化替换,即切换为替换模式,用键盘输入的字符替换光标所在字符,且替换之后光标自动后移,等待替换下一个字符;我们最后需要输入 [Esc] 从替换模式切回命令模式;
  • x – 删除光标所在字符 (nx:删除光标所在字符开始往后的n个字符);
  • X – 删除光标所在字符的前一个字符 (nX:删除删除光标所在字符的前n个字符);
  • w – 将光标跳转到下一个字的第一个字符处 (nw:将光标跳转到下n个字的第一个字符处);
  • cw – 更改光标所在处的字到字尾处,和 R 一样,此命令会让我们跳转到插入模式 (cnw:更改n个字);

2.5 底行模式的操作

上述操作全部都是在命令模式下进行的,除了命令模式,我们常用的还有插入模式和底行模式,而插入模式基本没有什么快捷操作,所以下面我们最后来学习一些底行模式的基本操作;

  • set nu – 设置行号 (set nonu:取消行号);
  • vs – 分屏 (注意:无论我们分几个屏,光标只有一个,它代表我们正在对哪个屏幕进行操作);
  • ctrl + ww – 切换光标到不同屏幕 (注:此指令在命令模式下执行);
  • wq – 报存退出,w 代表保存,q 代表退出,二者可以分开单独执行;
  • wq! – 强制保存并强制退出,w! 代表强制保存,q! 代表强制退出,二者可以分开单独执行;
  • %s/mark1/mark2/g – 将文本中所有的 mark1 替换为 mark2 (s 代表替换,g 代表全局);
  • !指令 – 在不退出 vim 的情况下执行Linux中的各种指令;

注:上面的这些指令除了 ctrl + ww 之外,其余指令执行的前提都是当前处于底行模式下,即它们前面都需要先输入一个 : 号;

最后,推荐两篇大佬写的有关 vim 学习的文章:简明 Vim 练级攻略 | 酷 壳 - CoolShell GitHub - Vim 从入门到精通


四、简单 vim 配置

## 1、什么是 vim 配置

在目录 /etc/ 下面,我们可以找到有一个名为 vimrc 的文件,这是系统中公共的vim配置文件,对所有用户都有效image-20221023203506184

image-20221023204326557

系统默认的vim全局配置文件对vim进行了一些基本配置,比如语法高亮、背景颜色等等,但是还是有许多不方便的地方,比如没有自动缩进、没有括号补齐、没有行号显示等等;

所以我们要对 vim 进行一些其他的基本配置,使得我们能够在便捷的在vim中编写C/C++程序;特别注意:虽然Linux中的所有用户使用的都是同一个vim程序,但是大家使用的是不同的vim配置,因为每个用户的家目录下都会有一个属于自己的 .vimrc 文件,这个文件中保存的就是专属于这个用户的 vim 配置image-20221023205429420

2、简单 vim 配置

我们可以在网上搜索,从而进行一些vim的基本配置,比如

  • 设置语法高亮: syntax on;
  • 显示行号: set nu;
  • 设置缩进的空格数为4: set shiftwidth=4;

image-20221023205834491

image-20221023205901658

image-20221023205954783

3、一键 vim 配置

由于 vim 的配置选项杂而多,因此我们想要配置出一个便捷好用的 vim 是要花费很多的时间的;所以我在 Gitee 上找了一个 vim 一键配置的方法 – VimForCpp: 快速将vim打造成c++ IDE (gitee.com)image-20221023210454269

大家只需要在你的用户目录下输入下面这条指令即可完成一键 vim 配置:

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

image-20221023210847311

然后我们输入 “source ~/.bashrc” 或者重启终端即可使 vim 配置失效:image-20221023211212970

vim 后的 vim 如下:image-20221023211455914

可以看到,配置完成后的 vim 不仅会显示当前模式、文件名、字符个数,还支持自动缩进、自动补齐 (语法、括号、引号等等),具体的更多细节大家可以阅读该项目的 README.md 文件 – VimForCpp: 快速将vim打造成c++ IDE (gitee.com)

但是这里存在一个小问题:此处的自动缩进默认是两个字符,而我们编写C/C++程序时一般都要求缩进四个字符,所以我们需要打开 .vimrc 文件对默认缩进进行修改:image-20221023212041164

image-20221023212131293

image-20221023212216909

至此,我们的 vim 一键配置就完成了。(注:安装 vimforcpp 时产生的各种隐藏文件,比如 .VimForCpp .vim 一定不能删;产生的非隐藏文件 – install.sh 可以删除,但是也建议不要删)image-20221023212739537


五、配置 sudo 权限

在学习 文件权限 的时候我们提到可以用 sudo 指令来对普通用户进行提权,从而使得普通用户可以以root用户的身份去执行指令,但是前提是该用户必须是受信任的用户,即该用户必须处于 sudoers 文件中;image-20221023213338252

image-20221023213422979

学习了 vim 的使用之后,我们就可以在 root 下将自己添加进 sudoers 文件中了:image-20221023213750863

image-20221023213940202

image-20221023214140992

现在,我们就可以在普通用户下使用 sudo 对指令进行提权了:image-20221023214448488


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1709.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot+SpringCloud+Nutty打造分布式在线消息推送服务(实例)

文章目录前言技术架构效果图后端项目消息数据定义存储结构消息状态Nutty消息服务项目结构改动消息bean消息处理器消息转换pojo工具审核消息处理controller实现类服务调用前端连接代码初始化接受消息消息的展示效果总结前言 其实关于这个的话,我先前的几篇博文&…

css选择器

碎碎念:都是一些自己在学习过程中的一点体会,如果有什么不对的感谢大家指正一起学习! css选择器一、常用选择器二、属性选择器三、其他五、栗子1. * 通配符2. 空格 div p3. > 子选择器4. ~ 通用兄弟选择器5. 相邻兄弟选择器6. , 选择器分…

使用 Vercel 快速部署前端项目

Vercel:一键部署前端项目。 前端项目部署的问题 先来说下前端项目的部署,一般来说有以下几个步骤: 项目打包上传到服务器域名解析SSL 证书申请Nginx 配置CDN 加速 如果是公司的项目,打包之后的步骤一般有专门的运维人员负责&am…

C++:多态

文章目录一、多态的概念二、多态的定义及实现2.1 多态的构成条件2.2 虚函数2.3 虚函数的重写(覆盖)2.4 override 和 final2.5 重载、覆盖(重写)、隐藏(重定义)的对比三、抽象类四、继承和多态常见的面试问题1.2.总结一、多态的概念 多态按字面的意思就是多种形态。当类之间存在…

瞪羚优化算法(Gazelle Optimization Algorithm,GOA)

瞪羚优化算法(Gazelle Optimization Algorithm,GOA)由Agushaka等人于2022年提出,该算法模拟了瞪羚逃避捕食者的行为,思路新颖,性能高效。 瞪羚的身高60-110厘米,体重13-29千克。该属物种有像小鹿…

【Linux】基本指令(上)

​🌠 作者:阿亮joy. 🎆专栏:《学会Linux》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉操作系统&…

Linux - 第2节 - Linux环境基础开发工具使用

1.Linux 软件包管理器 yum centos 7中安装软件的方式: (1)源码安装 (2)rpm包安装 (3)yum安装 yum安装的好处: (1)不用编译源码 (2)不用…

赶紧进来看看---C语言实现学生信息管理系统(2.0动态内存版)

本文介绍了将学生信息管理系统静态版本改造为动态内存版本,主要涉及改造思路,枚举类型的使用,动态内存函数和柔性数组的使用,动手写程序才能使基础知识更为牢固…(文章最后有源码展示) 学生信息管理系统1.0静态版->学生信息管理系统2.0动态内存版 c语言实现学生信息管理系统…

在python中使用ggplot2

python的ggplot2库:plotnine > 一.安装方法: pip install plotnine使用的编译器:pycharm 二.plotnine绘图 1.第一个图形 除了导包的操作不一致,其他类似 from plotnine import ggplot, geom_point, aes, stat_smooth, facet_wrap fr…

70.【JavaScript 6.0】

前端三要素1.前端三要素2.引入JavaScript3.JavaScript基本语法入门4.数据类型5.严格检查模式( use strict)6.Map和Set7.函数的定义和参数获取8.变量的作用域(局部 全局)-------> 和Java一样9.全局规范:10.方法的定义和调用11.内部对象1.Date--------->日期2.JSON--------…

自定义mybatis插件实现sql日志打印

自定义mybatis插件实现sql日志打印 mysql插件实现原理 官网的关键信息 参考文档 https://mybatis.org/mybatis-3/zh/configuration.html#plugins 官方文档 MyBatis 允许你在映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方…

【JavaSE】一篇文章领悟Java运算符

前言: 作者简介:爱吃大白菜1132 人生格言:纸上得来终觉浅,绝知此事要躬行 如果文章知识点有错误的地方不吝赐教,和大家一起学习,一起进步! 如果觉得博主文章还不错的话,希望三连支持&#xff01…

Java项目:超市管理系统(java+SSM+JSP+LayUI+jQ+Mysql)

源码获取:俺的博客首页 "资源" 里下载! 项目介绍 本项目分为超级管理员、总经理、店长、员工等角色,超级管理员可添加修改删除角色并进行角色菜单配置; 超级管理员角色包含以下功能: 商品管理:添…

C语言高级-4栈

14天阅读挑战赛 目录 一、栈的原理 1、栈的定义 2、栈的应用 (1)选课问题 (2)旅游:怎么样把每个城市去且仅去一遍? (3)栈的使用场景 (4)思考&#xf…

C++多态之虚函数表详解及代码示例

引言 C相对其他面向对象语言来说,之所以灵活、高效。很大程度的占比在于其多态技术和模板技术。C虚函数表是支撑C多态的重要技术,它是C动态绑定技术的核心。 如果对多态还不了解的小伙伴,可以点这里C多态详解基础篇。 在不考虑继承的情况下…

Vue3 Hooks 模块化抽离

Vue3中的Hooks 其实就是业务逻辑的抽离,跟Vue2中mixin 本质上是一样的:将当前组件的业务逻辑抽离到一个公共的文件中,提高逻辑复用性,让当前组件看起来更加清爽,不太一样的地方是我们封装hooks 的时候一般是返回一个函…

如何不改动 GatewayWorker 依赖包下自定义协议

前言: GatewayWorker 是 Workerman 的一个框架,对应用层开发者更友好。GatewayWorker 多了一个网关,也就是 Gateway,负责与客户端连接,消息转发等。而自定义的协议,也就是 gateway 面向客户端提供服务的协议…

java毕业设计——基于java+JDBC+sqlserver的物业管理系统设计与实现(毕业论文+程序源码)——物业管理系统

基于javaJDBCsqlserver的物业管理系统设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于javaJDBCsqlserver的物业管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。 文章目录: 基于javaJDB…

【H5微信授权】简单实现H5页面微信授权功能,微信开发者工具报错 系统错误,错误码-1,undefined解决办法【详细】

前言 最近写到了H5公众号,需要微信授权的功能。 这里记录一下授权的流程和踩了个坑 图片 授权代码执行后会跳转到授权的地方,没有授权的会有确认授权,授权过得会这样,直接自动登录,然后再跳转到中转页 授权流程 …

204 - 205.表的基本用法

表的基本操作 1.基本概念 1.1数据库和表的关系 每个数据库包含N张表,及表示在库中 1.2 表(二维表) 行和列组成,可以将复杂的数据保存在简单的表中 表中的每一行就是一条完整的记录 表中的列用于保存每条记录中特点的信息 2.…