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企业之一。 经过这些年的发展,我们在管线方面布局了肿瘤、肢体、免疫、眼科类,从早研阶段到临床…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
