【Linux】--- 详解Linux软件包管理器yum和编辑器vim

目录

  • 一、Linux软件包管理器 - yum
    • 1.1 yum和软件包是什么
    • 1.2 Linux系统(Centos)的生态
    • 1.3 yum相关操作
    • 1.4 yum本地配置
  • 二、Linux编辑器 - vim使用
    • 2.1 vim的基本概念
    • 2.2 vim命令模式命令集
    • 2.3 vim末行模式命令集
    • 2.4 关于vim的几个相关问题

一、Linux软件包管理器 - yum

1.1 yum和软件包是什么

yum是一个软件下载安装管理的一个客户端,如类似的小米应用商店,华为应用商城…。Linux中软件包可能会有依赖关系(如我们安装游戏时,除了游戏的可执行程序,可能还安装了一堆的动态库,配置文件等等,都与游戏放在了一起,这些都是由厂商打包好的)— yum会帮我们解决依赖关系的问题(即当我们需要安装A软件时,可能依赖B软件,还依赖C动态库,那么yum会帮我们一并下载)。

那什么是软件包呢?

  • Linux下安装软件, 一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序 。
  • 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安装。
  • 软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系。
  • yum(Yellow dog Updater, Modified)Linux下非常常用的一种包管理器.。主要应用在Fedora, RedHat, Centos等发行版上。

那么软件包是谁给的呢? 便有了下面这个问题

1.2 Linux系统(Centos)的生态

三种安装方式:源代码安装,rpm包安装,yum安装:

源代码安装: 一些软件是开源的,我们可以直接下载源代码,并在我们自己的环境下编译,安装。但此方法十分麻烦,因为编译环境的不同,所以在我们这不一定能编过。 出现编译报错,那就还要解决交叉编译的问题,还有就是软件间的依赖关系。

rpm包安装: 那么将一份源代码在不同的环境编译好,就形成了rpm安装包。 我们只需获取与我们编译环境相同的安装包即可。但rpm包安装并没有很好的解决软件间的依赖关系,有时安装的一个软件可能还缺少某种库。

yum安装: rpm包安装的基础上,解决好依赖关系便形成了yum安装。一些程序员会把项目在不同环境下编好,形成对应的安装包放在服务器的系统上,我们只需要yum install XXX来安装即可。那么它怎么知道要到哪台服务器上去找呢?所以我们的机器内部,一定内置了目标服务器的地址链接! 所以我们使用yum install XXX来安装软件时,我们的系统总是能找到目标服务器,搜索并找到要下载的软件,然后下载到本地并安装。

这些yum源被放在了此路径下:/etc/yum.respos.d/下,使用ls查看:

在这里插入图片描述

1.3 yum相关操作

搜索: yum list | grep XXX,通过 yum list命令可以罗列出当前一共有哪些软件包。由于包的数目可能非常之多,这里我们需要使用 grep命令只筛选出我们关注的包。如下:

在这里插入图片描述

注意事项:

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

安装: (sudo提权/root身份)执行yum install [-y] XXX

注意事项:

  • 安装软件时由于需要向系统目录中写入内容,一般需要 sudo或者切到root账户下才能完成。
  • yum安装软件只能一个装完了再装另一个。正在yum安装一个软件的过程中,如果再尝试用yum安装另外一个软件,yum会报错。
  • 如果 yum 报错,请自行百度。

卸载: (sudo提权/root身份)执行yum remove [-y] XXX


base,为基本软件源,里面是很稳定的软件;为了不断的在base中扩容,就产生了 epel,为扩展软件源,里面大多是新的软件,里面软件可能不太稳定或未经过长时间检测。一旦一些软件已经很稳定或被用了很长时间,就可以将这些epel中软件选择到base中。扩展软件源安装:yum -y install -y epel-release

1.4 yum本地配置

配置将来是在干什么?

  1. yum会根据/etc/yum.repos.d/该路径下面的配置文件,来构成自己的下载链接(根据OS版本,根据你要下载的软件),yum帮我们下载,安装。
  2. 一般的机器,内置的链接地址是CentOS的官网,软件链接都指向的是国外的。yum可能会比较慢,所以需要我们配置。

那要如何配置呢?本质就是更改文件,或者更改文件内容。 以阿里云为例(阿里云官方镜像站:https://developer.aliyun.com/mirror/):

  1. 先备份
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  2. 下载新的CentOS-Base.repoetc/yum-repos.d/
    wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  3. 清除缓存,生成缓存,升级更新
    yum clean allyum makecacheyum -y update

二、Linux编辑器 - vim使用

2.1 vim的基本概念

这里介绍vim的三种模式(其实有好多模式,其余请自行了解),分别是命令模式(command mode),插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

  • 正常/普通/命令模式(Normal mode)
    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。即允许使用者通过命令,来进行文本的的编辑控制。
  • 插入模式(Insert mode)
    只有在Insert mode下,才可以做文字输入,在命令模式下,按a / i / o都可进入该模式,i:是从光标当前位置开始输入文件,o:是插入新的一行,从行首开始输入文字,a:是从目前光标所在位置的下一个位置开始输入文字。按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式,即文本的编辑模式。
  • 末行模式(last line mode)
    文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift + ; -> :即可进入该模式,同样按「ESC」键可回到命令行模式。 该模式主要用来让vim进行包括但不限于与shell的交互。

如果我们在vim中编写代码时,vim会为我们维护临时文件,来应对vim退出时没有保存的内容,形成临时文件,保障数据的安全。但下次每当我们vim打开文件时,都会跳出提示,那么如何去点提示呢?

  1. 写代码时,文件是打开的,但没有对文件内容做任何修改(即文件是最新的),此时断网将不影响,下次仍然正常打开,不会跳出提示;
  2. 若将文件编辑了一下,此时断网或断开Xshell,然后再打开文件时会有提示,我们可以先shift + r -> R恢复文件,进入文件然后正常保存并退出,最后再删除vim维护的临时文件(.开头,需要ls -la查看)即可
  3. 同情况2,在恢复文件后我们再次打开,直接shift + d -> D删除即可。

2.2 vim命令模式命令集

  • 移动光标:
    vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格
    「 $ 」:移动到光标所在行的“行尾”
    「^」:移动到光标所在行的“行首”
    「w」:光标跳到下个字的开头
    「e」:光标跳到下个字的字尾
    「b」:光标回到上个字的开头
    「#l」:光标移到该行的第#个位置,如:5l,56l
    [gg]:进入到文本开始
    [shift+g]:进入文本末端
    「ctrl」+「b」:屏幕往“后”移动一页
    「ctrl」+「f」:屏幕往“前”移动一页
    「ctrl」+「u」:屏幕往“后”移动半页
    「ctrl」+「d」:屏幕往“前”移动半页

  • 删除文字:
    「x」:每按一次,删除光标所在位置的一个字符
    「#x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
    「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
    「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
    「dd」:删除光标所在行
    「#dd」:从光标所在行开始删除#行

  • 复制:
    「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
    「#yw」:复制#个字到缓冲区
    「yy」:复制光标所在行到缓冲区。
    「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
    「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

  • 替换:
    「r」:替换光标所在处的字符。
    「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

  • 撤销上一次操作:
    「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。
    「ctrl + r」: 撤销的恢复

  • 更改:
    「cw」:更改光标所在处的字到字尾处
    「c#w」:例如,「c3w」表示更改3个字

  • 跳至指定的行:
    「ctrl」+「g」:列出光标所在行的行号。
    「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

2.3 vim末行模式命令集

  • 列出行号:
    「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。跳到文件中的某一行
    「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,
    再回车,就会跳到文章的第15行。

  • 查找字符:
    「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。
    「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。问题:/和 ?查找有和区别?/会将光标置于搜索到的所有关键字的第一个,而?会将光标置于搜索到的所有关键字的最后一个!

  • 保存文件:
    「w」: 在冒号输入字母「w」就可以将文件保存起来离开vim
    「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。
    「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。
    「!」:表示强制执行

  • 其他:
    「! command」:表示不退出vim,可以进行shell命令的执行,常用作函数的查看(man)。
    「vs filename」:表示分屏,多文件操作。
    「Ctrl + ww」:多文件操作时,转换光标位置(切屏)。

2.4 关于vim的几个相关问题

  1. vim中如何批量化注释和批量化去注释?

具体操作:Ctrl + v进入视图模式,->h,j,k,l进行区域选择,->//注释,->Esc退出。如此便完成了批量化注释。去注释:Ctrl + v进入视图模式,->h,j,k,l进行区域选择,注意要包含//,->再按d便完成了去注释操作。

  1. 普通用户无法进行sudo提权,要如何操作?即如何在sudoers配置文件中添加自己?

此配置文件存在于路径/etc/sudoers下,使用vim打开并修改内容(注:要用超级用户账户root打开),具体操作如下:

在这里插入图片描述

在这里插入图片描述

  1. vim的配置问题

原理: vim不是简单直接执行可执行程序就行,也会先读取若干配置文件(名为.vimrc的文件)。 那么我们便可在此文件中添加指令或链接,来完善编译环境(如:自动缩进,自动补齐,显示行号等等)。如:在文件.vimrc添加set nu,那么再用vim打开文件写代码时,便会显示行号。其余操作还请自行搜索

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

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

相关文章

hbuilder 发布为微信小程序

发布为微信小程序: 申请微信小程序AppID,参考:微信教程。在HBuilderX中顶部菜单依次点击 "发行" > "小程序-微信",输入小程序名称和appid点击发行即可在 unpackage/dist/build/mp-weixin 生成微信小程序项…

Debezium发布历史149

原文地址: https://debezium.io/blog/2023/06/21/debezium-2-3-final-released/ 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯. Debezium 2.3.0.Final Released June 21, 2023 by Chris Cranford re…

计网 - 深入理解HTTPS:加密技术的背后

文章目录 Pre发展历史Http VS HttpsHTTPS 解决了 HTTP 的哪些问题HTTPS是如何解决上述三个风险的混合加密摘要算法 数字签名数字证书 Pre PKI - 数字签名与数字证书 PKI - 借助Nginx 实现Https 服务端单向认证、服务端客户端双向认证 发展历史 HTTP(超文本传输协…

jQuery瀑布流画廊,瀑布流动态加载

jQuery瀑布流画廊&#xff0c;瀑布流动态加载 效果展示 手机布局 jQuery瀑布流动态加载 HTML代码片段 <!-- mediabanner --><div class"mediabanner"><img src"img/mediabanner.jpg" class"bg"/><div class"text&qu…

字符串(算法竞赛)--Manacher(马拉车)算法

1、B站视频链接&#xff1a;F05 Manacher(马拉车)_哔哩哔哩_bilibili 题目链接&#xff1a;【模板】manacher - 洛谷 ​ #include <bits/stdc.h> using namespace std; const int N3e7; char a[N],s[N]; int d[N];//回文半径函数void get_d(char*s,int n){d[1]1;for(int…

Vue+SpringBoot打造校园二手交易系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 二手商品档案管理模块2.3 商品预约管理模块2.4 商品预定管理模块2.5 商品留言板管理模块2.6 商品资讯管理模块 三、实体类设计3.1 用户表3.2 二手商品表3.3 商品预约表3.4 商品预定表3.5 留言表3.6 资讯…

Docker 第十九章 : 阿里云个人镜像仓使用

Docker 第十九章 : 阿里云个人镜像仓使用 本章知识点: 如何创建镜像库,如何设置密码,如何登录与退出个人镜像仓,如何本地打镜像,如何将本地镜像推送到个人镜像库。 背景 在项目YapiDocker部署中,因读取mongo:latest 版本不一致,导致后续执行步骤的异常。遇到此场景…

Elasticsearch安装需编译的版本分词器,出现的编译问题

一般来说&#xff0c;网上很多教程在讲如何安装es的ik分词器&#xff0c;包括项目文档也有提及&#xff1a;​​​​​​Releases medcl/elasticsearch-analysis-ik GitHub 如果是对应版本作者已经编译好的还比较容易安装&#xff0c;如下图&#xff1a; 但如果是只有源代码…

【数据结构-字符串 五】【字符串转换】字符串转为整数

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【字符串转换】&#xff0c;使用【字符串】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c;筛选条件为&…

提高自定义词汇的 RAG 性能

每日推荐一篇专注于解决实际问题的外文,精准翻译并深入解读其要点,助力读者培养实际问题解决和代码动手的能力。 欢迎关注公众号(NLP Research),及时查看最新内容 原文标题:Improve RAG performance on custom vocabulary 原文地址:https://medium.com/datadriveninve…

Qt RGB三色灯上位机

今天突发奇想做一个Qt RGB三色灯上位机&#xff0c;刚好手上有一个RGB三色灯和arduion开发板。 我是想实现一个颜色选择器界面然后鼠标点击颜色区域就可以发出rgb的值&#xff0c;然后把这个值通过串口线发送给arduion,arduion再解析出数据发送给RGB三色灯。 实现界面如下&…

【图片公式识别】图片公式转Word与LaTeX文档:智能识别与转换

前言 嘿&#xff0c;大家好呀&#xff01;&#x1f44b; 谁都知道&#xff0c;写 Word 文档里的公式可不是一件简单的事情&#xff01;你辛辛苦苦在键盘上敲出的数学公式&#xff0c;结果随着 Word 版本的更新&#xff0c;竟然变成了一张图片&#xff01;&#x1f624; 这简直就…

智慧城市与数字孪生:共创未来城市新篇章

一、引言 随着科技的飞速发展&#xff0c;智慧城市与数字孪生已成为现代城市建设的核心议题。智慧城市注重利用先进的信息通信技术&#xff0c;提升城市治理水平&#xff0c;改善市民生活品质。而数字孪生则通过建立物理城市与数字模型之间的连接&#xff0c;为城市管理、规划…

【杂谈】还能这么骗Github开源者?

起因 StarkNet给Github前5000的账户空投了一波STRK代币,一般有资格获得空投的开发者&#xff0c;大概能获得 110个 STRK 代币&#xff0c;按目前价格计算大概 1500人民币左右。 什么是有资格的开发者呢&#xff1f;按 Starknet要求&#xff0c;如果你给在 GitHub上排名前 5000…

动态规划课堂1-----斐波那契数列模型

目录 动态规划的概念&#xff1a; 动态规划的解法流程&#xff1a; 题目: 第 N 个泰波那契数 解法&#xff08;动态规划&#xff09; 代码&#xff1a; 优化&#xff1a; 题目&#xff1a;最小花费爬楼梯 解法&#xff08;动态规划&#xff09; 解法1&#xff1a; 解…

【深度学习】Pytorch 教程(十一):PyTorch数据结构:4、张量操作(2):索引和切片操作

文章目录 一、前言二、实验环境三、PyTorch数据结构1、Tensor&#xff08;张量&#xff09;1. 维度&#xff08;Dimensions&#xff09;2. 数据类型&#xff08;Data Types&#xff09;3. GPU加速&#xff08;GPU Acceleration&#xff09; 2、张量的数学运算1. 向量运算2. 矩阵…

现在学Oracle是49年入国军么?

今天周末&#xff0c;不聊技术&#xff0c;聊聊大家说的最多的一个话题 先说明一下&#xff0c;防止挨喷&#x1f606; 本人并不是职业dba&#xff0c;对数据库就是爱好&#xff0c;偶尔兼职&#xff0c;以下仅个人观点分析&#xff0c;如有不同观点请轻喷&#xff0c;哈哈&…

U盘乱码与文件丢失:恢复指南与预防策略

U盘乱码文件丢失是一种常见的技术问题&#xff0c;通常表现为存储在U盘中的文件名显示为不可识别的字符或文件无法正常打开&#xff0c;有时甚至文件会完全消失。这种情况可能由多种原因引起&#xff0c;包括但不限于文件系统损坏、不正确的拔插操作、病毒感染、兼容性问题等。…

2024全国水科技大会暨土壤和地下水污染防治与修复技术创新论坛(七)

论坛召集人&#xff1a;李 辉 上海大学环境与化学工程学院教授 一、会议背景 十四五”时期&#xff0c;我国生态文明建设进入以减污降碳协同增效为重点战略方向&#xff0c;促进经济社会发展全面绿色转型&#xff0c;实现生态环境质量改善由量变到质变的关键时期。聚焦土壤与地…

【论文阅读】ICASSP 2023 针对目标检测的无目标后门攻击

文章目录 一.论文信息二.论文内容1.摘要2.引言3.作者贡献4.主要图表5.结论 一.论文信息 论文题目&#xff1a; Untargeted backdoor attack against object detection&#xff08;针对目标检测的无目标后门攻击&#xff09; 论文来源&#xff1a; 2023-ICASSP&#xff08;CCF…