【Linux环境】基础开发工具的使用:yum软件安装、vim编辑器的使用

在这里插入图片描述

​👻内容专栏: Linux操作系统基础
🐨本文概括: yum软件包管理、vim编辑器的使用。
🐼本文作者: 阿四啊
🐸发布时间:2023.9.12

Linux软件包管理 yum

什么是软件包

  • 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序。
  • 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.
  • 软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系。
  • yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat,
    Centos等发行版上。

关于rzsz

这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件。
安装完毕之后可以通过拖拽的方式将文件上传过去。
注意事项
关于 yum 的所有操作必须保证主机(虚拟机)网络畅通!!!
可以通过 ping 指令验证。

ping www.baidu.com

查看软件包

通过 yum list 命令可以罗列出当前一共有哪些软件包. 由于包的数目可能非常之多, 这里我们需要使用 grep 命令只筛选出我们关注的包. 例如:

yum list | grep lrzsz

结果如下:

lrzsz.x86_64 	0.12.20-36.el7 	@base

如何安装软件

通过 yum, 我们可以通过很简单的一条命令完成 gcc 的安装

sudo yum install lrzsz

yum 会自动找到都有哪些软件包需要下载, 这时候敲 “y” 确认安装。出现 complete 字样, 说明安装完成。

注意事项:

  • 安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成.
  • yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外
    一个软件, yum会报错。

如何卸载软件

sudo yum remove lrzsz

vim编辑器

vim的基本概念

我们讲解vim的三种模式(其实有好多模式,目前掌握这3种即可,文章后面会介绍到替换模式和视图模式),分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

  • 命令模式(Normal mode)
    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到底行模式。
  • 插入模式(Insert mode) 也称编辑模式
    只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
  • 底行模式(last line mode)
    文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入。

vim的基本操作

  • 进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:

    [Asi@localhost ~]$ vim test.c
    

    ⚠️注:进入vim之后,默认是在命令模式下,要切换到插入模式才能输入文字。

  • 命令模式切换到插入模式

    • 输入a、i 、o三种其一即可。
  • 插入模式切换到命令模式

    • 目前处于[插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到[正常模式]再删除文字。当然,也可以直接删除。
  • 命令模式切换到底行模式

    • 按住shift键 + ;,也就是冒号:
  • 退出vim及保存文件,在命令模式下,按下:进入底行模式。

    • :w(保存当前文件)
    • :wq(保存并退出)
    • :q!(不保存强制退出)

📌命令助记图:
在这里插入图片描述

vim命令模式命令集

  • 插入模式

    按「i」切换进入插入模式,按“i”进入插入模式后是从光标当前位置开始输入文件;
    按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
    按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

  • 从插入模式切换为命令模式

    按「ESC」键

  • 移动光标

    vim可以直接用键盘上的方向键来进行上下左右移动,但正规的vim是用小写英文字母「h」、「j」 「k」、「l」,分别控制光标左、下、上、右移一格
    -速记h在最左边,左移。l在最右边,右移。j可以看做是jump单词,表示下移。k可以看做是king,表示上移
    按[gg]:进入到文本开始
    按「G」:移动到文本末尾
    按「^」:移动到光标所在行的“行首”
    按「 $ 」:移动到光标所在行的“行尾”
    按「w」:光标跳到下个单词的开头,支持跨行
    按「b」:光标回到上个单词的开头,支持跨行
    按「e」:光标跳到下个单词的字尾,支持跨行
    按「#l」:光标移到该行的第#个位置,如:5l,56l
    按 「#G」:光标移动到第#行的位置,如:15G,跳转到15行
    按「ctrl」+「b」:屏幕往“后”移动一页
    按「ctrl」+「f」:屏幕往“前”移动一页
    按「ctrl」+「u」:屏幕往“后”移动半页
    按「ctrl」+「d」:屏幕往“前”移动半页

  • 复制

    yy」:复制光标所在行到缓冲区。
    #yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
    p」:将缓冲区内的字符粘贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
    #p」执行#次粘贴操作。
    yw」:将光标所在之处到单词尾的字符复制到缓冲区中。
    #yw」:复制#个单词到缓冲区

  • 撤销上一次操作

    u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次恢复。
    ctrl」+「r」: 撤销的恢复

  • 删除

    x」:每按一次,删除光标所在位置的一个字符
    #x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
    X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
    #X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
    dd」:删除光标所在行(配合「p」使用的话,就是剪切功能)
    #dd」:从光标所在行开始删除#行

  • 替换

    r」:替换光标所在处的字符。比如,输入r,之后输入x,光标处的字符被替换为了x
    #r」:替换光标位置开始的#个字符。比如,5r,之后输入x,光标位置开始的连续5个字符被替换为了x
    ~」:即「shift」+ 「`」,可进行字母的大小写转换。

    R」:替换光标所到之处的字符,直到按下「ESC」键为止

    ⚠️注意:当命令模式下输入大写的R,也就是shift + r,此时,vim会进入替换模式【REPLACE】,可以一直进行替换操作,即将原来的值给覆盖了,如果想要退出替换模式,需要按Esc键退出。

  • 查找

    #」:即ctrl + 3,光标移动到想要查找的单词位置,查找同名单词, 按n进行跳转。

文本注释

批量化注释:
ctrl + v进入视图模式【VISUAL BLOCK】,然后根据jk进行上下选中区域,然后按I键跳转到插入模式下,在文本前面加上//即可,此时选中的区域都被注释掉了,然后可按Esc键退出。

批量化取消注释:
ctrl + v进入视图模式【VISUAL BLOCK】,然后根据h``j k l选中区域,按d键,取消选中区域的注释。

vim支持多文件编辑

vim编译器下,是支持多文件同时编辑的,在一个文件的底行模式下,输入vs + 文件名,就能打开另一个文件。(这个文件可以不存在,不存在的话,写入保存就会被创建。目前有三种创建文件的方式:1.touch file.c;2.>file.c;3.vim file.c ,一旦vim保存文件,那么文件就会被创建。)
⚠️注意:

  1. 无论你打开多少个文件,光标只有一个!光标在哪个区域,表示正在编辑哪一个文件。利用ctrl + ww快捷键可进行文件之间的切换操作。
  2. 底行模式只有一个,那么多个文件,怎么底行模式只有一个呢?一切以光标为主!光标在哪个位置,表示的就是哪个文件的底行模式。

小技巧

vim filename +n:用来在 Vim 中打开名为 “test.c” 的文件并将光标定位到第 n 行的命令。
例如:

[Asi@localhost ~]$ vim test.c +7

那么有小伙伴们会问,这条命令有何意义呢?意义就是假设文件编译报错的时候,系统会显示报错在哪一行,此时以上这条命令增加了查找代码Bug的效率!

简单vim配置

vim的基础配置

  • 在root用户的/etc目录下,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
  • 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为.vimrc
  • 切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~
  • 在家目录下,可以创建私有配置文件,执行touch .vimrc

常用配置选项

  • 常见配置选项转自CSDN博主「一般市民Young」的原创文章,原文链接:vim基础配置 侵删。
 "====== Basic Configuration ======                                                                                                                           
set number             		 " 显示行号
set cursorline             	 " 突出显示当前行
hi Cursorline cterm=bold ctermbg=black ctermfg=green guibg=green "粗体显示选中行,用黑色框,字体标绿
set cursorcolumn             " 设置列高亮 
hi Cursorcolumn cterm=bold ctermbg=black ctermfg=green guibg=green "粗体显示选中列,用黑色框,字体标绿
set autoindent 		         " 自动缩进
set cindent
set tabstop=4 				 " Tab键的宽度
set softtabstop=4 		     " 统一缩进为4
set shiftwidth=4
set noexpandtab 			 " 不要用空格代替制表符 或者使用expandtab将tab保存为space
set smarttab 			     " 在行和段开始处使用制表符
set ignorecase 			     "搜索忽略大小写
set hlsearch 			     "搜索逐字符高亮
set incsearch 				 "增强搜索
set smartindent 			 " 提供自动缩进
syntax on					 " 语法高亮" 突出显示81列
set textwidth=80
set colorcolumn=+1
  • 测试:小伙伴们可以根据自己喜欢的选项写自己私有的配置文件,比如,在.vimrc中写入set nu,那么再打开任何一个文件,系统都会自动添加上行号了!

vim安装插件

要配置好看的vim,功能更强大的vim,原生的基本配置功能有限,可以选择安装插件来完善配置。下面我们开始:

VimForCpp:

说明:本项目来源于gtiee用户「 HGtz2222 」 详情请跳转:VimForCpp 侵删

项目简介:

本项目主要目标是帮助对vim配置方法不熟悉的新手封装的一键式vim环境安装包. 主要针对终端vim用户, 适合远程ssh连接Linux服务器进行开发的场景(例如使用阿里云服务器或者腾讯云服务器等)

支持环境:

目前只支持 Centos7 x86_64. 后面会考虑 Ubuntu 等发行版的支持.

安装方法

在 shell 中执行指令(想在哪个用户下让vim配置生效, 就在哪个用户下执行这个指令. 强烈 “不推荐” 直接在 root 下执行):

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

最后安装提示要求:

手动执行 "source ~/.bashrc" 或者重启终端, 使 vim 配置生效

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

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

相关文章

ShopXO商城系统文件上传0Day代审历程

Git仓库: https://github.com/gongfuxiang/shopxo简介: 两天攻防中,某政局内网横向发现多网段服务器,该服务器搭建了ShopXO商城系统(后来发现是开发临时搭建的,准备做二开用的)。结果花了30来秒审了个垃圾Day拿下该服…

INFINI Easysearch 与兆芯完成产品兼容互认证

近日,极限科技旗下软件产品 INFINI Easysearch 搜索引擎软件 V1.0 与兆芯完成兼容性测试,功能与稳定性良好,并获得兆芯产品兼容互认证书。 此次兼容适配基于银河麒麟高级服务器操作系统 V10 SP3 平台与兆芯 ZX-C、ZX-C、KX-5000、KX-6000、K…

防火墙 FireWall

这里写自定义目录标题 一、概述二、防火墙分类三、防火墙性能四、硬件防火墙定义五、硬件防火墙作用(拓扑图 ups)六、硬件防火墙品牌七、软件防火墙八、iptables一、iptables是什么?二、netfilter/iptables功能三、iptables概念四、iptables中…

无涯教程-JavaScript - DB函数

描述 DB函数使用固定余额递减法返回指定期间内资产的折旧。 语法 DB (cost, salvage, life, period, [month])争论 Argument描述Required/OptionalCostThe initial cost of the asset.RequiredSalvageThe value at the end of the depreciation (sometimes called the salv…

基于SSM的助学贷款管理系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

手撕代码是程序员的基本功吗?

前言: 现在众多企业都要求在面试中用“手撕代码”来考验应聘者的代码能力,你觉得手敲代码是否可以体现真实的基础实力? 本期话题: 1、你觉得手撕代码是程序员的基本功吗? 2、为什么会用“手撕代码”来考验程序员能力&a…

vue学习之属性绑定

内容渲染 采用 &#xff1a;进行属性渲染创建 demo3.html,内容如下 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"&…

c++day4

仿照string类&#xff0c;完成myString 类 #include <iostream> #include<cstring>using namespace std; class myString {private:char *str; //记录c风格的字符串int size; //记录字符串的实际长度public://无参构造myString():size(10){str…

Datax 数据同步-使用总结(二)

一、前言 这部分主要记录 datax 实现增量同步的方案。 二、核心思路 结合datax 提供的preSql、 postSql以及占位符&#xff0c;外加另外一张表同步日志表来记录相关同步信息。 三、版本迭代 3.1 初版本 where tbq.opera_date > cast(date_format(DATE_SUB(NOW(), inte…

SpringMVC之文件上传下载

SpringMVC之文件上传下载 一、文件上传二、文件下载三、多文件上传 一、文件上传 配置多功能视图解析器&#xff08;spring-mvc.xml&#xff09;&#xff1a;在Spring MVC的配置文件&#xff08;spring-mvc.xml&#xff09;中配置多功能视图解析器&#xff0c;以支持文件上传。…

C++11 新特性 ⑤ | 仿函数与 lambda 表达式

目录 1、引言 2、仿函数 3、lambda表达式 3.1、lambda表达式的一般形式 3.2、返回类型说明 3.3、捕获列表的规则 3.4、可以捕获哪些变量 3.5、lambda表达式给编程带来的便利 VC常用功能开发汇总&#xff08;专栏文章列表&#xff0c;欢迎订阅&#xff0c;持续更新...&a…

PyTorch实现注意力机制及使用方法汇总,附30篇attention论文

还记得鼎鼎大名的《Attention is All You Need》吗&#xff1f;不过我们今天要聊的重点不是transformer&#xff0c;而是注意力机制。 注意力机制最早应用于计算机视觉领域&#xff0c;后来也逐渐在NLP领域广泛应用&#xff0c;它克服了传统的神经网络的的一些局限&#xff0c…

JAVAEE初阶相关内容第十一弹--多线程(进阶)

目录 一、常见的锁策略 1乐观锁VS悲观锁 1.1乐观锁 1.2悲观锁 2.轻量级锁VS重量级锁 2.1轻量级锁 2.2重量级锁 3.自旋锁VS挂起等待锁 3.1自旋锁 3.2挂起等待锁 4.互斥锁VS读写锁 4.1互斥锁 4.2读写锁 5.公平锁VS非公平锁 5.1公平锁 5.2非公平锁 6.可重入锁VS不…

MemJam: A false Dependency attack against constant-time crypto implementations

作者&#xff1a;A. Moghimi, J. Wichelmann, T. Eisenbarth, and B. Sunar. 发布&#xff1a;International Journal of Parallel Programming 时间&#xff1a;Aug 2019. 笔记&#xff1a; 缓存定时攻击 1、攻击原理 共享缓存存在定时侧信道的风险&#xff08;例如在处理…

设计模式课件

设计模式 创建型设计模式的分类&#xff0c;定义结构型设计模式的分类&#xff0c;定义行为型设计模式的分类&#xff0c;定义 设计模式的分类&#xff0c;在23种设计模式中&#xff0c;每一种属于哪一种的设计模式设计模式的应用场景设计模式的图形&#xff08;考察较少&#…

华为云云耀云服务器L实例评测|带宽,磁盘,CPU,内存以及控制台监控测试

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月CSDN上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;AWS/阿里云资深使用…

Python从零到一构建项目

随着互联网的发展&#xff0c;网络上的信息量急剧增长&#xff0c;而获取、整理和分析这些信息对于很多人来说是一项艰巨的任务。而Python作为一种功能强大的编程语言&#xff0c;它的爬虫能力使得我们能够自动化地从网页中获取数据&#xff0c;大大提高了效率。本文将分享如何…

【技术分享】RK Android11系统SD卡启动方法

本文基于Purple Pi OH 3566主板&#xff0c;介绍Android11源码的修改&#xff0c;获得可从SD卡启动的Android11系统镜像。 Purple Pi OH作为一款兼容树莓派的开源主板&#xff0c;采用瑞芯微RK3566 (Cortex-A55) 四核64位超强CPU,主频最高达1.8 GHz,算力高达1Tops&#xff0c;…

海外商城小程序如何开发

随着全球化的发展和人们对跨境购物的需求逐渐增加&#xff0c;海外商城小程序成为了众多电商平台的重要组成部分。本文将深入探讨如何搭建海外商城小程序&#xff0c;从技术实现到用户体验设计&#xff0c;为开发者提供专业且有深度的思考&#xff0c;以帮助他们打造出色的跨境…

手写RPC框架--13.优雅停机

优雅停机 优雅停机a.优雅停机概述b.服务端实现优雅停机c.客户端实现优雅停机d.优雅启动 优雅停机 a.优雅停机概述 当我们快速关闭服务提供方时&#xff0c;注册中心感知、以及通过watcher机制通知调用方一定不能做到实时&#xff0c;一定会有延时&#xff0c;同时我们的心跳检…