【Linux学习】(5)软件包管理器yum|编辑器vim

前言

  1. 了解Linux的软件生态,学会yum安装软件
  2. 掌握vim编辑器的使用
  3. 添加普通用户到系统的信任白名单

一、Linux 软件包管理器 yum

1. Linux安装软件

  1. 源代码安装:在Linux中源代码安装软件是一种比较麻烦的方式,他需要你自己配置编译环境、编译源代码得到可执行程序。
  2. rpm安装:rmp是Linux软件包(编译好的可执行程序,相当于Windows上的安装程序)。虽然rmp软件包不需要我们自己编译了,但是rpm只是一个单独的软件包,需要我们解决依赖关系。
  3. yum安装:软件包管理器(相当于手机中的应用商店),它帮我们解决了安装源、安装版本、安装依赖等问题,我们可以直接进行安装!

2. Linux的软件生态

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

问题1:yum怎么知道去哪下载软件?

yum知道去哪下载软件是通过配置文件中定义的软件源来实现的。

  1. 软件源(yum源)配置文件:yum的软件源配置文件位于/etc/yum.repos.d/目录下,每个.repo文件代表一个软件源。这些文件包含了软件源的URL、是否启用、以及软件包的镜像等信息。在这里插入图片描述
  2. 官方yum源和第三方源:Linux发行版通常会自带一些官方源,例如CentOS系统带有的base。如果需要下载额外的软件包,就需要导入第三方源,例如Linux中有一个小程序sl,我们需要先导入epel(即安装扩展源:yum install -y epel-release),才能安装yum install -y sl。在这里插入图片描述
  3. 更换yum源:一般Linux操作系统,默认配置的yum源是国外的,会造成你的yum源访问会比较慢,就需要你更换yum源(即替换yum源文件)。注:如果你使用的云服务器,一般厂商已经帮你替换了,但如果你是使用的虚拟机,就需要你自己替换(自行百度“国内yum源配置 CentOS 7”)。替换时需注意:做任何配置,一定不要删除,而是将其备份!

问题2:谁来给yum提供软件?

由OS的设计者和推动者提供软件。

使用者和提供者之间形成一个互相促进的闭环,如下图:在这里插入图片描述

3. yum的使用

3.1 使用yum的注意事项

关于yum的所有操作必须保证主机(虚拟机)网络畅通!

可以通过ping指令验证在这里插入图片描述
其实也不需要担心,现在只要你登录上了你的云服务器,你就一定连上网络的。

3.2 yum的使用

平时我们怎么使用手机的应用商店下载应用的呢?

  1. 根据需求,我知道要下载的软件名字
  2. 根据软件名字,在应用商店搜索该软件
  3. 搜索到软件,点击下载
  4. 当我们不用该软件了,也可以在应用商店卸载


我们的yum也是类似的逻辑!

(1)lrzsz软件

这个软件用于Windows机器和远端的Linux机器通过XShell传输文件。

Windows上传文件到Linux:

  • 指令rz上传
  • 或者直接从Windows以拖拽的方式将文件上传过去

Linux上传文件到Windows:

  • 指令sz xxx 上传在这里插入图片描述
(2)查看软件包

通过yum list命令可以罗列出当前Linux环境中支持的所有软件包。

由于包的数量非常多,这里我们需要使用grep命令筛选出我们关注的包。

yum list | grep xxx

示例:
在这里插入图片描述
注意事项:

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

通过yum,我们可以通过很简单的一条命令完成软件的安装

yum install xxx

yum会自动找到都有哪些软件包需要下载,并且它会默认询问你是否确认安装,这时候敲“y”确认安装。

如果你不想它询问你,你可以携带-y选项。如下:

yum install -y xxx

出现“complete”字样,说明安装完成

示例:在这里插入图片描述
注意事项:

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

下载时它会询问你是否确认下载,卸载也一样,它会默认询问你是否确认卸载,你可以携带-y选项,让它不要问你!

yum remove -y xxx

出现“complete”字样,说明卸载完成

示例:在这里插入图片描述

二、Linux 编辑器 vim

  1. 以前我们使用的VS2019是一款集成开发的软件,即不仅可以编写代码,还可以编译、执行、调试等。
  2. vim是Linux中的一款多模式编辑器 只可以用来文本编写,但是我们更多的是编写代码。
  3. 注意:vim只可以用来编写代码,不可以编译、执行、调试代码。
  4. 补充:vi也是Linux中的一款多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新特性在里面,所以这里我们学习vim即可。

1. vim的基本概念

这里我们学习vim的三种模式(其实有好多种模式,目前掌握这3中即可),分别是命令模式(command mode)、插入模式(insert mode)和底行模式(last line mode)

(1)命令模式(默认模式)

使用vim打开文件编辑:

vim 文件 #用vim编辑器打开该文件

示例:使用vim编辑器打开test.c
在这里插入图片描述
进入之后,我们发现不能输入,没有反应。

这是因为我们使用vim一开始进入的是他的命令模式(默认模式)!

命令模式:

  • 用户所有的输入都会被当做命令,一般不会作为文本输入
  • 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode

(2)插入模式

  • 在命令模式下,输入i即可进入插入模式。
  • 只有在insert mode下,才可以做文字输入,按【ESC】键可回到命令模式。
  • 该模式是我们后面使用的最频繁的编辑模式。

(3)底行模式

  • 在命令模式下,shift+;即可进入底行模式。
  • 在该模式下,我们可进行文件保存和退出,也可以进行文本替换,查找字符串,列出行号等操作。
  • 如果要查看vim的所有模式,打开vim,在底行模式直接输入help vim-modes。

2. vim的基本操作

  • 进入vim,输入vim后跟文件名称后按回车,就进入vim全屏幕编辑画面

    • vim 文件
    • 注意:你一开始进入vim之后,是处于【命令模式】,你要切换到【插入模式】才能够输入文字
  • 【命令模式】切换至【插入模式】

    • 输入i(按「i」切换进入插入模式后,是从光标当前位置开始输入文件)
    • 输入a(按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字)
    • 输入o(按「o」进入插入模式后,是插入新的一行,从行首开始输入文字)
    • 进入【插入模式】之后,我们可以看到左下角会提示【INSERT】在这里插入图片描述
  • 【插入模式】切换至【命令模式】

    • 按键盘左上角的【ESC】键回到【命令模式】
    • tip:任何模式想回到【命令模式】,无脑按【ESC】键即可
  • 【命令模式】切换至【底行模式】

    • 【shift+;】,其实就是输入【:】
    • 进入【底行模式】之后,我们可以看到左下角有【:】,我们可以在:之后输入q!退出vim在这里插入图片描述
  • 在【底行模式】下,退出vim及保存文件

    • w(保存当前文件)
    • wq(保存并退出vim)
    • q!(不保存强制退出vim)
  • 三个模式的转换图:在这里插入图片描述

3. vim命令模式常用命令集

(1)移动光标(光标定位):

指令说明
gg移动光标到文本的开始
G(shift+g)移动光标到文本的末尾
nG(n+shift+g)移动光标到文本的任意(n)行
shift+$移动光标到当前行的行尾
shift+^移动光标到当前行的行首
(n)w光标按照单词进行移动,nw光标向后移动n个单词
(n)b光标按照单词进行移动,nb光标向前移动n个单词
h,j,k,l虽然vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母h,j,k,l,分别控制光标左、下、上、右移动一格
tip:h最左边,l最右边,j向下跳(jump),k上(King王冠,至高无上的)
ctrl+b屏幕向后移动一页
ctrl+f屏幕向前移动一页
ctrl+u屏幕向后移动半页
ctrl+d屏幕向前移动半页

(2)复制粘贴

指令说明
yy复制光标所在行到缓冲区
p将缓冲区内的字符粘贴到光标所在行的下一行
nyy复制光标所在的连续n行(包括光标所在行)到缓冲区
np将缓冲区内的字符粘贴n次到光标所在行的下一行

注意: 所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

(3)撤销

指令说明
u撤销:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。
ctrl+r撤销之前的撤销(即收回u撤销)

(4)删除(剪切)

指令说明
dd删除光标所在行
ndd从光标开始删除n行
x每按一次,删除光标所在位置的一个字符
nxnx删除光标所在位置后面(包含自己在内)的n个字符
X大写的X,每按一次,删除光标所在位置的前面一个字符
nXnX删除光标所在位置的前面n个字符

(5)替换

指令说明
shift+~光标所在处字符进行大小写转换
r替换光标所在处的字符
nr对光标所在的连续n个字符进行批量替换(包括光标所在位置)
R(shift+r)vim的第四种模式:替换模式(REPLACE),替换光标所到之处的字符,按【ESC】键退出

4. vim底行模式常用命令集

在使用底行模式之前,请先确定你已经处于命令模式,再按【:】冒号即可进入底行模式。

(1)保存文件

指令说明
w在冒号输入字母【w】就可以将文件保存

(2)退出vim

指令说明
q按【q】退出vim,如果无法退出,可在【q】后跟一个【!】强制退出vim
wq一般建议退出vim时,搭配【w】一起使用,表示保存文件并退出

(3)执行外部命令

指令说明
! 外部命令执行外部命令,如 :! ls 列出当前目录的文件

tip:也有强制的含义,当我们w保存文件不能保存时,可w!强制保存。

  • w!:强制保存文件
  • q!:强制退出vim
  • wq!:强制保存文件并退出vim

(4)列出行号

指令说明
set nu在文件中的每一行前面列出行号
set nonu撤销行号

(5)跳到文件中的某一行

指令说明
【#】【#】号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文本的第15行

(6)查找字符

指令说明
【/关键字】【/关键字】: 先按【/】键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按【n】会往后寻找到您要的关键字为止
【?关键字】【?关键字】:先按【?】键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按【n】会往前寻找到您要的关键字为止

(7)多文件编辑

指令说明
vs 文件vs打开多个文件编辑窗口

示例:vs temp.c回车

在这里插入图片描述

打开多个多个文件编辑窗口:

在这里插入图片描述

ctrl ww:窗口光标切换!

光标在哪一个窗口里面,就对哪一个窗口进行操作!

tip : vim打开一个文件,并不会默认帮我们创建,只有wq才会创建。

5. 简单vim配置

(1)配置文件的位置

  • root用户,在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效
  • 普通用户和root,在每个用户的主目录下(即家目录),都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件,如果不存在,则创建之
  • 一个用户一个vim配置,不会互相影响。不建议给root做配置,用普通用户即可

(2)CentOS 7一键配置vim

vim的配置就是在配置文件中写入配置项。

想要了解相关的配置项,我们百度“vim 配置选项说明”

这里我们一键配置vim:直接复制下面链接,shift+insert粘贴到bash。

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

在这里插入图片描述
安装软件,需要输入root密码,输入root密码之后等待安装完毕即可。

在这里插入图片描述
安装成功之后,我们需要手动执行以下指令。

source ~/.bashrc

执行之后,vim配置才生效!

安装完成之后,有一个install.sh脚本,不建议删掉,可将其隐藏。

mv install.sh .install.sh

在这里插入图片描述
安装的vim配置,代码缩进默认是两个空格,我们可以自己将其修改为四个空格。

#进入自己的家目录
cd ~
#打开.vimrc
vim .vimrc

打开之后,【:】进入底行模式,搜索/2搜索,将所有2修改为4即可。

在这里插入图片描述

6. vim的参考资料

vim我们了解到常用的即可,想深入学习vim,可点击下方链接:

vim从入门到牛逼

7. 添加普通用户到系统的信任白名单

  1. 在权限那里我们知道普通用户可以通过sudo对一条命令进行暂时提权。
  2. 但是我们adduser新建的普通用户,是没有办法执行sudo的,因为系统不信任你。在这里插入图片描述
  3. 只有我们的root用户,将你添加到系统的信任白名单里面(/etc/sudoers),你才可以使用sudo。在这里插入图片描述
  4. 必须在root下打开/etc/sudoers文件(tip:虽然普通用户sudo也可以打开文件,但是不建议这么做!)在这里插入图片描述
  5. 100G光标定位到100行,可以看到系统只默认root在白名单中。我们先粘贴复制该行,再修改root为我们需要添加到白名单的普通用户,最后保存并退出即可。在这里插入图片描述
  6. 因为/etc/sudoers文件只有读权限,所以我们在wq后面需要加【!】,强制保存并退出。
  7. 验证:在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jenkins发布vue项目,版本不一致导致build错误

问题一 yarn.lock文件的存在导致在自动化的时候,频频失败问题二 仓库下载的资源与项目资源版本不一致 本地跑好久的一个项目,现在需要部署在Jenkins上面进行自动化打包部署;想着部署后今后可以省下好多时间,遂兴高采烈地去部署&am…

c++:string类

想要深刻理解string类最好自己实现一个,可以看我的这篇文章:c:模拟实现string类-CSDN博客想要学好库中的string最好自己实现一个出来,能够加深对string的理解。蟹蟹观看!关注!评论!一键三连!htt…

模型 支付矩阵

系列文章 分享 模型,了解更多👉 模型_思维模型目录。策略选择的收益分析工具。 1 支付矩阵的应用 1.1 支付矩阵在市场竞争策略分析中的应用 支付矩阵是一种强大的决策工具,它在多个领域的应用中都发挥着重要作用。以下是一个具体的应用案例…

WebView渲染异常导致闪退解决方案

背景: App主页面使用了大量WebView容器(10个以上)显示图表信息,最新发现bugly上面出现一些关于浏览器Native Crash,如下: 经排查,是WebView渲染失败导致Crash,可以通过webView.loadUrl("chrome://cra…

《Windows PE》7.4 资源表应用

本节我们将通过两个示例程序,演示对PE文件内图标资源的置换与提取。 本节必须掌握的知识点: 更改图标 提取图标资源 7.4.1 更改图标 让我们来做一个实验,替换PE文件中现有的图标。如果手工替换,一定是先找到资源表,…

Linux -- 共享内存(2)

目录 命令 ipcs -m : 命令 ipcrm -m shmid: 共享内存的通信: 为什么共享内存更高效? 代码: ShmClient.cc: ShmServer.cc: 结果: 如何让共享内存实现同步? 代码&a…

基于SSM的BBS社区论坛系统源码

运行环境:ideamysql5.7jdk8maven 使用技术:ssmmysqlshirolayui 功能模块:用户管理、模板管理、帖子管理、公告管理、权限管理等

echarts:导入excel生成桑葚图

前言 前两天帮别人实现了一个小功能&#xff0c;主要是选择excel文件&#xff0c;读取里面的数据&#xff0c;将数据生成桑葚图 echarts官方桑葚图案例 实现 因为就是一个单纯的html文件&#xff0c;用到的库都是通过CDN的方式加载的&#xff0c;会有一些慢 <!DOCTYPE …

IPC 进程间通信 信号量集合 Linux环境 C语言实现

只用于多进程间的并发控制 一个信息量集合(信号量集 或 信息量数组)中顺序存储着多个信号量 相关接口函数&#xff1a; 实际项目&#xff0c;直接调用semop函数来作为某个或某几个信号量的PV操作函数会很不方便&#xff0c;因此会对信号量集合的接口进行二次封装&#xff0c;封…

AI实操Excel:在Excel中学习人工智能基础算法

人工智能&#xff08;AI&#xff09;已经成为当今科技领域最热门的话题之一&#xff0c;但对于初学者来说&#xff0c;直接上手复杂的编程和算法可能会感到有些困难。今天&#xff0c;我要向大家介绍一个非常实用的工具——AI实操Excel&#xff0c;这是一个通过Excel实现人工智…

「二叉树进阶题解:构建、遍历与结构转化全解析」

文章目录 根据二叉树创建字符串思路代码 二叉树的层序遍历思路代码 二叉树的最近公共祖先思路代码 二叉搜索树与双向链表思路代码 从前序与中序遍历序列构造二叉树思路代码 总结 根据二叉树创建字符串 题目&#xff1a; 样例&#xff1a; 可以看见&#xff0c;唯一特殊的就…

影刀RPA实战:常见实用功能指令

1. 电脑锁屏与解屏 在实际工作中&#xff0c;我们为了自身工作电脑数据文件的安全&#xff0c;都会为电脑设置密码&#xff0c;当我们离开电脑时&#xff0c;直接锁屏&#xff0c;即使不手动锁屏&#xff0c;也会在一定时间内自动锁屏。 如果你的工作是影刀RPA帮你自动化处理…

Spring Boot驱动的厨艺社交平台设计与实现

5 系统实现 5.1食材分类管理 管理员管理食材分类&#xff0c;可以添加&#xff0c;修改&#xff0c;删除食材分类信息。下图就是食材分类管理页面。 图5.1 食材分类管理页面 5.2 用户信息管理 管理员管理用户信息&#xff0c;可以添加&#xff0c;修改&#xff0c;删除用户信…

kafka 分布式(不是单机)的情况下,如何保证消息的顺序消费?

大家好&#xff0c;我是锋哥。今天分享关于【kafka 分布式&#xff08;不是单机&#xff09;的情况下&#xff0c;如何保证消息的顺序消费?】面试题&#xff1f;希望对大家有帮助&#xff1b; kafka 分布式&#xff08;不是单机&#xff09;的情况下&#xff0c;如何保证消息的…

量子变分算法 (python qiskit)

背景 变分量子算法是用于观察嘈杂的近期设备上的量子计算效用的有前途的候选混合算法。变分算法的特点是使用经典优化算法迭代更新参数化试验解决方案或“拟设”。这些方法中最重要的是变分量子特征求解器 (VQE)&#xff0c;它旨在求解给定汉密尔顿量的基态&#xff0c;该汉密尔…

mac 上使用 cmake 构建包含 OpenMP 的项目

安装依赖 # clang 默认不支持 -fopenmp&#xff0c;因为它没有内置 OpenMP 支持。 # 为了解决这个问题&#xff0c;需要安装 libomp 并配置 clang 使用 libomp brew install libomp# macOS 自带的 clang 编译器被修改过&#xff0c;默认禁用了 OpenMP&#xff0c; # 而不支持 …

【K8S系列】Kubernetes Service 基础知识 详细介绍

在 Kubernetes 中&#xff0c;Service 是一种抽象的资源&#xff0c;用于定义一组 Pod 的访问策略。它为这些 Pod 提供了一个稳定的访问入口&#xff0c;解决了 Pod 可能频繁变化的问题。本文将详细介绍 Kubernetes Service 的类型、功能、使用场景、DNS 和负载均衡等方面。 1.…

class 36 二叉树高频题目 - 上 (不含有树形dp)

1. BFS 的两种方式 如下图, 是一个二叉树. 我们需要按照层的方式来遍历这棵树. 1.1 使用 JDK 自带的类实现(链表实现, 经典 BFS) 首先我们实现一个队列, 这个队列从头进, 从尾出.然后将根节点放入其中, 然后将放入的节点弹出,然后继续验证弹出的节点有没有左孩子, 若是有, 将…

【HTML】之form表单元素详解

HTML表单是网页与用户交互的关键组成部分&#xff0c;它允许用户输入数据并将数据提交到服务器进行处理。本文将全面详细地介绍HTML表单的各个方面&#xff0c;从基础元素到高级用法&#xff0c;并提供丰富的代码示例和中文注释&#xff0c;帮助你彻底掌握表单的使用。 1. 表单…

强大!Spring Boot 3.3 集成 PDFBox 轻松实现电子签章功能!

强大&#xff01;Spring Boot 3.3 集成 PDFBox 轻松实现电子签章功能&#xff01; 随着数字化办公和电子合同的普及&#xff0c;PDF 文档已经成为很多业务场景中的标准文件格式。为了确保文档的安全性和法律效力&#xff0c;电子签章技术应运而生。电子签章不仅可以证明文件的…