Linux开发工具:yum和vim的使用
目录
一. Linux下的软件
1.1 软件安装的三种方法
1.2 采用yum安装软件
1.3 yum源的问题
二. vim开发工具的使用
2.1 vim的三种基本模式
2.2 命令模式下vim的常用指令
2.2.1 定位相关指令
2.2.2 光标移动相关指令
2.2.3 插入相关指令
2.2.4 复制粘贴相关指令
2.2.5 替换和更改相关指令
2.2.6 其他指令
2.3 底行模式下vim的常用指令
2.3 vim的多文件操作
2.4 vim编译和运行程序
一. Linux下的软件
1.1 软件安装的三种方法
- 源代码安装 -- 安装困难,不适用于普通用户
- rpm安装 -- rmp相对于Linux下的安装包,需要用户自身去寻找安装源、安装版本,解决安装依赖问题,安装难度依旧较大。
- yum安装 -- 解决了安装源、安装版本和安装依赖的问题。
yum,类似于手机上的应用商店。
1.2 采用yum安装软件
以lrzsz软件(完成Windows和Liunx之间的文件传输)为例,演示如何采用yum安装和卸载软件。
- rz -- 从Winowds向Linux传输文件。
- sz 文件名 -- 将Windows下的文件传输到Linux。

三条命令查找并安装软件:
- yum list -- 打印所有可安装软件列表。
- yum list | grep 软件名(部分) -- 查找要安装的软件。
- yum -y install 软件名 -- 安装软件,这里-y选项是不询问是否安装,直接强制安装。
注意:如果使用yum安装已经存在的软件,那么系统会输出Nothing to do。

- 软件删除:yum -y remove 软件名
1.3 yum源的问题
我们在使用yum下载软件时,是通过系统内配置的yum源,去查找软件的下载地址,通过网络从远端服务器拉取下载资源,然后下载相应的软件。
- yum源:/etc/yum.repos.d/
通过指令 ls -l /etc/yum.repos.d/,可以查看/etc/yum.repos.d/目录下的内容如图1.2所示,其中:
- CentOS-Base.repo -- 官方yum源。
- CentOS-Epel.repo -- 扩展yum源。

扩展yum源有时候需要用户自行安装:
- yum -y install epel-release

由于Linux为国外开发的操作系统,因此内置的yum源一般为国外的链接,在国内使用下载速度会比较慢,可以进行替换,将国外yum源替换为国内的镜像。
- vim /etc/yum.repos.d/CentOS-Base.repo -- 具体yum源的查看(国内镜像/国外)

二. vim开发工具的使用
vim既可以进行文本编译,也可以写代码,甚至可以编译和运行代码,是一款多模式的编辑器。
2.1 vim的三种基本模式
- 命令模式(默认) -- 光标位置的切换、赋值粘贴字符/行、删除和替换字符/行,可以从命令模式进入插入模式和底行模式。
- 插入模式:进行文本编辑,只有在插入模式下才能使用键盘进行文本输入。
- 底行模式:文本的保存和退出、编译代码、运行代码、查找文件内容等。
三种基本模式间切换的快捷键:
- 命令模式 -> 插入模式:i、I、a、A、O、o
- 插入模式 -> 命令模式:ESC
- 命令模式 -> 底行模式:Shift + :
- 底行模式 -> 命令模式:ESC
注意:无法实现底行模式和插入模式的直接切换,必须以命令模式为中介进行切换。

2.2 命令模式下vim的常用指令
2.2.1 定位相关指令
指令 | 功能 |
---|---|
gg | 光标定位到首行 |
Shift + g | 光标定位到最后一行 |
n + Shift + g | 光标定位到第n行 |
Shift + $ | 定位到光标所在行的行末 |
Shift + ^ | 定位到光标所在行的行首 |
2.2.2 光标移动相关指令
指令 | 功能 |
---|---|
h | 光标左移一个字符 |
j | 光标下移一行 |
k | 光标上移一行 |
l | 光标右移一个字符 |
w | 以单词为单位右移或跨行移动 |
b | 以单词为单位左移或跨行移动 |
2.2.3 插入相关指令
在命令模式下输入下标中的指令,实现从命令模式到插入模式的切换。
指令 | 功能 |
---|---|
i | 在光标之前插入 |
I | 在光标所在行行首插入 |
a | 在光标位置之后插入 |
A | 在光标所在行的末尾插入 |
o | 在光标下方新建一行插入 |
O | 在光标上方新建一行插入 |
2.2.4 复制粘贴相关指令
指令 | 功能 |
---|---|
yy | 复制光标所在行 |
(n)yy | 复制从光标所在行开始向下的n行内容 |
p | 粘贴复制内容 |
(n)p | 粘贴n行复制内容 |
(n)dd | 剪切(删除)n行内容 |
2.2.5 替换和更改相关指令
指令 | 功能 |
---|---|
(n)r + 字符 | 更改从光标位置开始的连续n个字符 |
Shift + r | 进入到替换模式 |
(n)x | 删除光标之后的连续n个字符 |
2.2.6 其他指令
指令 | 功能 |
---|---|
Shift + ~ | 快速大小写转换 |
u | 撤回刚才的操作 |
Ctrl + r | 撤回u撤回的操作 |
2.3 底行模式下vim的常用指令
命令模式 -> 底行模式:shift + :
- 保存和退出相关指令:
指令 | 功能 |
---|---|
q | 退出 |
w | 保存 |
wq | 保存并退出 |
q! | 强制退出 |
w! | 强制保存 |
wq! | 强制保存并退出 |
- 搜索和设置相关指令
指令 | 功能 |
---|---|
set nu | 显示行号 |
set nonu | 取消行号显示 |
/ 内容 | 内容搜索 |

2.3 vim的多文件操作
- 在底行模式下,输入指令:vs 文件名 -- 实现多文件操作

- Ctrl + w -- 窗口间的切换
- 光标在哪个窗口,就对哪个窗口操作
2.4 vim编译和运行程序
- ! gcc code.c -- 编译C语言源文件代码
- ! gcc code.c -std=c99 -- 以c99标准编译C语言源文件代码
- ! g++ code.cpp -- 编译C++源代码
- ! g++ code.cpp -std=c++11 -- 以C++11的标准编译C++源代码
- ! ./a.out(可执行程序文件名) -- 运行代码

相关文章:

Linux开发工具:yum和vim的使用
目录 一. Linux下的软件 1.1 软件安装的三种方法 1.2 采用yum安装软件 1.3 yum源的问题 二. vim开发工具的使用 2.1 vim的三种基本模式 2.2 命令模式下vim的常用指令 2.2.1 定位相关指令 2.2.2 光标移动相关指令 2.2.3 插入相关指令 2.2.4 复制粘贴相关指令 2.2.5 替…...

Java基础重温巩固
方法 方法与方法之间是平级关系,不能嵌套return表示结束当前方法 基本数据类型和引用数据类型 基本数据类型:数据存储在自己的空间中 引用数据类型:数据存储在其他空间中,自己空间存储的是地址值 值传递 传递基本数据类型时&…...
Text2SQL 语义解析数据集、解决方案和学术论文资源整合
目录 什么是Text2SQL? Text2SQL语义解析数据集 Text2SQL解决方案 Text2SQL相关学术论文 欢迎大家,我是你们的博主,今天我们来讨论一个非常有趣且有挑战性的话题 —— Text2SQL。这个话题涉及到自然语言处理 (NLP),数据库查询语言 (SQL)&…...

redis集群+哨兵配置实操宝典
本地安装redis 配置集群和哨兵 1、下载安装redis #wget http://download.redis.io/releases/redis-5.0.12.tar.gz #下载安装包 #yum -y install gcc #安装依赖包 #tar -zxvf redis-5.0.12.tar.gz #cd redis-5.0.12 #make 2、主备配置 我们采用一主两备的结构 主机 192.168.3.…...
nginx的语法
概览 Nginx是一个高效、稳定的开源Web服务器和反向代理服务器,也可以用作邮件代理服务器、负载均衡器和HTTP缓存。以下是Nginx配置文件的一些基本语法和组成部分: 配置块(Block Directives):Nginx配置文件由许多嵌套的…...
华为OD机试之英文输入法(Java源码)
英文输入法 题目描述 主管期望你来实现英文输入法单词联想功能。 需求如下: 依据用户输入的单词前缀,从已输入的英文语句中联想出用户想输入的单词,按字典序输出联想到的单词序列, 如果联想不到,请输出用户输入的单词…...
一个团队管理者应该干什么?
文章目录 一、前言二、搞好团队气氛三、上下都要处理好四、做好计划并监督执行,控制风险。五、小结 一、前言 话说管理这个东西是猪有猪的想法,狗有狗的想法。所以不会有一个定论,总是有人定义这个管理方式,那个管理方式。看的管…...
服务器数据库文件加载到 MySQL
要将数据库文件加载到 MySQL 中,您可以使用以下步骤: 1. 确保 MySQL 服务器正在运行。您可以使用以下命令检查 MySQL 服务器的状态: sudo systemctl status mariadb 如果 MySQL 服务器没有运行,请使用以下命令启动它&…...

6-《网络面试》
6-《网络面试》 1.http是什么?http的工作机制?http报文?1.1 http工作机制:1.2 URL和http报文 2. HTTP请求方法和状态码3.Get和Post的区别4.HTTP的Header解析1.text/html2.x-www-form-urlencoded3.multipart/form-data4.applicatio…...

[高光谱]高光谱数据的获取与展示
一、环境准备 需要安装spectral包,这个包专门用于高光谱数据展示。 pip install spectral 二、数据加载 要预先准备原始高光谱的.mat数据和分类数据gt.mat(ground-turth);然后使用scipy.io中的loadmat(.)将其读入程序。 from scipy.io import loadmat…...

veth网卡的多队列及RPS
背景: 3.10内核下容器使用的veth网卡,默认开启的是一个队列,导致在某些单线程多TCP链接的应用场景下,出现某个CPU软中断高的情况。之前处理的方案一直是开启这个veth网卡的RPS,让其在多流场景下可以去分散到其它CPU上…...
国内的程序员数量是否已经饱和或者过剩?
首先,国内程序员数量确实在逐年增加,特别是近年来互联网行业迅猛发展,促进了技术人员需求的增长。然而,要判断程序员是否饱和并不是简单地看人数。下面我们细分几个角度来看看这个问题。 1、合格的程序员数量不够 国内的IT领域和…...
flutter不能抓包
需要获取手机IP地址设置才能抓包,获取IP地址,需要跟原生通讯获取, 1:获取IP地址 安卓代码: /*** 原生和flutter通讯交互*/ class MainActivity : FlutterActivity() {var methodChannel: MethodChannel? nullover…...

从桌面端到移动端,.NET MAUI为什么对WPF开发人员更简单?
.NET多平台应用程序UI(. NET MAUI)的市场吸引力与日俱增,这是微软最新的开发平台,允许开发者使用单个代码库创建跨平台应用程序。尽管很多WPF开发人员还没有跟上 .NET MAUI的潮流,但我们将在这篇文章中为大家展示他的潜…...
[Python]... 和pass
2.9 … 和pass 在Python中pass语句是用来在语法上需要一个语句的地方占位的。它不会执行任何操作。 ...是一个特殊的值,表示省略或未完成的代码。它可以用来实现抽象基类,也可以用来在语法上需要一个语句的地方占位,通常情况下,.…...

【信息安全案例】——软件解密技术(以OllyDbg为例)
目录 🕒 1. 软件解密技术🕘 1.1 概述🕘 1.2 爆破🕘 1.3 跟踪注册🕘 1.4 写出注册 🕒 2. 破解相关问题🕘 2.1 破解程度🕘 2.2 破解线索 🕒 3. 实验:使用 OllyD…...
【华为OD机试真题2023B卷 JAVAJS】阿里巴巴找黄金宝箱(I)
华为OD2023(B卷)机试题库全覆盖,刷题指南点这里 阿里巴巴找黄金宝箱(I) 知识点数组前缀和整数范围 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 一贫如洗的樵夫阿里巴巴在去砍柴的路上,无意中发现了强盗集团的藏宝地,藏宝地有编号从0~N的箱子,每个箱子上面…...

记录一次windows mysql5.7安装失败的过程
首先下载mysql安装包 windows版本 https://dev.mysql.com/downloads/installer/ 接着 在执行安装mysql msi安装包最后一步的时候,显示 Failed to start service MySQL57. 只有在任务处于完成状态(RanToCompletion、Fau 这时候 检查要么windows下面mysql的卸载残留没…...
前端知识复习一
1.页面导入样式时,使用link和import有什么区别? link属于html标签,import是css提供的。页面加载的同时,link同时也会加载;import引用的css等到页面加载完再加载 2.js函数有哪几种声明方式? 表达式和声明…...

低代码赋能生物药企数字化
一、关于复宏汉霖 汉霖是复星在2010年投资孵化的一家生物医药公司,经过这十几年的发展,2019年在港股上市,是生物药企18A企业之一。 经过这些年的发展,我们在管线方面布局了肿瘤、肢体、免疫、眼科类,从早研阶段到临床…...

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…...

JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...