Linux基础之yum和vim

目录

一、软件包管理器yum

1.1 软件包的概念

1.2 软件包的查看

1.3 软件包的安装和删除

二、Linux编辑器之vim

2.1 vim的基本概念

2.2 正常模式(命令模式)

2.3 底行模式

2.4 输入模式

2.5 替换模式

2.6 视图模式

2.7 总结


一、软件包管理器yum

1.1 软件包的概念

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

1.2 软件包的查看

       通过 yum list 命令可以罗列出当前一共有哪些软件包. 由于包的数目可能非常之多, 当我们只需要查询其中某些包时,就可以用grep指令进行筛选。例如:

yum list | grep lrzsz

结果如下:

1.3 软件包的安装和删除

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

sudo yum install + 想安装的软件包名

       yum 会自动找到都有哪些软件包需要下载, 这时候敲 "y" 确认安装.出现 "complete" 字样, 说明安装完成。
注意事项:

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

同样如果我们想要卸载一款软件也相当的简单,只需要一条命令就行了。

sudo yum remove + 你想删除的软件名

二、Linux编辑器之vim

2.1 vim的基本概念

简单来说,vim就相当于一款文本编辑器,通过其我们可以编辑我们所创建的文件内容。
vim总共有12中模式,但我们经常使用的就5种,本文就主要介绍这5种模式。

2.2 正常模式(命令模式)

如何进入正常模式呢?
其实当我们用vim打开一个文件时,默认进入的就是正常模式。
例如当我输入 vim test.c 时,我们会进入到如下界面:

那么在该模式我们可以干什么呢?
我们可以通过一些指令来复制删除一些内容,也可以跳转我们的所在行和光标所在位置。

  • 定位至代码的第一行
    在正常模式下输入 gg。
  • 定位至代码的最后一行
    在正常模式下输入shift + g 即 G。
  • 定位至代码的任意一行
    在正常模式下输入 n + shift + g。
  • 定位至特定一行的开始(即你的光标在该行的其他位置)
    在正常模式下输入 shift + 6 即 ^。
  • 定位至特定一行的末尾
    在正常模式中输入 shift + 4 即 $。
  • 光标的上下左右移动
    上移:k  下移: j   左移: h   右移:  l 。
  • 复制当前行
    输入 yy。
  • 复制n行(从当前行开始算)
    输入 n + yy。
  • 删除当前行
    输入 dd。
  • 删除n行
    输入 n + dd。
  • 粘贴
    输入 p。
  • 粘贴n次
    输入 n + p。
  • 对刚刚的操作进行撤销
    输入 u
  • 如果对撤销后悔
    输入 ctrl + r
  • 大小写字符的转换
    输入 shift + ` 即 ~ 。
  • 替换光标所在字符,或者n个字符
    n + r + 字符
  • 向前删除一个字符或n个字符
    n + shift + x 即 X。
  • 向后删除一个字符或n个字符
    n + x。
  • 查找同名单词(按 n 跳转)
    shift + 3 即#。
  • 以单词为单位向后跳转,支持跳行
    输入 w。
  • 以单词为单位向前跳转,支持跳行
    输入 b。

       这么多指令是不是给你整懵了啊,其实指令还有很多,我只是稍微列举了一些,看完这些指令你可能会问,这些操作我慢慢移动光标去进行就可以了呀,为什么要这些指令呢。是的,确实自己慢慢操作是可以达到同样的效果,但是效率不高,而且作为一名合格的码农,就应该好好的用指令进行操作。

2.3 底行模式

如何进入我们的底行模式呢?
只需要在正常模式中输入 shift + ; 即 :  就可以进入我们的底行模式了。

看光标位置就可以看出不同。
底行模式呢,主要来保存文件和退出vim的。
接下来就让我来介绍一下在底行模式的一些指令吧。

  • 设置行号
    输入 set nu。
  • 取消行号
    输入 set nonu。
  • 保存
    输入 w 可以加一个! 表示强制保存。
  • 退出
    输入 q 同样也可以加一个! 表示强制退出。
    注:保存和退出可以连一起,如 wq 表示保存并退出。
  • 查找关键字符
    输入 /关键字符
  • 跳转行
    输入 # + 行号
  • 同时编辑其他文件
    vs + 文件名

    此时在输入 ctrl +ww 即可跳转文件。

2.4 输入模式

在正常模式中,在键盘上敲击 a,i,o任意一个键即可进入输入模式。

  • 按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
  • 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
  • 按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

在输入模式中,就是正常的进行文本编辑了,写代码什么的。

2.5 替换模式

       当我们需要替换很多数据时,且在正常模式下不方便操作的时候,就可以进入我们的替换模式。在正常模式中输入 shift + r 即 R 即可进入替换模式。
       此时所有的输入都会进行字符替换。

2.6 视图模式

       当我们的代码有一部分不用的时候,要把其都注释掉,但是一行行去敲又太麻烦,这个时候我们就可以进入视图模式。
       在正常模式下输入 ctrl + v 即可进入视图模式。

  • 注释操作
    按j/k  上下去选择区域  然后输入 shift + i 后输入 // 再按ESC退出即可。
  • 批量化删除注释操作
    按hjkl  去选择区域  然后输入 d 即可。

2.7 总结

这里用一张图来概括本章所讲。

本章节的指令很多,还需要大家多多练习和消化。

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

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

相关文章

嵌入式Linux学习第四天启动方式学习

嵌入式Linux学习第四天 今天学习I.MX6U 启动方式详解。I.MX6U有多种启动方式,可以从 SD/EMMC、NAND Flash、QSPI Flash等启动。 启动方式选择 BOOT 的处理过程是发生在 I.MX6U 芯片上电以后,芯片会根据 BOOT_MODE[1:0]的设置来选择 BOOT 方式。BOOT_M…

Spring - 9 ( 10000 字 Spring 入门级教程 )

一: MyBatis XML 配置文件 Mybatis 的开发有两种方式: 注解XML 我们已经学习了注解的方式, 接下来我们学习 XML 的方式 MyBatis XML 的方式需要以下两步: 配置数据库连接字符串和 MyBatis写持久层代码 1.1 配置连接字符串和 MyBatis 此步骤需要进…

STC8增强型单片机开发 【第一个程序 - 点亮第一盏灯】

目录 一、创建项目 1. 创建一个新的项目 ​编辑 2. 配置开发板信息 ​编辑 3. 取消汇编配置 4. 项目结构 二、编码实现 1. 项目准备 2. 代码实现 点灯: 熄灯: 3. 编译烧录运行 配置编译输出 保存和编译代码 ​编辑 烧录 一、创建项目 1. …

OceanBase 如何实现多层面的资源隔离

OceanBase的资源隔离涵盖了多个方面,如物理机器间的隔离、不同租户之间的隔离、同一租户内的隔离,以及针对大型查询请求的隔离等。在实际应用OceanBase的过程中,我们经常会遇到这些操作场景或产生相关需求。这篇文章针对这些内容进行了简要的…

阿里云SLB监听虚拟服务器组时,既有部署在k8s容器里的应用,又有部署在ecs机器上的应用,k8s应用无法连接部署在ecs机器上的应用

一、背景 阿里云SLB可以添加多个监听端口,包括http和tcp,但是当被添加的后端应用,既有部署在k8s里,也有部署在ecs机器里。同一个slb下,这种混合方式的监听,会导致部署在k8s应用中的应用无法连接后者&#…

Spring扩展点(一)Bean生命周期扩展点

Bean生命周期扩展点 影响多个Bean的实例化InstantiationAwareBeanPostProcessorBeanPostProcessor 影响单个Bean的实例化纯粹的生命周期回调函数InitializingBean(BeanPostProcessor 的before和after之间调用)DisposableBean Aware接口在生命周期实例化过…

内存卡突然罢工?数据恢复有高招!

内存卡作为我们日常生活中常见的存储设备,广泛应用于手机、相机等设备中。然而,有时我们会遇到内存卡损坏打不开的情况,这时该如何应对呢?本文将为您详细解析内存卡损坏的原因,并提供有效的数据恢复方案,帮…

FPGA第二篇,FPGA与CPU GPU APU DSP NPU TPU 之间的关系与区别

简介:首先,FPGA与CPU GPU APU NPU TPU DSP这些不同类型的处理器,可以被统称为"处理器"或者"加速器"。它们在计算机硬件系统中承担着核心的计算和处理任务,可以说是系统的"大脑"和"加速引擎&qu…

如何进行Go语言的性能测试和调优?

文章目录 开篇一、性能测试1. 使用标准库中的testing包2. 使用第三方工具 二、性能调优1. 优化算法和数据结构2. 减少不必要的内存分配和垃圾回收3. 并发和并行 结尾 开篇 Go语言以其出色的性能和简洁的语法受到了广大开发者的喜爱。然而,在实际开发中,…

Linux进程——Linux进程间切换与命令行参数

前言:在上一篇了解完进程状态后,我们简单了解了进程优先级,然后遗留了一点内容,本篇我们就来研究进程间的切换,来理解上篇提到的并发。如果对进程优先级还有没理解的地方可以先阅读: Linux进程优先级 本篇…

Python程序设计 函数(三)

练习十一 函数 第1关: 一元二次方程的根 定义一个函数qg,输入一元二次方程的系数a,b,c 当判别式大于0,返回1和两个根 当判别式等于0,返回0和两个根 当判别式小于0,访问-1和两个根 在主程序中,根据函数返回…

Vue3:menu导航栏出现多个同一跳转路径的菜单处理

文章目录 需求整理实现思路实现过程 需求整理,实现思路 最近公司想将之前老的项目整理出来,因为这个老项目内容太杂什么页面都往里面塞,导致菜单特别多,公司就像将这个老的项目迁出来,这个旧的项目本来是后端PHP写的。…

【3dmax笔记】035: 车削修改器

一、车削修改器介绍 车削:图形通过绕轴旋转来创建三维效果。 开放的样条线,车削之后是面片。闭合的样条线,车削之后,是实体。 一、车削修改器实例 绘制高脚杯,首先在前视图绘制如下二维图形。 添加一个车削的修改器…

LeetCode509:斐波那契数(使用动态规划)

题目描述 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1) 1 F(n) F(n - 1) F(n - 2),其中 n > 1…

【Linux】gcc/g++的使用

🎉博主首页: 有趣的中国人 🎉专栏首页: Linux 🎉其它专栏: C初阶 | C进阶 | 初阶数据结构 小伙伴们大家好,本片文章将会讲解Linux中gcc/g使用的相关内容。 如果看到最后您觉得这篇文章写得不错…

深入了解 NumPy:深度学习中的数学运算利器

文章目录 1. 导入NumPy2. 创建NumPy数组3. 数组的算术运算4. N维数组4.1 创建和操作多维数组4.2 高维数组 5. NumPy的广播功能5.1 基本广播示例5.2 更复杂的广播示例 6. 访问数组元素6.1 基于索引的访问6.2 遍历数组6.3 基于条件的访问6.4 高级索引6.5 性能考虑 在深度学习和数…

VisualGDB : 在windows上开发和调试Linux代码(一)

传送门: 《VisualGDB : 解决编码导致的编译错误》 一、补充windows上 VisualGDB的安装 这里给大家附一个官方的下载路径:https://visualgdb.com/download/,根据自己的系统选择下载 笔者另附一个云盘的下载路径 VisualGDB https…

BACnet转MQTT网关智联楼宇json格式自定义

智能建筑的BACnet协议作为楼宇自动化领域的通用语言,正逐步迈向更广阔的物联网世界。随着云计算和大数据技术的飞速发展,如何将BACnet设备无缝融入云端生态系统,成为众多楼宇管理者关注的焦点。本文将以一个实际案例,揭示BACnet网…

spring高级篇(八)

本篇对Spring MVC 的执行流程做一个简单总结 MVC执行流程总结 当浏览器发送一个请求,例如http://localhost:8080/hello,请求到达服务器后,一般会进行如下操作: 1、首先会经过DispatcherServlet,默认映射路径为 /&…

element-plus el-cascader 懒加载实现-省市区街道选择及回显

大概思路: 准备一个接口可以通过父Id,查询到下一级省市区街道的信息;如下方的getRegionListOne确定后端的数据结构,需要在created里边处理数据回显逻辑el-cascader接收的数据格式是[‘’,‘’,‘’];后端的数据格式多为[{provinceId: ‘’, …