【Linux基础开发工具】yum生态vim的配置与使用
目录
前言
1. Linux 软件包管理器 yum
1.1 什么是yum
1.2 快速上手yum
1.3 yum生态
2. Linux编辑器vim
2.1 vim的模式
2.2 vim使用技巧
3. vim编辑器辅助功能配置
3.1 配置
3.2 用户sudo权限配置
总结
前言
Linux基础指令与权限之后,Linux系统开发工具的使用也至关重要,今天我将分享一些优化Yum生态和Vim配置与使用相关内容,帮助你打造一个高效的Linux开发环境。
1. Linux 软件包管理器 yum
在Linux系统的使用中难免需要安装一些软件,安装软件的方式有三种:
- 源代码安装(下载到程序的源代码, 并进行编译, 得到可执行程序)
- rpm包直接安装(使用较为复杂,国外资源下载较慢)
- yum /apt-get
前两种的安装方式过于复杂,为了解决安装软件麻烦的问题,于是便有了yum。
1.1 什么是yum
Yum (Yellowdog Updater Modified)是一个在Linux操作系统上管理软件包的工具,主要应用在Fedora、RedHat、Centos等发行版上 。Yum生态中包含了许多官方和第三方的软件包仓库,用户可以通过Yum来管理这些软件包仓库中的软件包。
yum:yum是Linux预装的一个指令,搜索、下载、安装对应的程序。
也可以理解为:yum就相当于Linux的应用商店
1.2 快速上手yum
- yum list
显示配置的仓库中所有可用软件包的列表
还可以使用特定选项来过滤 "yum list" 的输出
比如:
yum list installed 只显示已安装的软件包
- yum install [-y] command
它是在 Linux 系统中使用 Yum 软件包管理器安装软件的命令
- "yum install" 后面跟着要安装的软件包名称或软件包的 URL
- "-y" 是一个可选的参数,表示在安装软件包时不需要用户确认,直接自动确认安装
- "command" 是要安装的软件包的名称或 URL。这个命令会让 Yum 软件包管理器自动下载并安装指定的软件包
在安装一些软件包时,如果yum没有,这时可以尝试安装一下yum的扩展包:
yum install -y epel-release
- yum remove command
用于卸载已安装的软件包的命令
注意:
它会删除指定的软件包及其相关的依赖项,同时也会删除软件包安装时创建的配置文件和数据文件
1.3 yum生态
我们知道yum是 Linux 软件包管理器,那么问题来了,yum从哪里获取软件,软件源又是什么,它又是怎么获取的呢?
如下图:
当输入指令时,yum会发送请求给远端仓库,根据指令信息,在远端仓库进行搜索,然后进行反馈。
yum源又是什么?怎么来的呢?
为了方便一些软件的下载,国内的一些组织会将国外的软件提前下载,放在远端的仓库供用户使用,我们也可以在我们的Linux机器上查看我们的远端仓库。
vim /etc/yum.repos.d/CentOS-Base.repo
这里可以看到我的yum源是阿里云的远端仓库。当然yum源也是可以更改的,这里不再进行详细介绍,yum也是通过这个链接去访问远端仓库下载。
2. Linux编辑器vim
vim是一个高度可定制的文本编辑器,通常用于在Linux系统上进行编程和文本编辑。它具有许多强大的功能。
我们在Linux上敲代码几乎都是使用的vim编辑器。
启动编辑器:
vim + "文件名"
如果在使用vim指令时出现错误无法使用,那很可能是vim没有安装,安装指令:
sudo yum install vim
我们启动vim编辑器进入到一个文件后,我们按键盘上的键会没有反应,有的有反应,但不是我们想要的效果等这些情况,这都是由于不熟悉vim编辑器的原因。
2.1 vim的模式
vim编辑器有好多种模式,这里我们只介绍三种模式,以供我们的基本使用。
在进行文本编辑操作时,我们做常用的也就三种模式:
- 命令模式
- 插入模式
- 底行模式
我们使用vim编辑器打开一个文件时,默认是在命令模式
转换关系如下:
如果在使用vim的过程中遇到这样的情况:
这是因为vim异常关闭造成的,在底行我们可以看到一行选项,‘R’-->shift +r,可以恢复文件内容,但是下次打开还是这样的页面。
这是因为vim在异常关闭时会产生一个临时文件:
‘D’->shift +d选项可以删除这个文件,这时再次使用vim打开code.c就正常了,或者自己手动删除
注意:以 .(点)开头的文件是隐藏文件(ls -al指令可以查看到隐藏文件)
命令行常用指令:
- shift +&:光标定位到当前行最右侧结尾处
- shift + ^:光标定位到当前行最左侧开头处
- shift + g:光标定位到文本行最结尾
- n+shift + g:光标定位到n指定行的开头
- gg:光标定位到文本最开始
- h:光标左移
- j:光标下移
- k:光标上移
- l:光标右移
- w:按照 “ 单词 ” 在行内向后移动
- b:按照 “ 单词 ” 在行内向前移动
- n+yy:复制当前行/多行(n指定复制行数,单行操作时可以不加数字n)
- n+p:在下一行进行粘贴/多行(n指定粘贴次数,(单行操作时可以不加数字n)
- u:撤销编辑操作(undo)
- ctrl+r:对撤销进行插销
- n+dd:剪切(删除)当前行/多行(单行操作时可以不加数字n)
- shift+`-> ~:大小写进行快速切换
- n+r:替换当前光标所在的字符
- shift +r ->R:替换模式
- n+x:删除光标所在字符(n指定删除的字符个数,向右删除)
- n+shift+x:删除光标所在字符(向左删除)
- shift +3 ->#:高亮要查找的函数名
- n:下一个查找的函数/字符串名
底行模式:
- w:保存写入
- q:退出
- wq:保存并退出
- wq!:强制保存并退出(!为强制进行,可与上述底行命令结合使用)
- !command:在底行模式进行命令操作
执行完一次操作后:按enter键或键入命令继续
在底行模式下还可以创建文件:
在底行模式创建的文件如果没有w指令,只用:q退出并不会实质性创建文件。
创建文件后我们发现出现了多个窗口,并且他们是同一个底行,那底行输入到底是哪个窗口的?
光标所在界面就是我们所编辑的页面
- ctrl +ww:切换窗口
- set nu:添加行号
- set nonu:撤销行号
2.2 vim使用技巧
我们使用vim主要是用来编写代码,那么批量注释和批量去注释是我们经常用的,那么怎么在Linux的vim模式下批量注释代码呢?
批量注释步骤如下:
- ctrl +v(默认命令模式进行)
- hjkl区域选择
- shift+i->I(此时会进入插入模式)
- //
- Esc
批量去注释:
- ctrl+v
- hjkl区域选择
- d
3. vim编辑器辅助功能配置
在Linux环境下,每个用户都可以配置自己的vim编辑器,示例将会在普通用户下进行
在每个用户的家目录下一般情况下是没有.vimrc文件的。
.vimrc文件是用来配置Vim编辑器的用户自定义配置文件。用户可以在这个文件中设置Vim的各种参数、键盘映射、颜色方案、插件等。这样在启动Vim时,会自动加载这个文件中的配置
每个用户可以在自己的家目录下创建一个.vimrc文件并进行配置。
注意:Linux系统下自带有.vimrc文件的,在ect目录下,这个配置文件是root用户所使用的
3.1 配置
在用户家目录下创建一个 .vimrc文件(cd ~进入自己的家目录)
使用vim编辑器打开 .vimrc文件进行编辑(文件默认为空)
以下是一些编程常用指令的配置:
set nu " 显示行号
set cursorline " 突出显示当前行
hi Cursorline cterm=bold ctermbg=black ctermfg=green guibg=green "粗体显示选中行,用黑色框,字体标绿
set autoindent " 自动缩进
set cindent
set tabstop=4 " Tab键的宽度
set softtabstop=4 " 统一缩进为4
set shiftwidth=4
"括号补齐
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {}<ESC>i
inoremap " ""<ESC>i
3.2 用户sudo权限配置
我们已经基本了解了vim,现在可以使用vim编辑器来配置普通用户的sudo权限
- 切换到root用户下(sudoers文件只有root可以修改),使用vim编辑器打开sudoers文件
vim /etc/sudoers
- 打开之后向下移动光标找到## Allow root to run any commands anywhere的位置
- 复制root那一行,粘贴到root的下一行,将root名字改为自己要添加sudo权限的用户名字即可
总结
本期的内容操作的内容非常多,向大家分享了许多vim编辑器使用的技巧,大家私下可以实操一下,能够使用好vim编辑器可以让我们更高效的工作学习,好了以上便是本期的全部内容。最后,感谢阅读!
相关文章:

【Linux基础开发工具】yum生态vim的配置与使用
目录 前言 1. Linux 软件包管理器 yum 1.1 什么是yum 1.2 快速上手yum 1.3 yum生态 2. Linux编辑器vim 2.1 vim的模式 2.2 vim使用技巧 3. vim编辑器辅助功能配置 3.1 配置 3.2 用户sudo权限配置 总结 前言 Linux基础指令与权限之后,Linux系统开发工具的使用…...
java-HashMap、TreeMap、LinkedHashMap、ArrayList、LinkedList使用笔记
背景 Map<String, Integer> unsortedMap new HashMap<>(); unsortedMap.put("One", 1); unsortedMap.put("Two", 2); unsortedMap.put("Three", 3); unsortedMap.put("Four", 4); 一、关于排序 TreeMap&#…...
Oracle中mybatis批量更新报错ORA-00933:SQL命令未正确结束
项目场景: 最近在开发项目的过程中遇见了这个问题:Oracle中批量更新的时候报错 ORA-00933:SQL命令未正确结束 问题描述 mybatis批量更新报错ORA-00933:SQL命令未正确结束 <foreach item"item" index"index&q…...

Mysql综合案例练习<1>
MySql综合案例练习<1> 题目一题目二题目三题目四题目五题目六题目七题目八题目九题目十题目十一题目十二题目十三题目十四题目十五题目十六题目十七题目十八题目十九 题目一 创建数据库test01_library 创建表 books,表结构如下: CREATE DATABASE …...

Linux系统编程:线程总结
线程的概念 基本概念 所谓线程,通俗的说就是一个正在运行的函数。 在Linux系统中,线程是程序运行的最小单位,也被视为进程内部的控制序列。同一进程下的多个线程共享进程的所有资源,包括进程环境变量、打开的文件描述符、信号量…...

activemq启动成功但web管理页面却无法访问
前提: 在linux启动activemq成功!本地能ping通linux 处理方案: 确定防火墙是否关闭, 有两种处理方案:第一种-关闭防火墙;第二种-暴漏8161和61616两个端口 netstat -lnpt查看8161和61616端口 注意…...
【Flink on k8s】- 0 - Flink kubernetes operator 快速入门与实战
完整的课程,请点击链接。 目录 一、你将收获 二、适用人群 三、课程介绍...

毕设:《基于hive的音乐数据分析系统的设计与实现》
文章目录 环境启动一、爬取数据1.1、歌单信息1.2、每首歌前20条评论1.3、排行榜 二、搭建环境1.1、搭建JAVA1.2、配置hadoop1.3、配置Hadoop环境:YARN1.4、MYSQL1.5、HIVE(数据仓库)1.6、Sqoop(关系数据库数据迁移) 三、hadoop配置内存四、导…...

PHP使用HTTP代码示例模板
PHP是一种广泛用于服务器端的编程语言,它提供了许多内置的函数和扩展,以便开发人员能够轻松地处理HTTP请求和响应。在PHP中,您可以使用以下代码示例模板来处理HTTP请求和生成HTTP响应。 php复制代码 <?php // 处理GET请求 if ($…...

头歌题目-数组
任务描述 题目描述:找出具有m行n列二维数组Array的“鞍点”,即该位置上的元素在该行上最大,在该列上最小,其中1<m,n<10。 相关知识(略) 编程要求 输入 输入数据有多行,第一行有两个数m和n&#…...

C++ vector基本操作
目录 一、介绍 二、定义 三、迭代器 四、容量操作 1、size 2、capacity 3、empty 4、resize 5、reserve 总结(扩容机制) 五、增删查改 1、push_back & pop_back 2、find 3、insert 4、erase 5、swap 6、operator[] 一、介绍 vector…...

使用SLS日志服务采集Kong网关的日志
一、阿里云SLS 官方的接入文档已比较丰富了,本文不意重复说明此事。 站在使用的角度,以采集Kong的日志为示例,说明我们应该如何治理日志。 说白了,本文是想给你怎么省钱作一个建议,希望不会让你公司也“降本增笑”。…...

TA-Lib学习研究笔记(九)——Pattern Recognition (1)
TA-Lib学习研究笔记(九)——Pattern Recognition (1) 0.程序代码 形态识别的函数的应用,通过使用A股实际的数据,验证形态识别函数,用K线显示出现标志的形态走势,由于入口参数基本上…...

基于GAN的多尺度门合并多模态MRI图像合成
Multi-Modal MRI Image Synthesis via GAN With Multi-Scale Gate Mergence 基于GAN的多尺度门合并多模态MRI图像合成背景贡献实验方法生成器gate mergence (GM) strategy(门控融合策略)判别器 损失函数Thinking 基于GAN的多尺度门合并多模态MRI图像合成…...

浅谈https
1.网络传输的安全性 http 协议:不安全,未加密https 协议:安全,对请求报文和响应报文做加密 2.对称加密与非对称加密 2.1 对称加密 特点: 加解密使用 相同 秘钥 高效,适用于大量数据的加密场景 算法公开&a…...

计算两个结构的差
平面上有6个点,以6a1的方式运动 1 1 1 1 - - - 1 - - - 1 现在有一个点逃逸,剩下的5个点将如何运动? 2 2 2 3 - - - 3 - - - 3 将6a1的6个点减去1个点,只有两种可能,或者变成5a2,…...

class037 二叉树高频题目-下-不含树型dp【算法】
class037 二叉树高频题目-下-不含树型dp【算法】 code1 236. 二叉树的最近公共祖先 // 普通二叉树上寻找两个节点的最近公共祖先 // 测试链接 : https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/ package class037;// 普通二叉树上寻找两个节点的最近…...

使用cpolar完成内网穿刺
cpolar官网上有一句评论:cpolar是用过最简单的内网穿刺工具! 实际体验下来,cpolar确实是能够非常简单地实现内网穿刺 先说弊端,免费版的cpolar提供的穿刺地址,有效期为一天,进程连接数有限,如…...
git的使用:基础配置和命令行
前言 代码管理工具,任何开发都离不开的话题。 到了任何公司,第一件事肯定是配置个人的电脑。主要就是三点,配置对应的开发环境,配置各类开发工具和配置git等代码管理工具拉取代码。 这篇文章主要是git的配置和最常用(我指的是最常用)的命令行使用 git基础配置 git的安装 …...

若依微服务项目整合rocketMq
原文链接:ttps://mp.weixin.qq.com/s/IYdo_suKvvReqCiEKjCeHw 第一步下载若依项目 第二步安装rocketMq(推荐在linux使用docker部署比较快) 第二步新建一个生产者模块儿,再建一个消费者模块 第四步在getway模块中配置接口映射规…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...

搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
[USACO23FEB] Bakery S
题目描述 Bessie 开了一家面包店! 在她的面包店里,Bessie 有一个烤箱,可以在 t C t_C tC 的时间内生产一块饼干或在 t M t_M tM 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC,tM≤109)。由于空间…...

数据分析六部曲?
引言 上一章我们说到了数据分析六部曲,何谓六部曲呢? 其实啊,数据分析没那么难,只要掌握了下面这六个步骤,也就是数据分析六部曲,就算你是个啥都不懂的小白,也能慢慢上手做数据分析啦。 第一…...