【Linux】详解Linux下的工具(内含yum指令和vim指令)
文章目录
- 前言
- 1. Linux下软件安装的方式
- 2. yum
- 2.1 软件下载的小知识
- 2.2 在自己的Linux系统下验证yum源的存在
- 2.3 利用yum指令下载软件
- 2.4 拓展yum源(针对于虚拟机用户)
- 3. vim编辑器
- 3.1 vim是什么?
- 3.2 如何打开vim
- 3.2 vim各模式下的讲解
- 3.2.1 命令模式
- 3.2.2 底行模式
前言
在我们学习完Linux的基本指令与权限之后,我们就得正式进军Linux的工具篇章。一款强大的操作系统如果没有良好的软件生态,那他就不配称为最强。那么在本文中,带着大家学会如何在Linux(Centos)下下载软件,以及跟大家聊一聊软件下载背后的原理。最后还会介绍一款强大但需要时间成本训练的文本编辑器 —— vim。
实现跟各位读者说一点,本文是在站在Centos 7版本下进行讲解的,但是底层原理对于Linux各版本都是通用的。
话不多说,让我们在Linux软件天空中欢快的翱翔吧!💖💖💖
1. Linux下软件安装的方式
想必大家都在Windows上下载过诸多的软件,过程十分的简单。只需要我们点击下载,更改一下安装路径,然后一路Next即可。可是在Linux系统下就没有辣么简单了!
Linux安装软件的方式:
- 源代码安装(不推荐)
- rpm安装(不推荐)
- yum安装(十分推荐)
接下来,我就给大家讲讲这些是个什么东西。
首先,对于源代码安装来说,顾名思义,就是假设我给你QQ的源代码,你自己拿去编译就能够安装了。但是作为编程人员的我们显然知道这是没有那么简单的。可能涉及到编译器的版本,跨平台的问题甚至还有一些附加的配置文件。对于普通人来说,他们只会打心底里说"这是个啥啊?"。这个方法安装的成本非常高,且不适合普通的群众,能尽量避开这个方法安装就尽量避开!
其次,对于rpm安装来说,就是安装包下载的方式。但是Linux的安装包比较挫,因为它默认了你的Linux系统拥有下载这个软件的先决条件,换句话说,安装包方式的下载需要你自己去验证你的Linux的版本,以及下载的这个软件附带的软件有没有提前安装好,还有一个问题我们要到哪里去找这个软件安装包。这些问题的重重叠加使得rpm安装变得十分的不容易。
最后,对于yum安装来说,其能完美的解决rpm安装的缺点,使得安装变得简单快捷。本质上yum安装就是在解决安装源、安装版本以及安装依赖的问题。
那yum是个什么东西呢?我们接下来聊一聊。
2. yum
2.1 软件下载的小知识
再讲yum之前,我想用一个我们生活中的例子,来帮助大家更好的理解yum以及拓展一下大家的知识面。
大家平时在自己的手机/ipad/笔记本电脑上下载软件,应该都有个应用商城或者是软件管家,这个就是一个APP。大家只需要进入APP,就能看到琳琅满目的软件,我们只需要点击下载并且等待安装即可。但是在这个过程中,我就要向大家提出几个问题了:
- 客户端(手机、ipad、笔记本电脑)怎么知道该去哪里下载?
- 提供软件下载的服务器的公司和个人组织是出于什么目的或动机给我们提供软件服务的?
其实第一个问题的答案,就在第二个问题的题目中。客户端是通过网络向服务器发出下载此软件的请求,服务器收到请求后,就会检索此软件将数据通过网络传到你的本地,就营造了你手机能够下载软件的现象。其这个应用商城/软件管家里面就内置该服务器,所以手机能够下找到服务器并下载软件。到这里第一个问题就解决了,但是可能有的读者会问,我们在应用商城看到的软件是不是一个真的软件?答案肯定不是的,它其实是一个从服务器上传到本地的一个软件列表,只是空有其表而已,或者你理解为你下载这个软件的一个链接。
接下来我们解决第二个问题,其实这个问题的答案对于各位来说应该简单,因为大家都是互联网的土著民。不论公司还是个人组织,他们之所以做那么多事,就是为了盈利。就拿手机为例,你是选择一个软件俱全的手机还是一台下载个软件都处处受限的手机呢?我想答案一目了然,肯定是一台软件俱全的手机。这个就引发出了一个领域"软件生态"。一个好的软件生态能给电子产品提高其附加价值。
此时,可能有的读者又提问了,你说的手机这个例子我能理解,因为他是为了盈利。但是Linux作为一款开源的操作系统,它不是无偿的吗?
其实开源也是一种商业政策,并且开源有的时候也很贵!
怎么理解上述的点呢?举个简单的例子:
你现在是一个互联网公司的员工,你们的老板现在派你去为公司做一个技术选型,选一个适合公司的Linux操作系统。好了折腾了几天,你选出了一个比较好的Linux操作系统,你拿这个操作系统去给你的boss看,你的老板问你,为什么选这款操作系统?你总不能说这款操作系统是我平时练习Linux用的,效果还不错,如果是这样说那么离死亡就不远了!你应该这么说,这款Linux操作系统配备了一个完整的社区,在这个社区里面有很多人在为Linux不断完善出着一份力,这也就是得这款操作系统的bug十分少,即使有bug也会很快被查到并修复。另外这款软件系统有很强大的软件生态,使得我们的办公效率提升一大截。最后你再说一句,这款操作系统大公司也在用。此时你的老板说干得不错小伙子!其中的韵味你自己来体会吧😊
等过了一段时间后,你的公司已经依赖上这个操作系统了。突然有一天,关于这个操作系统的社区突然要关闭了,这就意味着公司就得换操作系统了,所以公司就会给这些社区进行捐助。所以我们说开源有时候也很贵!
所以在Linux下,yum(Centos)/ apt-get(Ubuntu)就充当手机上应用商城的角色,它的本质就是一个可执行程序!
2.2 在自己的Linux系统下验证yum源的存在
我说了那么多,就是为了让大家了解yum的背景,以及知道yum背后的原理。那么接下来,我们就来看看yum是否真的存在于Linux系统下。
yum一般存在这条路径下/etc/yum.repos.d/
,大家在访问这个目录时,必须得用root身份!
大家可能跟我有差别。
2.3 利用yum指令下载软件
语法:yum install [参数] 软件名称
参数:-y:安装时默认确认。(大家在练习时,可以尝试加-y和不加之间的区别)
举例:
yum install -y tree
yum install sl
2.4 拓展yum源(针对于虚拟机用户)
虚拟机用户可能在执行yum install sl
这条命令时会出现错误,不过不用担心,因为你的yum源中只有官方yum源,没有拓展yum源,大家可以执行这条指令,去下载拓展yum源。
yum install -y epel-release
(作用:下载并安装拓展yum源)
下面是原理部分,如果不感兴趣,可以略过这部分。
我们在上面提到了一个官方yum源和拓展yum源,这是个什么东西?
这个其实不难理解。有些软件写出来可能有病毒甚至是存在各种广告,这些软件在官方的眼里都是不安全的。以官方的视角来看,官方期望的是一款安全绿色的软件,为此不安全的软件是不会上架到官方的软件商城中的。但是这并不意味着你不能下载这些不安全的软件,因为有的时候它就是好用,为此我们就需要拓展yum源了。你可以理解为是官方yum源的一个补充。
下面是重点了!!!
一般操作系统,默认配置的yum源是国外的(针对的是虚拟机用户),有可能你的yum源访问会比较慢,这个时候可能就得更新yum源了。
大家不要把这件事给神话了,其实很简单,就是替换一下yum源文件!
大家可以使用nano(这个得自己下载)或者是vim,这里我使用的是vim。
可以看到的是,我这里已经配置好了!
如果是云服务器那就不需要配置了,因为一般厂家就已经提前帮你配置好了。
3. vim编辑器
想必大家早就现在Linux下写代码了,那么现在我就给大家介绍一个vim编辑器。
3.1 vim是什么?
vim是一款功能强大、多模式的文本编辑器。
这里有说到一个多模式,其实就包括了:
命令模式、插入模式、底行模式、替换模式、视图模式
3.2 如何打开vim
指令:vim filename(filename:代表你想要用vim打开的文件名)
大家打开vim之后是这个样子的,然后按你的键盘发现没有任何反应。这个是正常。
补充:如果用vim打开一个不存在的文件,系统会自动创建该文件!
3.2 vim各模式下的讲解
3.2.1 命令模式
在此模式下,用户的任何输入都会被当作命令。为此在这个模式下,我们是不能在上面写代码的。
相关操作(切换到英文输入法):
- gg:定位光标到最开始行
- shift + G:定位光标到最结尾行
- n + shift + g:定位光标到第n行(定位光标到任意位置)
- shift + $:定位光标到当前行的结尾
- shift + ^:定位光标到当前行的开头
- w:将光标以单词为单位进行行内或跨行向后移动
- b:将光标以单词为单位进行行内或跨行向前移动
- h,j,k,l:将光标按照左、下、上、右的方式进行移动
- (n)yy:复制光标到所在行
- (n)dd:剪切、删除
- (n)p:粘贴(n重行)到光标所在的下一行
- u:撤销
先讲这么多,后期我会专门出一篇关于vim的操作。
3.2.2 底行模式
我们在实际开发中,难免会遇到多文件编写的情况。此时我们就是切换到底行模式(shift + : ),然后输入vs filename
ctrl + ww:窗口光标之间的切换(光标在哪个窗口,就对哪一个窗口进行操作)
好了,本文就讲这么多,关于vim肯定不止这一点知识。后面,我会专门出一篇关于vim的操作,希望大家多来捧场!
如果觉得本文对你有帮助的话,麻烦给偶点个赞吧!!!
相关文章:

【Linux】详解Linux下的工具(内含yum指令和vim指令)
文章目录 前言1. Linux下软件安装的方式2. yum2.1 软件下载的小知识2.2 在自己的Linux系统下验证yum源的存在2.3 利用yum指令下载软件2.4 拓展yum源(针对于虚拟机用户) 3. vim编辑器3.1 vim是什么?3.2 如何打开vim3.2 vim各模式下的讲解3.2.1…...

MacBook 使用 brew 安装 MySQL
目录 (1)准备工作1.1 更新 brew (2)正式安装2.1 安装MySQL:2.2 启动mysql (3)初始化数据库3.1 选择验证密码组件3.2 密码强度3.3 删除匿名用户3.4 禁用root用户远程连接3.5 删除test数据库3.6 重…...

java中有两个list列表,尽量少的去循环
java中有两个list列表,一个list列表是paymentRecord,另外一个list是listApplyBase,paymentRecord中的lendCode字段值跟listApplyBase中的repaymentCode字段值是对应的,用stream流去循环paymentRecord列表,然后判断当pa…...

Java中的状态机实现:使用Spring State Machine管理复杂状态流转
在软件开发中,我们经常会遇到需要处理各种状态以及状态之间转换的场景。这些状态转换有时会变得非常复杂,特别是当涉及到多个状态,并且每个状态都有多个可能的触发事件导致不同的状态变化时。手动编写这样的逻辑不仅容易出错,而且…...

[Notes] Computer Network - Overwiew
What is the Internet? The Internet is a global network of interconnected computers that communicate using standard protocols (rules). It’s not a single entity but a network of networks that allows millions of devices worldwide to exchange data. In simp…...

MyBatisPlus——学习笔记
MyBatisPlus 一、导入依赖 <!-- MyBatisPlus --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.2</version></dependency><!-- MySql --><de…...

运维自动化shell脚本总结
运维自动化是提升IT管理效率的关键,使用Shell脚本可以有效地实现许多日常任务的自动化。以下是一些常见的Shell脚本应用及其总结,涵盖基本概念、实用示例和最佳实践。 1. Shell脚本基础 1.1 Shell脚本定义 Shell脚本是一系列命令的集合,通…...

前端学习第三天笔记 JavaScript JavaScript的引入 数据类型 运算符 条件语句 字符串
这里写自定义目录标题 JavaScriptJavaScript引入到文件嵌入到HTML文件中引入本地独立js文件引入网络来源文件 JavaScript的注释方式嵌入在HTML文件中的注释JavaScript的输出方式数据类型原始类型(基础类型)合成类型(复合类型) 运算…...

C++教程一口气讲完!(万字讲解)( ̄y▽ ̄)╭ Ohohoho... 下
C 常量 常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。 常量可以是任何的基本数据类型,可分为整型数字、浮点数字、字符、字符串和布尔值。 常量就像是常规的变量,只不过常量的值在定义后不能进行修改。 …...

unity软件安装教程
目录 一、Unity Hub的安装 二、Unity Hub的基础设置 语言切换 安装默认路径 安装unity编辑器和visual Studio 申请许可证 创建新项目 Unity和Visual Studio进行绑定 一、Unity Hub的安装 打开浏览器输入以下网址:unity.cn,打开unity官网 点击下载&#x…...

[大语言模型-论文精读] 更大且更可指导的语言模型变得不那么可靠
[大语言模型-论文精读] 更大且更可指导的语言模型变得不那么可靠 目录 文章目录 [大语言模型-论文精读] 更大且更可指导的语言模型变得不那么可靠目录0. 摘要1. 核心内容3. 创新点4. 算法模型5. 实验效果6. 重要数据与实验结论7. 推荐阅读指数:8. 推荐理由 后记 论文…...

云手机可以解决TikTok运营的哪些问题?
随着社交媒体的飞速发展,TikTok迅速崛起,成为个人和企业进行品牌宣传和内容创作的首选平台。然而,在运营TikTok账号的过程中,不少用户会遇到各种问题。本文将详细阐述云手机如何帮助解决这些问题。 1. 多账号管理的高效便捷 通过云…...

Redis基础三(redis的高级配置)
Redis进阶配置 一、Redis持久化操作 持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失。(Redis 数据都放在内存中。如果机器挂掉,内存的数据就不存在。所以需要做持久化,将内存中的数据保存在磁盘,…...

Telnet、SSH、RDP和VNC
Telnet、SSH、RDP和VNC都是远程访问和管理的协议或工具,它们各自具有不同的特点和适用场景。 一、基本概念与用途 Telnet 定义:一种基于命令行界面的远程管理协议,允许用户通过网络远程访问和管理计算机。用途:主要用于远程登录和…...

FiBiNET模型实现推荐算法
1. 项目简介 A031-FiBiNET模型项目是一个基于深度学习的推荐系统算法实现,旨在提升推荐系统的性能和精度。该项目的背景源于当今互联网平台中,推荐算法在电商、社交、内容分发等领域的广泛应用。推荐系统通过分析用户的历史行为和兴趣偏好,预…...

影刀RPA:Excel内容填充指令
1.实战目标 本次主要介绍影刀RPA如何操作内容相关的填充与替换指令。主要包含以下 这些指令在数据处理方面有着重要的作用,可以对数据做运算,填充,替换,实现数据格式统一,便于最终的数据分析。在操作的过程中…...

Threejs创建正多边体
上一章节实现了球体的绘制,这节来绘制多面体,包括正多面体,平面中,每条边一样长组成的图形叫正多边形,这里每个面一样,叫正多面体。如上文一样,先要创建出基础的组件,包括场景&#…...

链表——单链表
题目描述 实现一个单链表,链表初始为空,支持三种操作: (1) 向链表头插入一个数; (2) 删除第 k 个插入的数后面的数; (3) 在第 k 个插入的数后插入一个数 现在要对该链表进行 M 次操作,进行完所有操作后&am…...

【YOLO学习】YOLOv5口罩检测实战
文章目录 1. 环境配置2. 下载代码3. 安装库3.1 安装pytorch3.2 安装其他库 4. 测试5. 数据标注6. 模型训练7. 界面可视化 1. 环境配置 1. 先参考其他文章安装 Anaconda 或者 Miniconda,我安装的是 Miniconda。 2. 更换国内源,以加快速度 。可以参考下面这…...

场景题1-设计redis的key和value的原则
在设计 Redis 的 key 和 value 时,遵循一些最佳实践和设计原则可以确保系统的性能、可扩展性和易维护性。以下是设计 Redis key 和 value 时的常见原则: 1.RedisKey的设计原则 1.1.简短有意义 1)Redis 是内存数据库,key 越短&am…...

Shell-使用函数
在 Shell 脚本中,函数是由一段代码定义的,可以被重复调用。Shell 函数的定义和调用相对简单,并且它支持参数传递和返回值。错误处理在 Shell 中也非常重要,通常通过检查返回的状态码来判断是否有错误发生。 1.Shell 函数的定义和…...

Git介绍--github/gitee/gitlab使用
一、Git的介绍 1.1、学习Git的原因:资源管理 1.2、SCM软件的介绍 软件配置管理(SCM)是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。 二、版本控制软件 …...

【ubuntu】【VirtualBox】VirtualBox无法加载USB移动设备的解决方法(支持U盘启动盘)
TOC 提示:测试可用 一、安装VirtualBox VirtualBox-7.1.2-164945-Win。 下载路径。 Download_Old_Builds_7_0 – Oracle VirtualBox 二、安装Oracle_VirtualBox_Extension_Pack-7.1.2 下载路径见上文。 三、安装增强功能 四、挂载USB 4.1 设置USB协议 4.2 挂…...

Koa2+mongodb项目实战1(项目搭建)
前言 在正式开始之前,需要先知道用到的东西: koa:Koa 是一个基于 Node.js 的 Web 应用框架,非常适合开发API服务,可以与前端框架(如 Vue.js、React.js)结合使用,实现前后端分离的开…...

Pyhton爬虫使用Selenium实现浏览器自动化操作抓取网页
第三方库Selenium主要是用来抓取动态生成的网页数据,有些网站的内容要下拉网页才会动态加载,特别是那些使用javaScript渲染的内容。当然Selenium还可用于自动化浏览器操作,比如编写一个自动抢火车票的python脚本,这并不难实现。接…...

矩阵学习过程中的一些思考
2024.09.27(学习鸢尾花书_矩阵力量_Ch20) (1)所有中心过原点的椭圆都可以用一个二维矩阵表示,且特征值表示长短轴长度,特征向量表示长短轴所在方向的单位向量(表征椭圆旋转方向)&am…...

初识Django
前言: 各位观众老爷们好,最近几个月都没怎么更新,主要是最近的事情太多了,我也在继续学习Django框架,之前还参加了一些比赛,现在我会开始持续更新Django的学习,这个过程会比较久,我会把我学习的…...

VirtualBox虚拟机连接宿主机并能够上网(小白向)
现存问题 windows系统主要使用vmare和virtualbox两种虚拟机,virtualbox相对于vmare更加轻便,但少有博客能够详细说明使用virtualbox的教程。踩了网上的坑后,决定写一篇文章介绍virtualbox虚拟机上网的流程。 需求 1. virtualbox虚拟机与宿主机…...

深度学习每周学习总结J1(ResNet-50算法实战与解析 - 鸟类识别)
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 目录 0. 总结1. 设置GPU2. 导入数据及处理部分3. 划分数据集4. 模型构建部分5. 设置超参数:定义损失函数,学习率&a…...

商家营销工具架构升级总结
今年以来,商家营销工具业务需求井喷,需求数量多且耗时都比较长,技术侧面临很大的压力。因此这篇文章主要讨论营销工具前端要如何应对这样大规模的业务需求。 问题拆解 我们核心面对的问题主要如下: 1. 人力有限 我们除了要支撑存量…...