Linux - 第2节 - Linux环境基础开发工具使用

news2024/10/6 2:20:29

1.Linux 软件包管理器 yum

centos 7中安装软件的方式:

(1)源码安装

(2)rpm包安装

(3)yum安装

yum安装的好处:

(1)不用编译源码

(2)不用解决软件的依赖关系

例如:我们的Linux操作系统里面没有sl指令,如下图所示

在root用户下使用命令yum install sl。如果在普通用户下,需要使用命令sudo yum install sl,sudo是使用root身份执行该命令(sudo命令现在如果无法使用没关系,后面会讲),如下图所示,进行安装

如果想要卸载sl指令,在root用户下使用命令yum remove sl。如果在普通用户下,需要使用命令sudo yum remove sl,如下图所示,进行卸载

 从上面可知,如果我知道要安装什么软件,用yum可以很简单

无论在什么系统下,我们要安装别人的软件,需要经历两步:

第一步:需要别人先把代码给我编译成为可执行程序

第二步:需要有人将编好的软件放在用户能下载的地方(官网、应用软件市场)

Linux也是一样的

常规下载的过程我们举个例子,以应用市场APP为例:

在手机(客户端)上的应用市场APP中我们要下载抖音,点击下载,那么下载的请求就会通过网络发送给公司的应用市场服务器,服务器内部有APP列表,服务器找到抖音软件发送给手机(客户端),在手机上下载好抖音软件并安装就可以使用了

Linux也是一样的,Linux上有专门下载的软件yum(类似于手机上的应用市场APP),有Linux服务器,里面存放有常见的Linux工具软件,Linux机器里面的yum软件会根据你的要求,向Linux服务器发送软件请求,Linux服务器将软件发送给Linux机器,Linux机器进行下载安装

因此yum可以理解为类似于手机上的应用市场APP

在Linux上搜索安装卸载软件:

1.软件搜索:yum list | grep sl

yum list的作用是获取服务器所有的软件名,grep sl是搜索所有名字里面包含sl的软件,yum list | grep sl就得到了所有名字里面有sl的软件,如下图所示,其中第一列就是软件的名字

搜索结果以下图为例,介绍各部分内容

◆ 软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.

◆ "x86_64" 后缀表示64位系统的安装包, "i686" 后缀表示32位系统安装包. 选择包时要和系统匹配.
◆ "el7" 表示操作系统发行版的版本. "el7" 表示的是 centos7/redhat7. "el6" 表示 centos6/redhat6.
◆ 最后一列, base 表示的是 "软件源" 的名称, 类似于 "小米应用商店", "华为应用商店" 这样的概念

2.软件安装:yum install 软件名  /  sudo yum install 软件名

如下图所示,因为我们已经安装过sl了,所以下面提示什么也没有做 

注:安装的时候可以使用-y选项,系统就不会再问你是否确认安装了

3.软件卸载:yum remove 软件名  /  sudo yum remove 软件名

手机上的应用市场APP和Linux上使用的yum下载软件,是怎么知道去哪个服务器下载软件呢?

我们手机上的应用市场APP一定内置了很多下载链接或者网址,Linux也一样。yum在下载的时候会去/etc/yum.repos.d路径下找 Centos-Base.repo yum源。

yum源有很多,我们也可以自己配置yum源,其中yum在找下载链接的时候是在Centos-Base.repo yum这个源里面找的,如下图所示

使用命令nano Centos-Base.repo打开该这个yum源可以看见里面有很多网址,如下图所示

不是所有人的Linux上面的yum源都是国内的链接,如果不是国内的,或者安装软件特别慢,建议更新yum源(更新yum源很简单,自己在网上找教程即可)(注意做任何配置,绝对不要先rm删除,一定是先mv备份)

建议安装两个软件

第一个软件:rzsz工具

这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件。 安装完毕之后可以通过拖拽的方式将文件上传过去

查找命令:yum list | grep lrzsz  /  sudo yum list | grep lrzsz

下载命令:yum install -y lrzsz.x86_64  /  sudo yum install -y lrzsz.x86_64

第二个软件:epel-release扩展源

epel-release是一个扩展源,一些软件在正式的官方服务器上没有,epel-release是一个准官方的服务器列表

下载命令:yum install -y epel-release /  sudo yum install -y lrzsz.x86_64


2.Linux 编辑器 vim

2.1.vim的引入

vim下载命令:yum install -y vim  /  sudo yum install -y vim

引入:

在windows下,像vs2019这种编译器是集编写、编译、链接、运行、调试于一体的集成开发环境。在Linux下就不再是集成环境了,Linux下是一个个分散的工具,比如说vim,vim是一个编辑器,只能用来写代码,但是vim本身的功能十分强大,是多模式的编辑器

为什么要学习vim?

vim是Linux上自带的编辑器,有些情况下,我们需要在生产环境(上线环境)下快速定位问题,甚至需要快速修改代码,此时我们就需要使用vim

vi和vim的区别:
vi/vim 的区别简单点来说,它们都是多模式编辑器,不同的是 vim vi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window mac os 、windows

2.2.vim的基本概念

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

2.3.vim的基本操作

创建一个文件,用vim指令打开该文件,如下图所示

使用vim命令打开文件,此时的模式叫做命令模式,此时键盘上的很多按键是用不了的,我们进行shift :(shift :其实就是输入冒号,因为单敲冒号键输入的是分号,要输入冒号,必须摁住shift然后敲冒号键)操作,我们发现左下角有一个冒号,这种模式我们称为底行模式

如果我们想退出vim,在底行模式下输入q,如果想保存退出vim,在底行模式下输入wq

在命令模式下,进行 i 操作即可进入插入模式,插入模式下就可以写代码了。命令模式进入插入模式,除了i键还有a键和o键,a、i、o三个键的区别是:

a:光标向右移动一格并进入插入模式

i:光标不移动直接进入插入模式

o:光标向下移动一格并进入插入模式

这里其实我们只需要记住i就可以了

要想退出插入模式,点击Esc就会进入命令模式。任何模式想进入命令模式无脑Esc即可

如果想从底行模式回到命令模式,点击Esc即可

总结:三种模式的转换,快捷键如下图所示

使用vim编辑器写代码,并进行编译运行,如下图所示

2.4.vim正常模式命令集

命令模式下的文本批量化操作:

1.复制行内容

◆ yy:复制当前行     ◆ p:粘贴到当前行的后面

将光标放到要复制的行上输入yy, 输入yy后该行代码就被复制了,然后光标放到要粘贴的前一行位置输入p,整行代码就被粘贴过来了,如果想连续粘贴n次就输入np(例如如果想粘贴5次,就输入5p)

如果想复制连续的n行,光标放在这n行中的第一行,输入nyy(例如如果想复制2行,将光标放在第1行输入3yy)即可,然后光标放到要粘贴的位置输入p,n行代码就被粘贴过来了

2.剪切行内容

◆ dd:剪切(删除)当前行     

◆ p:粘贴到当前行的后面

将光标放到要剪切的行上输入dd,输入dd后该行代码就被剪切了,然后光标放到要粘贴的前一行位置输入p,整行代码就被粘贴过来了,如果想连续粘贴n次就输入np(例如如果想粘贴5次,就输入5p)

如果想剪切连续的n行,光标放在这n行中的第一行,输入ndd(例如如果想剪切2行,将光标放在第1行输入3dd)即可,然后光标放到要粘贴的位置输入p,n行代码就被粘贴过来了

注:dd可以当作删除连续的一行或n行来使用

3.撤销操作

◆ u:撤销刚刚的操作       

◆ ctrl+r:针对u操作,再次进行撤销

4.快速将光标移动到某一行

◆ shift g(本质上输入是G):光标快速定位到文本末尾

◆ gg:光标快速定位到文本开始

◆ n + shift g:光标快速定位到文本第n行

5.快速将光标移动到文本行的首尾部

shift $(本质上输入是$):光标快速定位到文本行的末尾

shift ^(本质上是^):光标快速定位到文本行的开始

我们称$和^为锚点

6.以单词为单位进行前后光标的移动

◆ w:以单词为单位后移光标

◆ b:以单词为单位前移光标

7.光标上下左右的移动

◆ h:左移光标

◆ j:下移光标

◆ k:上移光标

◆ l:右移光标

建议熟悉hjkl移动光标而不是上下左右键移动光标,因为后面一些组合命令是不支持上下左右键的。选用hjkl移动光标是因为老式键盘的上下左右是复用在这四个键里的,如下图所示。

快速记住hjkl如何对应上下左右:h在最左边所以是左,l在最右边所以是右,k大j小所以k上j下

8.光标处字母大小写变换

◆ shift ~(本质上是~):大小写快速切换

9.字符替换

◆ r + [替换的字符]:将光标处的字符进行替换

◆ n + r + [替换的字符]:将光标及其后n个字符进行替换

◆ shift r(本质上是R):进入replace模式,接下来输入的内容依次覆盖光标及其后面的内容(Esc退出replace模式)

10.删除字符

◆ x:删除光标处的字符

◆ n+x:删除光标及其后n个字符

注:从上面这些文本批量化操作可以看出,vim更适合处理大型项目或文件

2.5.简单vim配置

快速配置:

在gitee网站上搜索vimforcpp,打开下图一所示插件,复制下图二所示这一段命令内容。在shell里登录你的普通用户(不建议在root用户下执行),粘贴命令运行并输入root密码即可安装,如下图三所示。

安装好之后输入source~/.bashrc命令使vim配置生效,如下图四所示,这样我们登录的普通用户的vim就完成了配置(只对该普通用户的vim进行了配置)

注:该方法只支持centos 7


3.Linux 编译器 gcc/g++使用

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

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

相关文章

赶紧进来看看---C语言实现学生信息管理系统(2.0动态内存版)

本文介绍了将学生信息管理系统静态版本改造为动态内存版本,主要涉及改造思路,枚举类型的使用,动态内存函数和柔性数组的使用,动手写程序才能使基础知识更为牢固…(文章最后有源码展示) 学生信息管理系统1.0静态版->学生信息管理系统2.0动态内存版 c语言实现学生信息管理系统…

在python中使用ggplot2

python的ggplot2库:plotnine > 一.安装方法: pip install plotnine使用的编译器:pycharm 二.plotnine绘图 1.第一个图形 除了导包的操作不一致,其他类似 from plotnine import ggplot, geom_point, aes, stat_smooth, facet_wrap fr…

70.【JavaScript 6.0】

前端三要素1.前端三要素2.引入JavaScript3.JavaScript基本语法入门4.数据类型5.严格检查模式( use strict)6.Map和Set7.函数的定义和参数获取8.变量的作用域(局部 全局)-------> 和Java一样9.全局规范:10.方法的定义和调用11.内部对象1.Date--------->日期2.JSON--------…

自定义mybatis插件实现sql日志打印

自定义mybatis插件实现sql日志打印 mysql插件实现原理 官网的关键信息 参考文档 https://mybatis.org/mybatis-3/zh/configuration.html#plugins 官方文档 MyBatis 允许你在映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方…

【JavaSE】一篇文章领悟Java运算符

前言: 作者简介:爱吃大白菜1132 人生格言:纸上得来终觉浅,绝知此事要躬行 如果文章知识点有错误的地方不吝赐教,和大家一起学习,一起进步! 如果觉得博主文章还不错的话,希望三连支持&#xff01…

Java项目:超市管理系统(java+SSM+JSP+LayUI+jQ+Mysql)

源码获取:俺的博客首页 "资源" 里下载! 项目介绍 本项目分为超级管理员、总经理、店长、员工等角色,超级管理员可添加修改删除角色并进行角色菜单配置; 超级管理员角色包含以下功能: 商品管理:添…

C语言高级-4栈

14天阅读挑战赛 目录 一、栈的原理 1、栈的定义 2、栈的应用 (1)选课问题 (2)旅游:怎么样把每个城市去且仅去一遍? (3)栈的使用场景 (4)思考&#xf…

C++多态之虚函数表详解及代码示例

引言 C相对其他面向对象语言来说,之所以灵活、高效。很大程度的占比在于其多态技术和模板技术。C虚函数表是支撑C多态的重要技术,它是C动态绑定技术的核心。 如果对多态还不了解的小伙伴,可以点这里C多态详解基础篇。 在不考虑继承的情况下…

Vue3 Hooks 模块化抽离

Vue3中的Hooks 其实就是业务逻辑的抽离,跟Vue2中mixin 本质上是一样的:将当前组件的业务逻辑抽离到一个公共的文件中,提高逻辑复用性,让当前组件看起来更加清爽,不太一样的地方是我们封装hooks 的时候一般是返回一个函…

如何不改动 GatewayWorker 依赖包下自定义协议

前言: GatewayWorker 是 Workerman 的一个框架,对应用层开发者更友好。GatewayWorker 多了一个网关,也就是 Gateway,负责与客户端连接,消息转发等。而自定义的协议,也就是 gateway 面向客户端提供服务的协议…

java毕业设计——基于java+JDBC+sqlserver的物业管理系统设计与实现(毕业论文+程序源码)——物业管理系统

基于javaJDBCsqlserver的物业管理系统设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于javaJDBCsqlserver的物业管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。 文章目录: 基于javaJDB…

【H5微信授权】简单实现H5页面微信授权功能,微信开发者工具报错 系统错误,错误码-1,undefined解决办法【详细】

前言 最近写到了H5公众号,需要微信授权的功能。 这里记录一下授权的流程和踩了个坑 图片 授权代码执行后会跳转到授权的地方,没有授权的会有确认授权,授权过得会这样,直接自动登录,然后再跳转到中转页 授权流程 …

204 - 205.表的基本用法

表的基本操作 1.基本概念 1.1数据库和表的关系 每个数据库包含N张表,及表示在库中 1.2 表(二维表) 行和列组成,可以将复杂的数据保存在简单的表中 表中的每一行就是一条完整的记录 表中的列用于保存每条记录中特点的信息 2.…

【Redis】散列表(Hash)和列表(List)的运用和理解以及Hash和List应用场景对比详解

文章目录一. 散列表(hash)1.1 基本操作1.2 当value字符串的内容是数字时二.列表(List)2.1 基本操作三.Hash和List的应用场景3.1Hash的应用场景3.2List的应用场景一. 散列表(hash) Redis哈希是字符串类型字段和值的映射表。哈希特别适合存储对象。 Redis中…

mindspore.dataset的map问题

1、创建一个包含transform的自定义类并实例化 2. 类的实现如下: 请注意:在call函数中,我并没有调用init中定义的transform操作。 3. ImageFolder_forPretrain的定义如下。 在划红线的那行,出现错误。 错误信息: 疑问…

【Spark】spark-submit作业提交及参数设定

note 文章目录note一、Spark的常用启动方式1.1 local本地模式1.2 Standalone模式1.3 Spark on Yarn模式二、spark-submit 详细参数说明--master--deploy-mode--class--name--jars--packages--exclude-packages--repositories--py-files--files--conf PROPVALUE--properties-fil…

【趣学算法】Day3 贪心算法——背包问题

14天阅读挑战赛努力是为了不平庸~ 算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法! ❤️一名热爱Java的大一学生,希望与各位大佬共同学习进步❤️ 🧑个人主页:周小末天天开心 各位大…

tomcat应用部署

目录 tomcta介绍 tomcat安装 每个目录的作用 端口 实验开始 安装,启动MySQL 创建数据库 更改数据库连接 项目导入tomcat和数据库查看 重启tomcat 访问应用 【注意】 tomcta介绍 Tomcat的是完全开源的 Tomcat的是免费的 Tomcat不支持EJB 应用范围&#xff1…

创造一个表格编辑距离指标

这个是我自研的, 与百度PaddleOCR的方式略有不同。 数据的格式: 相当于一个目标检测有两类,分别是table和cell。 在预测值和标签中要先把根据位置关系所有的cell划分到不同的table中。 另外cell标签中还有起止位置 比如 四个数字代表行和…

window10远程桌面控制Ubuntu系统

Windows操作系统作为全球使用最多的个人操作系统,在我们身边随处可见,但放眼各类电子设备的操作系统,windows并不是一家独大,服务器系统大多基于Linux系统开发、手机操作系统几乎都是安卓、更不用说还有苹果的iOS、树莓派、Ubuntu…