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

【Hello Linux】Linux工具介绍 (yum vim)

作者:@小萌新
专栏:@Linux
作者简介:大二学生 希望能和大家一起进步!
本篇博客简介:介绍Linux的常用工具 yum和vim

Linux工具介绍

  • Linux中的软件管理工具 -- yum
    • 在windows下安装软件的方式
    • 在Linux下安装软件的方式
    • 认识yum
    • 查找软件包
    • 安装软件包
    • 番外 : 如何实现云服务器和本地计算机的文件互传
    • 卸载软件
  • Linux中的编辑器 -- vim
    • vim的基本概念
    • vim各模式切换
    • vim命令模式命令
    • vim底行模式命令
    • vim配置

Linux中的软件管理工具 – yum

在windows下安装软件的方式

在大概15年左右的时候 我们的电脑想要下载软件需要去网站上找到该软件的安装包下载到本地之后进行安装 但是这种方式十分的不安全 一不小心电脑就有可能被病毒入侵

之后各个品牌的电脑乃至个人手机都推出了自己的应用商店 从而让我们下载软件变得更加方便快捷了

在Linux下安装软件的方式

在Linux系统下安装软件的方式有以下三种

  1. 下载程序的源代码 自己进行编译 得到可执行程序
  2. 通过rpm获取安装包 通过rpm命令进行安装 (未解决依赖问题)
  3. 通过yum进行安装

通过yum进行安装也是我们最常用的一种方式

那么什么是yum呢?

认识yum

yum是一个在Fedora、RedHat以及CentOS中的前端软件包管理器 能够从指定的服务器自动下载RPM包并且安装 可以自动处理依赖性关系 并且一次安装所有依赖的软件包 无须繁琐地一次次下载、安装

在这里插入图片描述
它就可以类比我们的windows上的软件商店

不过这里要注意的是 windows上的软件商店可能支持几个软件同时下载 但是一个服务器同一时刻只允许一个yum进行安装

此外因为yum下载的时候是从包服务器中寻找数据下载我们还必须要确认自己的主机连接了网络

我们可以使用ping命令来确认自己是否连接网络

在这里插入图片描述

查找软件包

我们可以通过下面的命令来查找软件包

yum list

我们使用这个指令 可以罗列出可以下载的所有软件

在这里插入图片描述
这里对于我们list出来的各种软件解释下

  • 第一列的结构一般是这样子 软件名字.系统架构 比如说zvbi.x86_64 它的软件名就是zvbi 可以在x86_64的系统架构下运行
  • 第二列的结构一般是这样子 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台 其中需要解释的是后面的 el7 它代表可以在 centos7/redhat7的平台下运行
  • 第三列代表的是源 就好像你在应用市场下载了一个王者荣耀后面@腾讯一样

下面我们使用前面学到的管道和查找指令 来查找 lrzsz 软件

我们在linux系统中敲出以下代码

在这里插入图片描述

安装软件包

我们还可以使用 yum install指令来下载软件

还是拿前面的 lrzsz软件为例

在这里插入图片描述
于是我们就需要使用sudo指令了

在这里插入图片描述
我们这里使用了 -y指令 这是因为安装软件的时候有可能会出现很多的选项让我们选择是否启动 (相当于windows安全软件的next) 而使用了- y指令之后这些选项就是默认开启的了

我们总结下

  • 安装软件的时候由于需要像系统写入东西 所以需要root权限
  • 如果我们不想回答问题我们可以直接只用 -y指令
  • yum安装只能一次安装一个软件 如果一次安装多个会报错

番外 : 如何实现云服务器和本地计算机的文件互传

我们可以使用 rz -E指令

通过该指令 我们可以选择从本地服务器选择文件上传到云服务器

在这里插入图片描述
此外我们还可以使用 sz + 文件名来讲云服务器的内容上传到本地
在这里插入图片描述

卸载软件

我们可以使用以下指令来卸载软件

yum remove + 软件名

在这里插入图片描述

我们总结下

  • 卸载软件的时候也需要root权限
  • 如果我们不想回答问题我们可以直接只用 -y指令

Linux中的编辑器 – vim

vim的基本概念

vim的本质上是一个多模式的文本编辑器

它主要有三种模式 我们这里会逐一介绍

1. 命令模式 (Normal mode)

在命令模式下 我们可以控制光标的移动以及字符 字或行的删除 复制粘贴 剪贴等操作

2. 插入模式(Insert mode)

只有在插入模式下才能进行文字输入 该模式是我们使用最频繁的编辑模式

3. 底行模式(Command mode)

我们的保存 退出等指令都要在底行模式中进行

vim各模式切换

首先我们使用一张图来理解vim中三种模式之间的联系

在这里插入图片描述

看上面的图我们就能知道 这三种模式怎么切换了

  • 普通模式通过 按一次 i键 切换到插入模式
  • 普通模式通过 按住shitf + ;键切换到底行模式
  • 其他两种模式通过 esc 切换到普通模式
  • 底行模式和插入模式不能互通

由于vim中的插入模式并没有什么特殊的命令 使用起来和我们的文本编辑器其实差不了多少 所以我们在这里就不过多介绍了

我们这里主要着重介绍下 vim的普通模式(命令模式)和底行模式的命令

下面的字符 n 表示一个具体的数字 比如说 8 12 123等

vim命令模式命令

移动光标相关

  • 按「k」:光标上移
  • 按「j」:光标下移
  • 按「h」:光标左移
  • 按「l」:光标右移
  • 按「$」:移动到光标所在行的行尾
  • 按「^」:移动到光标所在行的行首
  • 按「gg」:移动到文本开始
  • 按「Shift+g」:移动到文本末尾
  • 按「n+Shift+g」:移动到第n行行首
  • 按「n+Enter」:当前光标向下移动n行
  • 按「w」:光标从左到右,从上到下的跳到下一个字的开头
  • 按「e」:光标从左到右,从上到下的跳到下一个字的结尾
  • 按「b」:光标从右到左,从下到上的跳到上一个字的开头

删除相关

  • 按「x」:删除光标所在位置的字符
  • 按「nx」:删除光标所在位置开始往后的n个字符
  • 按「X」:删除光标所在位置的前一个字符
  • 按「nX」:删除光标所在位置的前n个字符
  • 按「dd」:删除光标所在行
  • 按「ndd」:删除光标所在行开始往下的n行

复制粘贴相关

  • 按「yy」:复制光标所在行到缓冲区
  • 按「nyy」:复制光标所在行开始往下的n行到缓冲区
  • 按「yw」:将光标所在位置开始到字尾的字符复制到缓冲区
  • 按「nyw」:将光标所在位置开始往后的n个字复制到缓冲区
  • 按「p」:将已复制的内容在光标的下一行粘贴上
  • 按「np」:将已复制的内容在光标的下一行粘贴n次

剪切

  • 按「dd」:剪切光标所在行
  • 按「ndd」:剪切光标所在行开始往下的n行
  • 按「p」:将已剪切的内容在光标的下一行粘贴上
  • 按「np」:将已剪切的内容在光标的下一行粘贴n次

撤销

  • 按「u」:撤销
  • 按「Ctrl+r」:恢复刚刚的撤销

大小写切换

  • 按「~」:完成光标所在位置字符的大小写切换
  • 按「n~」:完成光标所在位置开始往后的n个字符的大小写切换

替换

  • 按「r」:替换光标所在位置的字符
  • 按「R」:替换光标所到位置的字符,直到按下「Esc」键为止

更改

  • 按「cw」:将光标所在位置开始到字尾的字符删除,并进入插入模式
  • 按「cnw」:将光标所在位置开始往后的n个字删除,并进入插入模式

翻页

  • 按「Ctrl+b」:上翻一页
  • 按「Ctrl+f」:下翻一页
  • 按「Ctrl+u」:上翻半页
  • 按「Ctrl+d」:下翻半页

vim底行模式命令

行号设置

  • 「set nu」:显示行号
  • 「set nonu」:取消行号

保存退出

  • 「w」:保存文件
  • 「q」:退出vim,如果无法离开vim,可在「q」后面跟一个「!」表示强制退出
  • 「wq」:保存退出

分屏指令

  • 「vs 文件名」:实现多文件的编辑
  • 「Ctrl+w+w」:光标在多屏幕下进行切换

执行指令

  • !+指令」:在不退出vim的情况下 可以在指令前面加上「!」就可以执行Linux的指令 例如查看目录 编译当前代码等

vim配置

vim的手动配置比较复杂也很容易出错 这里不做过多的讨论

那么vim怎么自动配置呢?

大家可以访问这个网站

VimForCpp

上面有对于vim配置后的功能介绍和配置代码

之后在 shell 中执行指令(想在哪个用户下让vim配置生效, 就在哪个用户下执行这个指令. 强烈 “不推荐” 直接在 root 下执行):

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

需要按照提示输入 root 密码就可以了

配置后的vim此时就能变成一个小型集成ide 具有自动换行 语法高亮等特性了

相关文章:

【Hello Linux】Linux工具介绍 (yum vim)

作者:小萌新 专栏:Linux 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:介绍Linux的常用工具 yum和vim Linux工具介绍Linux中的软件管理工具 -- yum在windows下安装软件的方式在Linux下安装软件的方式认识yum…...

多种充电模式_手持无线充气泵方案

一、手持无线充气泵手持无线充气泵是一个通过锂电池供电达到无需插电就能使用的便携式充气泵,它的适用场景大部分是为身处户外没有办法接通电源的人而设计的,方便人们的出行也可解燃眉之急。不仅如此,为预防手持无线充气泵的锂电池电量用完而…...

【网络基础】DNS是什么

本文不会直接引入复杂枯燥概念,用形象例子通俗讲解,旨在入门理解。 DNS作用 DNS是用来做域名解析的。 相当于把网址翻译成实际ip地址,供其他设备访问。 一个例子 有一个网站的服务器IP地址为1.1.1.1,用电脑访问该网站的话只需…...

二叉树的性质与推导及常见习题整理

目录 一、性质推导 二、常见的二叉树性质习题 1. 某二叉树共有 399 个结点,其中有 199 个度为 2 的结点,则该二叉树中的叶子结点数为()。 2.在具有 2n 个结点的完全二叉树中,叶子结点个数为(&#xff…...

亚马逊卖家测评补单的重要性和缺点

对于亚马逊、沃尔玛、ebay、wish、newegg、速卖通、阿里国际站、shopee、lazada、temu、乐天、toktok、joom、ozon等卖家来说,测评补单是一个比较常见的话题,因为测评可以给自己产品留下优质的评价,让国外真实买家更加明确,便捷的…...

Java类和对象超详细整理,适合新手入门

目录 一、驼峰命名法 二、Java注释 三、转义符 四、Java程序它的基本结构是什么? 五、Java中的类 六、创建类 七、定义main方法 八、执行代码输出语句 九、Java中的对象 十、创建对象 十一、类与对象的关系 一、驼峰命名法 包名:多单词组成所…...

MySQL:连explain的type类型都没搞清楚,怎敢说精通SQL优化?

我们在使用SQL语句查询表数据时,提前用explain进行语句分析是一个非常好的习惯。通过explain输出sql的详细执行信息,就可以针对性的进行sql优化。 今天我们来分析一下,在explain中11种不同type代表的含义以及其应用场景。 1,sys…...

6.11 极分解

文章目录计算方法代码实现计算方法 一个复数可以写成极坐标形式:zreiθzre^{i\theta}zreiθ.这种分解,左边代表长度,右边代表角度。由此为灵感来源,前人对矩阵也有类似的分解。就是猜想一个线性变换对矩阵的作用,是不是可以分解为…...

Spring、SpringMVC、Shiro、Maven

一、SpringSpring是一个为了解决企业应用程序开发复杂性而创建的开源框架,其核心是IOC–控制反转、AOP–面向切面编程。框架的主要优势之一就是其分层架构(WEB层(springMvc)、业务层(Ioc)、持久层&#xff…...

element-plus 使用笔记

npm install element-plus --save自动导入 npm install -D unplugin-vue-components unplugin-auto-import// vite.config.jsimport AutoImport from unplugin-auto-import/vite import Components from unplugin-vue-components/vite import { ElementPlusResolver } from …...

《蓝桥杯每日一题》 前缀和·Acwing 3956. 截断数组

1.题目https://www.acwing.com/problem/content/3959/给定一个长度为 n 的数组a1,a2,…,an。现在,要将该数组从中间截断,得到三个非空子数组。要求,三个子数组内各元素之和都相等。请问,共有多少种不同的截断方法?输入…...

促进关键软件高层次人才培养:平凯星辰与华东师范大学签订联合博士培养合作协议

2022 年年初,平凯星辰入选首批工信部教育部支持联合培养国家关键软件高层次人才计划。该计划旨在探索关键软件产教融合育人模式,超常规加快培养一批急需高层次人才,以及探索关键软件联合技术攻关新模式。2022 年年底,在该计划下 平…...

Java程序员的日常——经验贴

关于文件的解压和压缩 如果你的系统不支持tar -z命令 前往讨论 如果是古老的Unix系统,可能并不认识tar -z命令,因此如果你想要压缩或者解压tar.gz的文件,就需要使用gzip或者gunzip以及tar命令了。 关于tar.gz可以这么理解,tar结…...

电商API社区,商品数据,关键词搜索等

1. 需要做的事情 l 商品详情页实现 1、商品查询服务事项 2、商品详情展示 3、添加缓存 2. 实现商品详情页功能 2.1. 功能分析 1、Taotao-portal接收页面请求,接收到商品id。 2、调用taotao-rest提供的商品详情的服务,把商品id作为参数传递给服务。接…...

LEADTOOLS 22.0.6 UPDATE-Crack

OCR SDK 库 许多 OCR 增强功能 LEAD 行业领先的人工智能 OCR SDK 在以下方面获得了显着的识别优化:斜体、大写和小写字母、文本行组装和单词构建、列检测、基线检测和文本行分割。 LEADTOOLS为.NET 6、. NET Framework、Xamarin、UWP、C#、VB、C/C、Java、Objective…...

什么是OJ? 东方博宜题库部分题解

什么是OJ ? Online Judge 比如这样的:Home - 一本通OJ Q:这个在线裁判系统使用什么样的编译器和编译选项? A:系统运行于Debian/Ubuntu Linux. 使用GNU GCC/G++ 作为C/C++编译器, C: gcc Main.c -o Main -fno-asm -O2 -Wall -lm --static -std=c99 -DONLINE_JUDGE C++: g++ …...

企业工程项目管理系统源码的各模块及其功能点清单

工程项目各模块及其功能点清单 一、系统管理 1、数据字典:实现对数据字典标签的增删改查操作 2、编码管理:实现对系统编码的增删改查操作 3、用户管理:管理和查看用户角色 4、菜单管理:实现对系统菜单的增删改查操…...

【电商开发手册】订单-下单

下单需求 所谓下单,本质上就是买卖双方通过确认一系列信息并且签订电子合同的过程 在电商平台的下单过程中,也需要确定买卖双方的一系列信息: 买方:用户确认收货地址、支付方式、配送方式等等 卖方:卖方需要进行供…...

数据结构 - 优先级队列(堆)

文章目录前言1.介绍优先级队列2. 认识堆3. 实现优先级队列3.1 了解优先级队列的构造方法:3.2 使用优先级队列解决问题:总结前言 本篇PriorityQueue优先级队列的介绍其底层是堆,关于堆的认识,使用优先级队列能解决的一些问题&…...

PDF内容提取器:ByteScout PDF Extractor SDK Crack

ByteScout PDF Extractor SDK – 用于 PDF 到 JSON、PDF 到 Excel、CSV、XML、从 .NET 和 ASP.NET 从 PDF 中提取文本的 PDF 提取器库 ByteScout PDF Extractor SDK – 用于 PDF 到 JSON、PDF 到 Excel、CSV、XML、从 .NET 和 ASP.NET 从 PDF 中提取文本的 PDF 提取器库​ ​ ​…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

JVM垃圾回收机制全解析

Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...

React核心概念:State是什么?如何用useState管理组件自己的数据?

系列回顾: 在上一篇《React入门第一步》中,我们已经成功创建并运行了第一个React项目。我们学会了用Vite初始化项目,并修改了App.jsx组件,让页面显示出我们想要的文字。但是,那个页面是“死”的,它只是静态…...

Canal环境搭建并实现和ES数据同步

作者:田超凡 日期:2025年6月7日 Canal安装,启动端口11111、8082: 安装canal-deployer服务端: https://github.com/alibaba/canal/releases/1.1.7/canal.deployer-1.1.7.tar.gz cd /opt/homebrew/etc mkdir canal…...