【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进行跳转。

vim末行模式命令集

在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「」冒号即可进入末行模式。

  • 列出行号

    set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。

  • 跳到文件中的某一行

    #」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

  • 查找字符

    /关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一 直按「n」会往后寻找到您要的关键字为止。
    ?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。

    问题:/ 和 ?查找有和区别?操作实验一下

  • 保存文件

    w」: 在冒号输入字母「w」就可以将文件保存起来

  • 离开vim

    q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。
    wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件.

文本注释

批量化注释:
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.rhkb.cn/news/133163.html

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

相关文章

【LeetCode-简单题】剑指 Offer 58 - II. 左旋转字符串

文章目录 题目方法一:连续双指针翻转 题目 方法一:连续双指针翻转 class Solution {public String reverseLeftWords(String s, int n) {StringBuffer sb new StringBuffer(s);reverseWord(sb,0,n-1);reverseWord(sb,n,sb.length()-1);return sb.revers…

WebServer 解析HTTP 响应报文

一、基础API部分&#xff0c;介绍stat、mmap、iovec、writev、va_list 1.1 stat​ 作用&#xff1a;获取文件信息 #include <sys/types.h> #include <sys/stat.h> #include <unistd.h>// 获取文件属性&#xff0c;存储在statbuf中 int stat(const char *…

CH06_第一组重构(上)

提取函数&#xff08;Extract Function |106&#xff09; 曾用名&#xff1a;提炼函数&#xff08;Extract Function&#xff09; 反向重构&#xff1a;内联函数&#xff08;115&#xff09; 示例代码 function printOwing(invoice) {printBanner();let outstanding calcul…

SpringBoot表现层数据一致性

1.定义Restful类 说明&#xff1a;使用Data注解是Lombok库提供的一个注解&#xff0c;用于自动生成类的getter、setter、equals、hashcode和toString方法。 package com.forever.controller.utils;import lombok.Data;Data public class Restful {private Boolean flag;//dat…

Redis 常用命令

目录 全局命令 1&#xff09;keys 2&#xff09;exists 3) del(delete) 4&#xff09;expire 5&#xff09;type SET命令 GET命令 MSET 和 MGET命令 其他SET命令 计数命令 redis-cli&#xff0c;进入redis 最核心的命令&#xff1a;我们这里只是先介绍 set 和 get 最简单的操作…

Java集合(Collection、Iterator、Map、Collections)概述——Java第十三讲

前言 本讲我们将继续来讲解Java的其他重要知识点——Java集合。Java集合框架是Java编程语言中一个重要的部分,它提供了一套预定义的类和接口,供程序员使用数据结构来存储和操作一组对象。Java集合框架主要包括两种类型:一种是集合(Collection),存储一个元素列表,…

MySQL入门指南:数据库操作的基础知识

当谈到关系型数据库管理系统(RDBMS)时&#xff0c;MySQL无疑是最常见和广泛使用的一个。它是一个强大的工具&#xff0c;用于存储、管理和检索数据。在这篇博客中&#xff0c;我们将介绍MySQL的基本知识&#xff0c;包括数据库的操作、数据表的操作以及数据的增删改查~~ 目录 …

嵌入式学习笔记(27)uart stdio的移植

什么是stdio&#xff1f; &#xff08;1&#xff09;#include <stdio.h> &#xff08;2&#xff09;stdio:standard input output &#xff08;3&#xff09;stdio是os定义的默认的输入和输出通道。一般在PC机的情况下&#xff0c;标准输入指的是键盘&#xff0c;标准…

VIOOVI干货分享:企业车间动作作业分析如何改善?

企业车间动作作业分析是将操作动作分解为最小的分析单位&#xff0c;我们通常称之为动素。通过对动素的定性研究&#xff0c;找出合理有效的动作&#xff0c;缩短操作时间&#xff0c;实现标准化操作。在实际应用中&#xff0c;应分析和研究操作员的各种动作&#xff0c;去除没…

深入探讨Kubernetes(K8s)在云原生架构中的关键作用和应用

文章目录 1. 容器化的应用程序管理2. 自动化扩展和负载均衡3. 容器编排和调度4. 存储管理5. 自动化滚动更新6. 多云和混合云部署7. 监控和日志8. 安全9. 社区支持和生态系统10. 未来展望案例 &#x1f388;个人主页&#xff1a;程序员 小侯 &#x1f390;CSDN新晋作者 &#x1…

Nginx部署前后端分离项目(Linux)

Nginx代理前端页面、后端接口 一、前端打包二、后端打包三、Linux部署Nginx启动、暂停、重启服务器部署文件地址&#xff1a; 一、前端打包 npm run build二、后端打包 通过Maven 使用package打包 三、Linux部署 安装Nginx 安装环境 yum -y install gcc pcre pcre-devel z…

SpringMVC系列(七)之自定义注解

目录 一. Java注解简介 1.1 Java注解分类 1.2 JDK基本注解 Override Deprecated SuppressWarnings 1.3 JDK元注解 从 Java 7 开始&#xff0c;额外添加了 3 个注解: 1.4 自定义注解 如何自定义注解&#xff1f; 二. 自定义注解示例 枚举类&#xff1a; 示例一&…

【JUC】Java并发编程从挖坑到入土全解(一)

目录 线程基础知识 作者&#xff08;拜个神&#xff09; 什么是JUC 为什么会出现多线程 硬件方面 摩尔定律失效 软件方面 弊端 & 问题 从线程启动开始 Java线程理解以及openJDK的实现 更加底层的的C源码 线程基础知识 作者&#xff08;拜个神&#xff09; Dou…

A Mathematical Framework for Transformer Circuits—(三)

A Mathematical Framework for Transformer Circuits Two-Layer Attention-Only TransformersThree Kinds of CompositionPath Expansion of LogitsPath Expansion of Attention Scores QK CircuitAnalyzing a Two-Layer ModelInduction HeadsInduction heads的功能Induction h…

CVE-2023-1454:Jeecg-Boot SQL注入漏洞复现

文章目录 Jeecg-Boot SQL注入漏洞(CVE-2023-1454)复现0x01 前言0x02 漏洞描述0x03 影响范围0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 Jeecg-Boot SQL注入漏洞(CVE-2023-1454)复现 0x01 前言 免责声明&#xff1a;请勿利用文章内的相关技术从事…

Windows 性能突然打鸡血,靠 Bug 修复了多年顽疾

要说 的 Bug 集中地&#xff0c;当属资源管理器。 速度缓慢、卡顿、崩溃&#xff0c;不同设备、不同版本的用户都有不同的感受。 严格来说&#xff0c;这其实是 Windows 的传统艺能&#xff0c;要完美修复可不容易。 而作为小老弟的文件资源管理器&#xff0c;时不时来个无响…

【JUC系列-06】深入理解Semaphore底层原理和基本使用

JUC系列整体栏目 内容链接地址【一】深入理解JMM内存模型的底层实现原理https://zhenghuisheng.blog.csdn.net/article/details/132400429【二】深入理解CAS底层原理和基本使用https://blog.csdn.net/zhenghuishengq/article/details/132478786【三】熟练掌握Atomic原子系列基本…

VRTK4⭐二.VRTK4的项目基础配置

文章目录 &#x1f7e5; 硬件基本配置&#x1f7e7; 设置XR Plug-in Management&#x1f7e8; 添加项目Tilia&#x1f7e9; 配置项目Hierarchy &#x1f7e5; 硬件基本配置 解决使用OpenXR,HTC头显正常追踪,但手柄无法使用的问题. 问题如下: 当我们按照官方的标准流程配置完Op…

【HttpRunnerManager】搭建接口自动化测试平台实战

一、需要准备的知识点 1. linux: 安装 python3、nginx 安装和配置、mysql 安装和配置 2. python: django 配置、uwsgi 配置 二、我搭建的环境 1. Centos7 &#xff08;配置 rabbitmq、mysql 、Supervisord&#xff09; 2. python 3.6.8 &#xff08;配置 django、uwsgi&…

pcl--第四节 采样一致性算法RANSAC

RANSAC随机采样一致性算法简介 RANSAC是“RANdom SAmple Consensus”&#xff08;随机抽样共识或采样一致性&#xff09;的缩写&#xff0c;它是一种迭代方法&#xff0c;用于从包含异常值的一组数据中估计数学模型的参数。该算法由Fischler和Bolles于1981年发布。 RANSAC算法…