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企业之一。 经过这些年的发展,我们在管线方面布局了肿瘤、肢体、免疫、眼科类,从早研阶段到临床…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
