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日在北京举…...
 
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
 
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
 
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
 
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
 
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
 
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...
