Linux环境开发工具【yum与vim】
🌈个人主页:Yui_
🌈Linux专栏:Linux
🌈C语言笔记专栏:C语言笔记
🌈数据结构专栏:数据结构
文章目录
- 1.Linux软件包管理器yum
- 1.1 快速使用yum
- 2. Linux编辑器-vim的使用
- 2.1 vim的基本概念
- 2.2 vim的基本操作
- 2.3 vim命令模式指令集
- 2.4. vim末行模式命令集
1.Linux软件包管理器yum
- 在Linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序。但是这样太麻烦了,于是有些人把一些常用的软件提前编译好,做成软件包(可以理解成Windows上的安装程序)放在一个服务器上,通过包管理器可以很方便的获获取到这个编译好的软件包,直接进行安装
- 软件包和软件包管理器,就好比"App"和"应用商店"的关系
- yum(Yellow dog Updater,Modfied)是Linux下非常常用的一种包管理器,主要应用在Fedora,RedHeat,Centos等发行版上。
Linux中我们也要进行工具/指令/程序。安装,检查和卸载等,需要yum的软件
Linux安装软件的方式:
- 源代码安装 — 交叉编译工作(不适合小白)
- rpm包直接安装(同样不适合小白)
- yum/apt-get(apt-get是Debian 和 Ubuntu 中的软件包管理器)
yum:yum是我们Linux预装的一个指令,可以搜索,下载,安装对应的软件,相当于手机中的应用市场。
1.1 快速使用yum
在前面的文章中,偶尔我们也会使用到yum,利用yum安装了tree,man等指令。
查看yum中的所有软件
yum list
利用这个指令会在屏幕上显示目前yum中的所有软件。
因为软件太多的缘故,屏幕会有几秒短暂的卡顿。
查看yum中的指定的软件
yum list|grep "[command]"
演示:查找yum中的rzsz
简单解释一下rzsz:rzsz是用于Windows机器和Linux机器通过Xshell传输文件。安装完毕后就可以通过拖拽的方式将Windows的文件传输到Linux机器上了。
yum的安装功能
yum install -y [command]
注意:安装软件需要有root权限。
演示:安装rzsz
yum的删除功能:
yum remove -y [command]
演示:删除rzsz
2. Linux编辑器-vim的使用
vim键位图
vi和vim都是多模式编辑器,不同的是vim是vi的升级版本,vim不仅兼容vi的所有指令,而且还有一些新的特性在里面,例如语法高亮,可视化操作不仅可以在终端运行,也可以在x Windows、mac os、Windows。本文以vim来进行讲解。
2.1 vim的基本概念
vim存在多种种模式,本文只讲其中的3种常用的模式:
- 命令模式(command mode)
- 插入模式(insert mode)
- 底行模式(last line mode)
- 命令模式的功能:
控制屏幕光标的移动,字符,字或行的删除,移动复制某区段及进入insert mode下或者到last line mode - 插入模式的功能:
只有在插入模式下,才可以做文字输入,按[ESC]可回到命令模式。该模式是我们使用最频繁的编辑模式。 - 底行模式的功能:
文本保存或退出,也可以进行文件的替换,找字符串列出行号等操作。在命令模式下输入shift + ;
即可进入底行模式。
转化图
2.2 vim的基本操作
进入vim,在系统提示符输入vim及文件名后,就进入vim全屏幕编辑画面了
vim file.c
当你进入进入vim后,是处于命令模式的。如图:
如果你要输入文字就必须切换到插入模式
命令模式切换插入模式
- 输入a
- 输入i
- 输入o
当用户进入插入模式后,底行会出现insert,此时可以输入字符。
插入模式切换到命令模式
- 输入ESC
命令模式切换底行模式 - 输入
shift+;
当用户需要退出vim时就可以进入底行模式输入wq
(保存文件并退出)
2.3 vim命令模式指令集
在命令模式下除了进入插入模式和底行模式外还用着相当多的功能。
移动光标:
- vim可以直接使用键盘上的上下左右来移动光标,还可以通过[h]、[j]、[k]、[l]分别控制光标的左、下、上、右。
- 按[G]:移动到文章的最后
- 按[$]:移动到光标所在行的末尾
- 按[^]:移动到光标所在行的开头
- 按[w]:光标跳到下一字的开头
- 按[e]:光标跳到下个字的字尾
- 按[b]:光标回到上个字的开头
- 按[[n]l]:光标移到该行的第n个位置,如5l,9l
- 按[gg]:进入文本开始
- 按[shift+g]:进入到文本末行
- 按[ctrl]+[b]:屏幕往“后”移动一页
- 按[ctrl]+[f]:屏幕往“前”移动一页
- 按[ctrl]+[u]:屏幕往“后”移动半页
- 按[ctrl]+[d]:屏幕往“前”移动半页
删除文字 - [x]:每按一次,删除光标所在位置的一个字符
- [[n]x]:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
- [X]:大写的X,每按一次,删除光标所在位置的“前面”一个字符
- [[n]X]:例如,「20X」表示删除光标所在位置的“前面”20个字符
- [dd]:删除光标所在行
- [[n]dd]:从光标所在行开始删除#行
复制 - [yw]:将光标所在之处到字尾的字符复制到缓冲区中。
- [[n]yw]:复制n个字到缓冲区
- [yy]:复制光标所在行到缓冲区。
- [[n]yy]:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
- [p]:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完 成复制与粘贴功能。
替换 - [r]:替换光标所在处的字符。
- [R]:替换光标所到之处的字符,直到按下「ESC」键为止。
撤销上一次操作 - [u]:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。
- [ctrl + r]: 撤销的恢复
更改 - [cw]:更改光标所在处的字到字尾处
- [c[n]w]:例如,「c3w」表示更改3个字
跳至指定的行 - [ctrl]+[g]列出光标所在行的行号。
- [[n]G]:例如,[15G],表示移动光标至文章的第15行行首。
2.4. vim末行模式命令集
在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式。
列出行号
- [set nu]: 输入[set nu]后,会在文件中的每一行前面列出行号。
演示:输入set nu后的效果图
![[Pasted image 20240817134900.png]]
跳到文件中的某一行 - [[n]]:[[n]]号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,
再回车,就会跳到文章的第15行。
查找字符
[/关键字]::先按[/]键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按 - [n]会往后寻找到您要的关键字为止。
- [?关键字]:先按[?]键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直
- 按[n]会往前寻找到您要的关键字为止。
问题:/ 和 ?查找有和区别?操作实验一下
答案:区别在于/是从上往下找,?是从下往上找。
保存文件 - [w]: 在冒号输入字母「w」就可以将文件保存起来
离开vim - [q]:按[q]就是退出,如果无法离开vim,可以在[q]后跟一个[!]强制离开vim。
- [wq]:一般建议离开时,搭配[w]一起使用,这样在退出的时候还可以保存文件
想要深入的学习vim,可以看github上的Vim 从入门到精通
相关文章:

Linux环境开发工具【yum与vim】
🌈个人主页:Yui_ 🌈Linux专栏:Linux 🌈C语言笔记专栏:C语言笔记 🌈数据结构专栏:数据结构 文章目录 1.Linux软件包管理器yum1.1 快速使用yum 2. Linux编辑器-vim的使用2.1 vim的基本…...
laravel GuzzleHttp Client 无法获取返回的错误信息
Client发送一些请求,当返回状态不是200的时候,无法获取完整错误信息 $client new Client([base_uri > $this->getUri()./order/aaaaaa,timeout > 30,verify > false]);try {$response $client->request(POST, , [headers > [Lang&g…...
XMOS 多路音频解码器
当谈及高性能音频解码器,XMOS 是一个不容忽视的名字。作为音频解决方案领域的领军者,XMOS 的多路音频解码器在音频处理技术中扮演着至关重要的角色。下面我们一起深入探讨 XMOS 多路音频解码器去了解这一技术的魅力。 设计背景:追求音频极致…...

XSS小游戏(题目+解析)
xss题目练习地址: xss小游戏 游戏界面 一、Ma Spaghet! 我将题目要求进行翻译: 题目的主要要求就是:弹出一个(1337)的弹窗 开始解题: Let’s Go! 首先,传个参数看看 发现参数直接显示在了 < h2 >…...

《Redis核心技术与实战》学习笔记4——AOF日志:宕机了,Redis如何避免数据丢失?
文章目录 AOF 日志是如何实现的?三种写回策略 日志文件太大了怎么办?AOF 重写会阻塞吗?小结 大家好,我是大白。 如果有人问你:“你会把 Redis 用在什么业务场景下?”我想你大概率会说:“我会把它当作缓存使…...

NextJs - 服务端/客户端组件之架构多样性设计
NextJs - 服务端/客户端组件之架构多样性设计 前言一. 架构设计1.1 SSR流式渲染常见错误设计之 - 根页面同步阻塞1.2 架构设计之 - 客户端组件依赖于服务端组件数据① 使用 Redux 完成数据共享 1.3 架构设计之 - 单页内的分步骤跳转① 如何做到服务端组件和客户端组件之间的切换…...
使用 Python 进行 PDF 文件加密
使用 Python 解密加密的 PDF 文件-CSDN博客定义一个名为的函数,该函数接受三个参数:输入的加密 PDF 文件路径input_pdf、输出的解密 PDF 文件路径output_pdf和密码password。https://blog.csdn.net/qq_45519030/article/details/141256661 在数字化时代…...

Spring Boot集成RabbitMQ
目录 1.RabbitMQ简介2.添加依赖3.配置RabbitMQ连接4.DirectExchange4.1 消费者4.2 生产者4.3 测试4.4 一个交换机对多个队列4.5 一个队列对多个消费者 5.FanoutExchange5.1 消费者5.2 生产者5.3 测试 6.TopicExchange6.1 消费者6.2 生产者 1.RabbitMQ简介 RabbitMQ是一个由Erl…...

OLED屏幕制造工艺流程
OLED屏幕制造工艺流程是一个复杂且精细的过程,涉及多个关键步骤以确保最终的显示效果和性能。以下是OLED屏幕制造工艺流程的主要步骤: 1. 衬底制作与准备 材料选择:OLED器件需要一个透明的导电衬底,通常使用玻璃或塑料材料。 清…...
knowLedge-VueCLI项目中环境变量的定义与使用
1. env 1.1简介 在 Vue CLI 创建的项目中,你可以通过 .env 文件来定义环境变量。Vue CLI 支持多种 .env 文件,它们根据文件名中的前缀来决定何时加载和使用这些环境变量。 以下是一些常见的 .env 文件及其用途: .env:在任何环境…...

【C#】 接口 继承
简介 继承是面向对象编程的核心特性之一,它允许我们创建一个类(称为子类)来继承另一个类(称为基类)的属性和方法。 作用 这样,我们可以重用代码,减少重复,并使我们的代码更加模块…...

Self-Supervised Learning(李宏毅老师系列)
自学参考: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding BERT 论文逐段精读 视频课 课件资料 笔记 一、概述 自监督学习模型与芝麻街~ 参数量 ELMO:94MBERT:340MGPT-2:1542MMegatron&…...

8月16日笔记
只有DNS协议出网场景 DNS 协议是一种请求、应答协议,也是一种可用于应用层的隧道技术。DNS 隧道的工作原理很简单,在进行 DNS 查询时,如果查询的域名不在 DNS 服务器本机缓存中,就会访问互联网进行查询,然后返回结果。…...
苹果Mac电脑——装macOS和Windows双系统的方法
一、实验环境 在Windows系统电脑上制作MacOS启动U盘。准备一个大于16G的U盘。 二、实验步骤 2.1 在Windows系统电脑上制作MacOS启动U盘 MacOS镜像下载 在Windows系统电脑上制作MacOS启动U盘的方法 2.2 U盘插上苹果电脑,安装macOS系统 U盘插上苹果电脑…...

【C++ 面试 - 基础题】每日 3 题(十五)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…...

数学建模学习笔记
数学建模学习笔记 现学现卖,随缘更新QwQ 主要根据b站大师兄的视频整理而成,有不懂的可以去看原视频 List 数学建模学习笔记一、 层次分析法1.1 矩阵的一致性及其检验1.2 权重计算1.3 具体流程 二、模糊综合评测2.1 隶属函数2.2 隶属函数的确定方法2.3 模…...

个人可识别信息(PII) AI 去除 API 数据接口
个人可识别信息(PII) AI 去除 API 数据接口 ai / 隐私保护 基于 AI 模型自动去除个人识别信息(PII) 个人信息保护 / AI 模型 。 1. 产品功能 基于自有专业模型进行 PII 自动去除高效处理敏感信息全接口支持 HTTPS(TLS v1.0 / v1.1 / v1.2 /…...
【Python-办公自动化】1秒提取PPT文本内容形成目录保存至WORD
欢迎来到"花花 Show Python",一名热爱编程和分享知识的技术博主。在这里,我将与您一同探索Python的奥秘,分享编程技巧、项目实践和学习心得。无论您是编程新手还是资深开发者,都能在这里找到有价值的信息和灵感。 自我介绍: 我热衷于将复杂的技术概念以简单易懂…...

maven介绍与安装
一. maven概述 1. 关于项目依赖的jar包管理 问题描述: 直接在每个项目的lib文件夹中复制jar包会导致多个问题,包括jar包的重复存放、版本冲突以及手动管理带来的不便和错误。 问题分析: 重复存放:每个项目都保存一份相同的jar…...

瑞友科技项目经理认证负责人杨文娟受邀为第四届中国项目经理大会演讲嘉宾︱PMO评论
全国项目经理专业人士年度盛会 北京瑞友科技股份有限公司项目经理认证负责人杨文娟女士受邀为PMO评论主办的全国项目经理专业人士年度盛会——2024第四届中国项目经理大会演讲嘉宾,演讲议题为“瑞友科技项目经理人才培养体系落地实践”。大会将于10月26-27日在北京举…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

Vue3 PC端 UI组件库我更推荐Naive UI
一、Vue3生态现状与UI库选择的重要性 随着Vue3的稳定发布和Composition API的广泛采用,前端开发者面临着UI组件库的重新选择。一个好的UI库不仅能提升开发效率,还能确保项目的长期可维护性。本文将对比三大主流Vue3 UI库(Naive UI、Element …...

高效的后台管理系统——可进行二次开发
随着互联网技术的迅猛发展,企业的数字化管理变得愈加重要。后台管理系统作为数据存储与业务管理的核心,成为了现代企业不可或缺的一部分。今天我们要介绍的是一款名为 若依后台管理框架 的系统,它不仅支持跨平台应用,还能提供丰富…...
FOPLP vs CoWoS
以下是 FOPLP(Fan-out panel-level packaging 扇出型面板级封装)与 CoWoS(Chip on Wafer on Substrate)两种先进封装技术的详细对比分析,涵盖技术原理、性能、成本、应用场景及市场趋势等维度: 一、技术原…...

CMS内容管理系统的设计与实现:多站点模式的实现
在一套内容管理系统中,其实有很多站点,比如企业门户网站,产品手册,知识帮助手册等,因此会需要多个站点,甚至PC、mobile、ipad各有一个站点。 每个站点关联的有站点所在目录及所属的域名。 一、站点表设计…...

初探用uniapp写微信小程序遇到的问题及解决(vue3+ts)
零、关于开发思路 (一)拿到工作任务,先理清楚需求 1.逻辑部分 不放过原型里说的每一句话,有疑惑的部分该问产品/测试/之前的开发就问 2.页面部分(含国际化) 整体看过需要开发页面的原型后,分类一下哪些组件/样式可以复用,直接提取出来使用 (时间充分的前提下,不…...