【Linux基础开发工具】yum生态vim的配置与使用

news2024/11/15 2:06:42

目录

前言 

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模式下批量注释代码呢?

批量注释步骤如下:

  1. ctrl +v(默认命令模式进行)
  2. hjkl区域选择
  3. shift+i->I(此时会进入插入模式)
  4. //
  5. Esc

 批量去注释:

  1. ctrl+v
  2. hjkl区域选择
  3. 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编辑器可以让我们更高效的工作学习,好了以上便是本期的全部内容。最后,感谢阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1273253.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[操作系统] 文件管理

文章目录 5.1 磁盘调度算法1. 先来先服务算法( First Come First Served, FCFS) 算法2. 最短寻道时间优先算法( Shortest Seek Time First, SSTF) 算法3. 扫描算法( SCAN ) 算法4. 循环扫描算法( Circular Scan, CSCAN ) 算法5. LOOK 与 CLOOK 算法 5.2 进程写文件时&#xff0…

2023.11.27 使用anoconda搭建tensorflow环境

2023.11.27 使用anoconda搭建tensorflow环境 提供一个简便安装tensorflow的方法 1. 首先安装anoconda&#xff0c;安装过程略&#xff0c;注意安装的时候勾选安装anoconda prompt 2. 进入anoconda prompt 3. 建立python版本 conda create -n tensorflow1 python3.84. 激活t…

BUUCTF [ACTF新生赛2020]swp 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 得到的 flag 请包上 flag{} 提交。 密文&#xff1a; 下载附件&#xff0c;得到一个.tar文件。 解题思路&#xff1a; 1、使用WinRAR解压.tar文件&#xff0c;得到两个.zip文件。 解压wget.zip文件&#xff0c;得…

如何有效的进行 E2E

一、前言 本文作者介绍了什么是E2E测试以及E2E测试测什么&#xff0c;并从对于被测系统、测试用例、测试自动化工具、测试者四个方面的要求&#xff0c;介绍了如何保证E2E测试有效性&#xff0c;干货满满&#xff0c;值得学习。 二、什么是E2E测试 相信每一个对自动化测试感…

MySQL图书管理系统(49-94)源码

-- 九、 子查询 -- 无关子查询 -- 比较子查询&#xff1a;能确切知道子查询返回的是单值时&#xff0c;可以用>&#xff0c;<&#xff0c;&#xff0c;>&#xff0c;<&#xff0c;!或<>等比较运算符。 -- 49、 查询与“俞心怡”在同一个部门的读者的借…

Python VIP 付费漫画,无需充值随便霍霍,零基础也能学会!

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 环境使用: Python 3.10 Pycharm 模块使用: requests >>> pip install requests 数据请求模块 parsel >>> pip install parsel 数据解析模块 …

【开源】基于Vue+SpringBoot的独居老人物资配送系统

项目编号&#xff1a; S 045 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S045&#xff0c;文末获取源码。} 项目编号&#xff1a;S045&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询社区4…

Embedding压缩之hash embedding

在之前的两篇文章 CTR特征重要性建模&#xff1a;FiBiNet&FiBiNet模型、CTR特征建模&#xff1a;ContextNet & MaskNet中&#xff0c;阐述了特征建模的重要性&#xff0c;并且介绍了一些微博在特征建模方面的研究实践&#xff0c;再次以下面这张图引出今天的主题&#…

销售客户分配管理细则

随着市场竞争的不断加剧&#xff0c;销售团队的有效管理变得愈发重要。其中&#xff0c;客户分配是销售团队成功的关键之一。一个科学合理的销售客户分配管理细则不仅可以提高销售团队的整体工作效率&#xff0c;还能够优化客户体验&#xff0c;促使销售业绩持续增长。下面是一…

Jmeter接口测试:jmeter_逻辑控制器_随机控制器随机顺序控制器

随机控制器 当该控制器下有多个子项时&#xff0c;每次循环会随机执行其中一个 Ignore sub-controller block&#xff08;忽略子控制器模块&#xff09; 如果勾选了此项&#xff0c;随机控制器下的子控制器中的多个子项只会被执行一个 随机顺序控制器 当该控制器下有多个子项…

5. 文件属性和目录

5. 文件属性和目录 1. Linux 系统的文件类型1.1 普通文件1.2 目录文件1.3 字符设备文件和块设备文件1.4 符号链接文件1.5 管道文件1.6 套接字文件 2. stat 系统调用2.1 struct stat 结构体2.2 st_mode 变量2.3 struct timespec 结构体 3. fstat 和 lstat 函数3.1 fstat 函数3.2…

反欺诈指南:东南亚数字经济反欺诈注意事项

目录 东南亚各类网络欺诈肆虐 科技助力东南亚反欺诈 东南亚做反欺诈需要注意四个方面 据谷歌、淡马锡和贝恩公司发布的一份报告显示&#xff0c;尽管东南亚地区的经济增长有所放缓&#xff0c;但2023年数字经济仍预计创造约100亿美元的收入&#xff0c;数字支付占该地区总交易额…

石油化工隐蔽设备AR可视化检修协助系统让新手也能轻松上岗

随着城市基础设施建设的不断推进&#xff0c;地下管线巡检工作的重要性日益凸显。传统的巡检方法已无法满足现代都市的高效运营需求。此时&#xff0c;地下管线AR智慧巡检远程协助系统应运而生&#xff0c;凭借其独特的特点与优势&#xff0c;为城市地下管线巡检带来了革命性的…

98.套接字-Socket网络编程1(基础概念)

目录 1.局域网和广域网 2.IP 互联网协议(Internet Protocol) IP的作用 3.查看IP地址 Windows上查看IP ​编辑 Linux上查看IP 4.端口 主要类型&#xff1a; 用途&#xff1a; 示例&#xff1a; 端口的表示&#xff1a; 5.OSI/ISO 网络分层模型 1.局域网和广域网 …

《C++ Primer》第10章 算法(二)

参考资料&#xff1a; 《C Primer》第5版《C Primer 习题集》第5版 10.4 再探迭代器&#xff08;P357&#xff09; 除了为每个容器定义的迭代器外&#xff0c;头文件 iterator 中还定义了额外的几种迭代器&#xff1a; 插入迭代器&#xff08;insert iterator&#xff09;&…

Selenium定位元素的方法css和xpath的区别!

selenium是一种自动化测试工具&#xff0c;它可以通过不同的定位方式来识别网页上的元素&#xff0c;如id、name、class、tag、link text、partial link text、css和xpath。 css和xpath是两种常用的定位方式&#xff0c;它们都可以通过元素的属性或者层级关系来定位元素&#…

【UE】UEC++委托代理

【UE】UEC委托代理 一、委托的声明与定义 #pragma once#include "CoreMinimal.h" #include "GameFramework/GameModeBase.h" #include "DelegateGameMode.generated.h"// // Declare DECLARE_DELEGATE // DECLARE_DELEGATE(FDeclareDelegate_…

Python中的Slice函数:灵活而强大的序列切片技术

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com Python中的Slice函数是一种强大且灵活的序列切片技术&#xff0c;用于从字符串、列表、元组等序列类型中提取子集。本文将深入研究Slice函数的功能和用法&#xff0c;提供详细的示例代码和解释&#xff0c;帮助读…

java操作windows系统功能案例(一)

下面是一个Java操作Windows系统功能的简单案例&#xff1a; 获取系统信息&#xff1a; import java.util.Properties;public class SystemInfo {public static void main(String[] args) {Properties properties System.getProperties();properties.list(System.out);} }该程…

【智能家居】三、添加语音识别模块的串口读取功能点

语音识别模块SU-03T 串口通信线程控制代码 inputCommand.h&#xff08;输入控制指令&#xff09;voiceControl.c&#xff08;语音控制模块指令&#xff09;main.c&#xff08;主函数&#xff09;编译运行结果 语音识别模块SU-03T AI智能语音识别模块离线语音控制模块语音识别…