Linux基础——Linux开发工具(上)_vim

前言:在了解完Linux基本指令和Linux权限后,我们有了足够了能力来学习后面的内容,但是在真正进入Linux之前,我们还得要学会使用Linux中的几个开发工具。而我们主要介绍的是以下几个:

yum, vim, gcc / g++, gdb, make / makefile, git

在这里插入图片描述
首先让我们来初步了解一下本篇的内容:
1. 学习yum工具,进行软件安装
2. 掌握vim编辑器使用,学会vim的简单配置

在这里插入图片描述

本篇主要内容:
Linux 软件包管理器 - yum
Linux 编辑器 - vim

在这里插入图片描述

Linux开发工具

  • 1. Linux 软件包管理器 - yum
    • 1.1 什么是软件包
    • 1.2 安装软件
    • 1.3 卸载软件
  • 2. Linux 编辑器 - vim
    • 2.1 什么是vim
    • 2.2 vim下的命令模式指令
    • 2.3 vim下的底行模式指令
    • 2.4 vim下的替换模式
    • 2.5 vim下的视图模式
    • 2.6 vim下的多文件编辑
    • 2.7 vim的简单配置
  • 3. 总结

1. Linux 软件包管理器 - yum

1.1 什么是软件包

首先在开始时,了解一下软件包是什么。

  1. 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.
  2. 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.
  3. 软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系.

yum是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上,也就是我们本篇需了解的软件包管理器!yum的功能就是搜索并下载需要的软件包

注意:一个服务器不能在同一时刻同时安装多个软件,而且使用yum必须联网!

我们也可以查看一共有哪些软件包:

指令:yum list

因为Linux下的软件包十分多,我这里就不演示了,如果想要精确查找软件包我们可以:

指令:yum list | grep 关键字

grep指令筛选出所有包含关键字的包,然后用之前讲过的管道符|连接
在这里插入图片描述
这个时候就是会输出我们查找的那个。


1.2 安装软件

如果我们想在Linux下安装软件包我们可以:

指令:yum install 软件包名

在这里插入图片描述

使用这条指令后,输入y确定下载查看到complete就说明下载完成

注意:

  1. yum下载时因为需要向系统目录写入内容一般需要sudo或切换到root账号才能下载
  2. yum在安装一共软件的过程中再安装其他软件,此时yum会报错!

所以我建议大家安装软件时都加上sudo来提权!


1.3 卸载软件

在Linux中卸载软件和安装软件差不太多:

指令:yum remove 卸载的软件

在这里插入图片描述

使用这条指令后,输入y确定下载查看到complete就说明下载完成

安装和卸载一样,我建议大家运用时都加上sudo来提权!

但是为什么我们在明明安装软件的时候要输入密码却在卸载时不用呢?
因为在Linux中,只要输入成功过一次密码,在短时间内就不用输入第二次

2. Linux 编辑器 - vim

2.1 什么是vim

Vim是一个高度可定制的文本编辑器,它是从Vi发展而来的加强版本,兼容Vi的所有指令。Vim不仅具有编辑文本的功能,还具备shell程序编辑的功能,可以使用不同颜色的字体来辨别语法的正确性,极大地方便了程序的设计和编辑。Vim的代码补完、编译及错误跳转等方便编程的功能特别丰富,因此在程序员中被广泛使用。Vim的设计理念是命令的组合,用户可以通过学习各种文本间移动/跳转的命令和其他普通模式的编辑命令,并灵活组合使用,从而比没有模式的编辑器更加高效地进行文本编辑。Vim还针对程序员做了优化,包括支持正则表达式的搜索、轻松重复命令的能力、直接记录和执行宏、自动完成、文件合并、鼠标集成、拼写检查、语法突出显示、分支撤消/重做历史、支持流行网络协议和文件存档格式等功能。

vim的模式比较多,我们主要介绍常用的五种模式:命令模式、插入模式、底行模式、替换模式、视图模式

让我们用vim来简单编辑一个文件
在这里插入图片描述

首先:进入vim后默认为命令模式(正常模式),命令模式无法输入内容,此时我们需要输入字符来切换模式

输入模式
命令模式切换到输入模式可以按:a i o
a:默认定位至你光标的下一个位置
o:默认定位至你光标的下一列开头
i:默认定位至你的光标处

在这里插入图片描述
其次:当我们想保存退出时,我们依然需要切换模式

底行模式
底行模式不能直接从输入模式切换,必须回到命令模式
所以我们要先从输入模式跳转到命令模式才能再跳转到底行模式

让我们来直观的看一下三种模式的联系
在这里插入图片描述
命令模式切换至底行模式
输入Shift + ;即可

插入模式或底行模式切换至命令模式
插入模式和底行模式切换至命令模式直接ESC即可

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


2.2 vim下的命令模式指令

让我们来了解一下命令模式的命令,在熟悉这些命令后,再之后能让我们更加高效

以下操作将不会演示,希望大家能一边看,一边操作一遍!!!


以下指令需要在命令模式下使用!
【移动光标】

光标的上下左右移动
h : 左移
j : 下移
k : 上移
l : 右移

定位至代码的第一行
指令:gg

定位至代码的最后一行
指令:shift + g

定位至代码的任意一行
指令:n + shift + g

定位指定行的开始
指令:shift + 6 >> ^

定位指定行的末尾
指令:shift + 4 >> $

向光标下移动n行
指令:n + enter

跳过光标处的一个单词至下一个单词开头
指令:w
跳过光标处的一个单词至下一个单词结尾
指令:e
回退光标处的一个单词至上一个单词开头
指令:b

注意:如果遇见的字符不构成单词,则一格一格的跳


在了解完光标的移动后,我们能快速定位,这让我们能更快使用其他指令

以下指令需要在命令模式下使用!
【其他操作】

复制当前行或n行
指令:yyn + yy

粘贴到当前行或粘贴n次
指令:pn + p

撤销上一步操作
指令:u

撤销上一步撤销
指令:ctrl + r

删除当前行或n行
指令:ddn + dd

向后/前剪切n个字符
指令:n + xn + X(注意大小写)

大小写相互转换
指令: ~ >> (shift + `)

当我们认真学习,熟悉了各个操作后,效率会大大提升!!!


2.3 vim下的底行模式指令

在使用底行模式之前,记住先按「Esc」键确定你已经处于命令模式,再按 shift + ; 即可进入底行模式。
以下指令需要在底行模式下使用!

设置行号
指令:set nu

取消行号
指令:set nonu

保存然后退出
指令:wq

有时我们还需要配合来使用,表示强制

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


查找字符
指令:/关键字

查找字符会将所有出现的关键字标亮,可以按n跳到下一个关键字位置!


执行指令
指令:! + 指令

若想在vim的情况下使用指令,可以在!后输入想执行Linux的指令,例如查看目录等。


2.4 vim下的替换模式

替换模式的出现是为了方便我们对代码的修改,进入替换模式,我们可以直接在原来的代码上修改,而不需要进入先删除再添加。

进入替换模式
指令:shift + r

进入替换模式后,输入将会直接替换!
在这里插入图片描述


2.5 vim下的视图模式

当我们在Linux下,需要进行多行注释或者取消注释时,如果一行一行的删除,是费力不讨好的,所以我们可以进入视图模式下,快捷操作

进入替换模式
指令:ctrl + v

在左下角显示visual就代表进入了视图模式

注释:

在进入视图模式后,j, k 移动选取注释行,SHIFT + i , 然后ESC即可注释选取行


取消注释

在进入视图模式后,j, k 移动选取注释行,然后按d删除‘/’

注意:在取消注释时,如果只选取了一个‘/’,那就是只删除一个。

在这里插入图片描述


2.6 vim下的多文件编辑

裸的vim可以同时打开多个文件

在底行模式下输入:vs 文件名

在这里插入图片描述
注意:无论打开多少个文件,光标所在的文件永远是当前文件!
当然,我们也可以用指令来切换当前文件:

指令:ctrl + ww


2.7 vim的简单配置

配置文件的位置
在目录/etc/下面,有个名为.vimrc的文件,这是系统中公共的配置文件。vim在启动时会自动扫描当前用户家目录下的.vimrc文件!

vim配置的核心就是向.vimrc中添加更多的配置选项

因为现在的vim没有自动换行也没有缩进和括号补齐,并不算是一个合格的C/C++代码编辑器。因为vim的配置比较复杂,某些vim配置还需要使用插件。这里我建议参考大佬写的全套vim配置

vim配置

里面详细介绍了vim的安装配置以及卸载!
在这里插入图片描述

安装方法放在这里

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

配置完成后,写代码将会和vs下一样轻松很多

3. 总结

本篇我们学习了很多指令,很多,看一遍,敲一遍不一定能完全记住,需要下来用心来慢慢记忆!
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
谢谢大家支持本篇到这里就结束了
在这里插入图片描述

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

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

相关文章

【初识Redis】

初识Redis Redis(Remote Dictionary Server)是一个开源的内存数据库,它提供了一个高性能的键值存储系统,并且支持多种数据结构,包括字符串、哈希、列表、集合和有序集合等。Redis的特点包括: 内存存储&…

C语言实验-数组、字符串以及指针

一&#xff1a; 求一个NN矩阵主、次对角线上所有元素之和。矩阵输入、矩阵输出、矩阵对角线求和分别用三个子函数实现。&#xff08;N的值由用户从键盘输入&#xff09; #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h>void print(int(*arr…

有哪些好用的局域网电脑监控系统软件?

企业员工不好管理&#xff1f;&#xff1f;&#xff1f; 局域网已成为企业日常运营不可或缺的一部分。 然而&#xff0c;随着网络技术的普及&#xff0c;员工在局域网中的不当行为也日益增多&#xff0c;如滥用网络资源、泄露敏感信息、消极怠工等。 为了解决这些问题&#x…

植物大战僵尸杂交版

1.感谢作者潜艇伟伟迷 2.大小大概110M&#xff0c;下载链接在下方 链接&#xff1a;https://pan.baidu.com/s/1Ew6iTg0_d_Ut8N9_18KGLw 提取码&#xff1a;yspa 3.祝大家玩的开心

C++-10

1.C一个程序&#xff0c;实现两个类&#xff0c;分别存放输入的字符串中的数字和字母&#xff0c;并按各自的顺序排列&#xff0c; 类中实现-一个dump函数&#xff0c;调C用后输出类中当前存放的字符串结果。 例如&#xff0c;输入1u4y2a3d,输出:存放字母的类&#xff0c;输出a…

树,二叉树的基本概念介绍,二叉树的性质

目录 树 树的定义 树的相关概念 树的存储结构 树在实际中的运用&#xff08;表示文件系统的目录树结构 &#xff09; 二叉树 二叉树的定义 现实中的二叉树 二叉树的特点 特殊的二叉树 1.斜树 2.满二叉树 3.完全二叉树 二叉树的性质 性质1&#xff1a;二叉树的第…

网络基础(1)网络编程套接字UDP

要完成网络编程首先要理解原IP和目的IP&#xff0c;这在上一节已经说明了。 也就是一台主机要进行通信必须要具有原IP和目的IP地址。 端口号 首先要知道进行网络通信的目的是要将信息从A主机送到B主机吗&#xff1f; 很显然不仅仅是。 例如唐僧要去到西天取真经&#xff0…

源码篇--Nacos服务--中章(8):Nacos服务端感知客户端实例变更-3

文章目录 前言一、客户端实例变更&#xff1a;二、实例变更感知&#xff1a;2.1 实例注册信息通知&#xff1a;2.1.1 接收DistroDataRequest 请求&#xff1a;2.1.2 onReceive 处理请求&#xff1a;2.1.3 processData 处理请求&#xff1a;2.1.4 handlerClientSyncData 处理数据…

k8s集群Grafana精选dashboard页面

文章目录 参考文档 Grafana自选模板推荐模板&#xff1a;13332、13824、14518Grafana默认配置我们选择 Node Exporter/Nodes 的 Dashboard 进去&#xff1a;点击 Kubernetes/Networking/Cluster 进去使用模板查看结果 Grafana接入Prometheus数据Grafana添加监控模板导入 1860_r…

体验用AI写代码

近两年&#xff0c;AI确实迎来了大爆发&#xff0c;2023年也成了AI时代的元年&#xff0c;去年下半年的时候&#xff0c;国内月之暗面出品的Kimi成了新的AI热门&#xff0c;也体验用Kimi修改论文&#xff0c;以及用图片生成代码&#xff0c;代码准确度还是蛮高的。做为SRE&…

使用Python的Tkinter库创建你的第一个桌面应用程序

文章目录 准备工作创建窗口和按钮代码解释运行你的应用程序结论 在本教程中&#xff0c;我们将介绍如何使用Python的Tkinter库创建一个简单的桌面应用程序。我们将会创建一个包含一个按钮的窗口&#xff0c;点击按钮时会在窗口上显示一条消息。 准备工作 首先&#xff0c;确保…

扩展大型视觉-语言模型的视觉词汇:Vary 方法

在人工智能领域&#xff0c;大型视觉-语言模型&#xff08;LVLMs&#xff09;正变得越来越重要&#xff0c;它们能够处理多种视觉和语言任务&#xff0c;如视觉问答&#xff08;VQA&#xff09;、图像字幕生成和光学字符识别&#xff08;OCR&#xff09;。然而&#xff0c;现有…

Docker--compose概述与部署

目录 一、概述 1. Compose简介 1.1 docker compose常用命令 1.2 Compose配置常用字段 2. YAML简介 2.1 YAML支持的数据结构 2.2 YML文件编写注意事项 2.3 Docker Compose文件结构 3. Docker-Compose安装 ​编辑 4.docker Compose撰写nginx 镜像 1. 准备环境 ​编辑…

Zabbix 安装部署说明文档

Zabbix是一个开源的网络监控和管理系统&#xff0c;其架构设计用于提供企业级的监控解决方案。以下是Zabbix的主要组件&#xff1a; 1.Zabbix Server&#xff1a;这是Zabbix系统的核心组件&#xff0c;负责接收Agent程序报告的系统可用性、系统完整性和统计数据。Zabbix Serve…

CSS 06

精灵图 为什么要使用精灵图 一个网页中往往会应用很多小的背景图像作为修饰&#xff0c;当网页中的图像过多时&#xff0c;服务器就会频繁地接收和发送请求图片&#xff0c;造成服务器请求压力过大&#xff0c;这将大大降低页面的加载速度,因此&#xff0c;为了有效地减少服务…

【深度学习】YOLOv5,金属表面的缺陷检测,GC10-DET数据集

目录&#xff1a; 文章目录 数据集数据集转换下载yolov5创建 dataset.yaml训练参数开始训练数据分布训练结果问询、帮助 数据集 数据集地址&#xff1a; https://github.com/lvxiaoming2019/GC10-DET-Metallic-Surface-Defect-Datasets 数据集下载方式&#xff1a; Downlo…

有趣的大模型之我见 | Claude AI

最近我的朋友圈被 Claude 3 严重刷屏。因为它在 Performance Benchmark 和 Vision Capabilities 中的表现荣登第一。 对 Claude AI 的喜欢是从它第二个版本出来。仅从我个人的简单应用场景的体验是&#xff0c;Claude 对于 prompt 的理解度&#xff0c;尤其是对中文的理解度高…

PHP源码_在线艺术字体在线生成转换设计网站源码

最全的字体转换器在线转换、艺术字体在线生成器和字体下载&#xff0c;包括书法字体在线转换、毛笔字在线生成器&#xff0c;更有草书字体、篆体字、连笔字、POP字体转换器等中文和英文字体。 支持自己添加字体&#xff0c;在线艺术字体转换器&#xff0c;织梦内核艺术字体在线…

.NET操作 Access (MSAccess)

注意&#xff1a;新项目推荐 Sqlite &#xff0c;Access需要注意的东西太多了&#xff0c;比如OFFICE版本&#xff0c;是X86还是X64 连接字符串 ProviderMicrosoft.ACE.OleDB.15.0;Data Source"GetCurrentProjectPath"\\test.accdb//不同的office版本 连接字符串有…

MySQL Workbench 数据库常用操作

大家好哦&#xff0c;我是程序员徐师兄&#xff0c;今天为大家打来的是MySQL Workbench 数据库常用操作。 文章目录 一、连接数据库二、进入数据库三、创建数据库四、设置默认数据库五、创建数据表六、查看表数据七、查看数据表 一、连接数据库 二、进入数据库 三、创建数据库 …