当前位置: 首页 > news >正文

【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安装软件的方式:

  1. 源代码安装(不推荐)
  2. rpm安装(不推荐)
  3. 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身份!
yum
大家可能跟我有差别。

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。
vim
yum源
可以看到的是,我这里已经配置好了!

如果是云服务器那就不需要配置了,因为一般厂家就已经提前帮你配置好了。

3. vim编辑器

想必大家早就现在Linux下写代码了,那么现在我就给大家介绍一个vim编辑器。

3.1 vim是什么?

vim是一款功能强大、多模式的文本编辑器。

这里有说到一个多模式,其实就包括了:
命令模式、插入模式、底行模式、替换模式、视图模式

3.2 如何打开vim

指令:vim filename(filename:代表你想要用vim打开的文件名)
演示
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管理效率的关键&#xff0c;使用Shell脚本可以有效地实现许多日常任务的自动化。以下是一些常见的Shell脚本应用及其总结&#xff0c;涵盖基本概念、实用示例和最佳实践。 1. Shell脚本基础 1.1 Shell脚本定义 Shell脚本是一系列命令的集合&#xff0c;通…...

前端学习第三天笔记 JavaScript JavaScript的引入 数据类型 运算符 条件语句 字符串

这里写自定义目录标题 JavaScriptJavaScript引入到文件嵌入到HTML文件中引入本地独立js文件引入网络来源文件 JavaScript的注释方式嵌入在HTML文件中的注释JavaScript的输出方式数据类型原始类型&#xff08;基础类型&#xff09;合成类型&#xff08;复合类型&#xff09; 运算…...

C++教程一口气讲完!(万字讲解)( ̄y▽ ̄)╭ Ohohoho... 下

C 常量 常量是固定值&#xff0c;在程序执行期间不会改变。这些固定的值&#xff0c;又叫做字面量。 常量可以是任何的基本数据类型&#xff0c;可分为整型数字、浮点数字、字符、字符串和布尔值。 常量就像是常规的变量&#xff0c;只不过常量的值在定义后不能进行修改。 …...

unity软件安装教程

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

[大语言模型-论文精读] 更大且更可指导的语言模型变得不那么可靠

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

云手机可以解决TikTok运营的哪些问题?

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

Redis基础三(redis的高级配置)

Redis进阶配置 一、Redis持久化操作 ​ 持久化就是把内存的数据写到磁盘中去&#xff0c;防止服务宕机了内存数据丢失。&#xff08;Redis 数据都放在内存中。如果机器挂掉&#xff0c;内存的数据就不存在。所以需要做持久化&#xff0c;将内存中的数据保存在磁盘&#xff0c…...

Telnet、SSH、RDP和VNC

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

FiBiNET模型实现推荐算法

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

影刀RPA:Excel内容填充指令

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

Threejs创建正多边体

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

链表——单链表

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

【YOLO学习】YOLOv5口罩检测实战

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

场景题1-设计redis的key和value的原则

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

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...