Linux基础环境开发工具的使用(yum,vim,gcc,g++)(上)

简介: Linux基础环境开发工具的使用(yum,vim,gcc,g++)

首先先说明一点:

Centos系统适用于yum

而Ubanto适用于apt-get

一.yum

在Linux中我们也要进行工具/程序/指令的安装,检查和卸载,

而我们安装软件的方式:

1.源代码安装-需要进行交叉编译的工作

一般那些很强的程序员中的大佬才能拿捏

2.rpm包直接安装,也很麻烦

3.yum直接安装

这就需要用到yum了

那么yum是什么呢?

1.yum的快速入门

yum:是我们Linux系统中预装的一个指令,负责搜索,下载,安装对应的软件

就像是手机上的应用商店等等,也是一个软件,

只不过是厂商内置的

而yum就相当于Linux中的应用商店

就像是是我们平常在手机上下载软件都是在应用商店中下载

在Linux中平常下载软件就是在yum中下载

而yum的基本指令是:

sudo yum install 软件/指令/工具的名字
sudo yum install -y 软件/指令/工具的名字:这个-y代表同意安装
否则会询问你是否确定要安装对应的软件/指令/工具
如果我们想要移除一个命令
yum remove command

执行sudo命令需要在sudoers file配置文件中

我们这篇博客中也会介绍使用vim来修改sudoers file文件

大家也可以切换为root用户

这样的话使用yum就不需要用sudo命令了

我这里切换为root来使用yum命令

1.yum安装软件

大家可以先安装一下这个sl指令

yum install -y sl

我这里之前就安装过sl了,所以显示Nothing to do

如果安装成功了,那么执行sl就会显示

一辆火车经过

这里说一下如何安装g++

我们后续会介绍g++编译器的

我这里之前就安装过g++了,所以显示Nothing to do

2.yum卸载软件

下面我们看一下如何使用yum进行卸载呢?

yum remove sl
移除sl命令

移除之后我们执行sl命令,发现无法执行,也就说明我们移除成功了

然后这个时候我就能演示一下安装sl成功的情形了

2.yum的生态环境

几个问题

首先我们先明确一点:

在这里补充一下:

1.操作系统的分化

一款操作系统的好坏不仅仅要看这个操作系统本身,大家在效率上是差不多的,

因此在选择一款操作系统时还要看:

1,操作系统的版本,因为版本问题能够决定操作系统中历史含留的bug问题

2.这款操作系统使用的人数

因为人数多不多就能决定这款操作系统所能暴露出来的问题充不充分

比方说:

人数多了的话,这款操作系统的社区的活跃度就高,问题暴露的就越充分,问题暴露的多,自然而然就会有更多的人去解决问题

而且用的人多,这款操作系统的配套资源就会更加充分,

社区的维护者也会更加专业等等等等

因此Linux商业化操作系统分为了Centos,Ubanto,Kali等等

Centos主要与企业级开发相关

Kali主要与网络安全相关

等等等等

2.四个问题

1.服务器是谁提供的呢?
2.服务器上的软件是谁提供的呢?
3.为什么要提供呢?

这三个问题可以一起解释

不同操作系统/社区所定义的基调不同,生态不同,这也就吸引了不同领域的人们去维护,去使用

使用的人多了,暴露出来的问题就多了,解决的人也多了,并且发布配套资源的人也就多了,这个社区就会变得更加偏向于那个基调/生态

就会吸引更多人去使用,维护,从而形成了一个良性循环

这样不同社区就会有更多的人去使用,去维护

就会有更多人从中受益,既然从中受益,那么自然就更加不希望这个社区出现问题,因此:

那些依赖于这些社区的人:

比如:创业公司,大/中/小型公司就会更加想要这个社区变好

因此他们可以投入金钱,提供对应的服务器

再比如:那些高水平的开发者,开源组织等等就可以提供对应的技术去提供服务器上的软件

他们为什么要去提供呢?

就是为了让自己所在的社区变得更好

从而让自己能够更好的去使用对应的操作系统,并从中受益

这也就形成了一个正向反馈

甚至不同的社区之间会形成"卷"

4.yum是如何得知目标服务器的地址和下载链接呢?

我们使用root,找到/etc/yum.repos.d路径下的Centos-Base.repo文件

然后vim进入(强烈建议大家再看完下面的vim之后在使用vim进入这个文件,否则你不知道该怎么退出来!!!)

然后我们找到这一行

找到对应的yum的目标服务器的地址和下载链接

然后我们打开这个链接

发现我们这个yum的目标服务器的下载链接是有阿里云提供的

这些就是阿里云从国外的镜像源镜像过来了,是为了更好的维护国内的社区

下载链接

其中,这个Centos-Base.repo文件就是我们所说的yum源

5.软件源

大家可以先执行一下这个指令

sudo yum install -y epel-release
• 1

我这里之前已经安装过这个软件了,所以显示nothing to do

然后我们

ls /etc/yum.repos.d

发现有这个epel.repo文件,就说明安装成功

这个epel.repo就是扩展软件源

Linux中的软件源可以分为

1.基础软件源:十分稳定,经过了长期的"考验",已经广泛为人们所接受的软件,比方说我们的Centos-Base.repo

2.扩展软件源:这里面放的是一些新兴的软件,

当这些软件经过了长期的"考验"后,会选出一些很好的软件放入基础软件源中

并且也可以在基础软件源中淘汰一些不太好了的软件

这也就很好地进行了Linux中软件的更新换代

既可以保证基础软件中的软件足够稳定可靠,又可以保证软件的更新换代

也就是说我们平常在下载软件时,基础软件源和扩展软件源都需要去使用

二.vim

1.vim的快速入门

vim是一款多模式的编辑器,vim里面还有很多的子命令.来进行代码的编写操作

vim的模式

vim有三种常见模式:

命令模式,插入模式,底行模式

它们之间切换的按键如下:

使用vim也可以直接创建文件进行编写

刚进入的样子是这样的

此时就是命令模式

然后我们先使用i命令进入编辑模式

此时我们就可以在test.c中写代码了

接着我们使用Esc键回到命令模式

首先我们使用i来进入插入模式

然后我们就能发现:使用i进入插入模式时,光标位置没有任何变化

接着我们使用Esc键回到命令模式

然后使用a进入插入模式

然后我们就能发现:使用a进入插入模式时光标会向右移动一位

接着我们使用Esc键回到命令模式,并将光标复位

然后使用o进入插入模式

然后我们就能发现:使用o进入插入模式时会新起一行,并将光标移动到新起的那一行

一般情况下我们都是使用i进入插入模式

那么当前我的代码写完了,该如何退出呢?

首先:我们先调到命令模式

然后按shift+; 进入底行模式

我们会发现左下角出现了一个冒号

也就是说现在已经进入了底行模式

然后我们输入:wq

然后按下回车键就能保存文件并退出该文件的编辑模式(vim)

2.vim中的快捷键

首先我们先明确两点:

1.插入模式下我们从键盘输入的字符信息都会被当作文本输入到该文件中

就像是Windows中的记事本一样

2.在我们没有对vim进行配置鼠标操作的状态下,在vim中我们是无法使用鼠标的

因为vim中在不进行鼠标操作的配置的状态下,是不好进行操作的

因此vim中拥有很多快捷键可以帮助我们定位光标等等

甚至可以说:当我们很好地熟悉了vim中这些快捷键后,书写代码等等是会比使用鼠标更快的

就像是ctrl+c ctrl+v 碾压了使用鼠标选中后右键进行复制粘贴的操作

ctrl+a 碾压了鼠标去进行全选的操作等等

3.关于vim的手动配置,大家可以看一下这位大佬的博客中的vim基础配置:

【从入门到进阶】vim基础配置+ 常用插件(NERDTree, cscope, rainbow等)

4.关于vim的自动配置,大家可以看一下这位大佬的博客中的那个在gitee中开源的vim自动配置的README.md

那位大佬的博客:vim的自动化配置(一条指令就够了)

该博客中提到的那个gitee的链接:

自动化配置vim的gitee链接

1.命令模式下的快捷键

1.光标定位指令

其实这里的shift+就是就是,也就是shift+4,

只不过如果说shift+4的话:

4在键盘的数字区有,在键盘的F1,F2…键的下方也有,而这里是要按键盘的F1,F2…这些键的下方的数字键

所以这里干脆就说成shift+$符号了

同理这个shift+^也是如此

从#位置按shift+$

然后再按shift+^

shift+g

5 + shift + g

gg:快速按两次g

2.方向键

这是一个很早很早的老式键盘

注意看:这个键盘上面并没有我们独立的↑↓←→方向键

因此把←给到了h键,

↓给到了j键

↑给到了k键

→给到了l键

因此在vim中,我们也可以使用h,j,k,l键来移动光标

那你会说:vim中这么定义有什么用呢?

一方面是历史原因,当时键盘上面还没有独立的↑↓←→方向键

另一方面:就像是打游戏的时候控制角色移动,释放技能等等,当我们完全熟悉了之后

是比居于键盘右侧那狭小的空间当中才能控制方向要高效,舒服很多的

如果我们想要快速在这一行中移动光标呢?

w:按照"单词"在行内进行向右移动

b:按照"单词"在行内进行向前移动

注意:这里的"单词"的识别标准是由vim来定的,而不是指英语中的单词

相关文章
|
9月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
983 11
|
11月前
|
存储 监控 Linux
Linux环境锁定关键文件防止误删操作流程。
总结以上内容,在Linux环境下锁定重要文档避免误删涉及到多种技术手段与策略组合运作, 包括但不限于利用chatter指挥官固化文档状态至只读模式、运作ACL精准调整访问权利列表、编排自动化流程简
525 20
|
11月前
|
Linux
Linux环境下的UDEV机制及其与守护进程的关联
实际使用时管理员需要熟悉编写合适udev rules去满足特殊需求;同时也需要注意避免编写过度复杂导致无法预料结果rules.UDEVD虽然稳健但错误配置可能导致无法预料问题因此需谨慎处理相关配置工作.
393 16
|
11月前
|
存储 Linux
Linux环境下删除大文件后磁盘空间未释放问题诊断流程。
以上诊断流程涉及Linux底层机制与高级管理技能结合之处,并需要管理员根据实际环境灵活调整诊断策略与解决方案。
776 8
|
11月前
|
XML 缓存 Linux
在Linux环境下解决Visual Studio Code字体显示异常和字体替换方法。
解决Linux下VS Code字体显示异常,需要对Linux字体渲染机制有所理解,并对VS Code的配置选项进行合理设置。替换字体时则要通过系统字体配置或VS Code设置来完成。通过上述方法,可以有效地解决字体显示问题,从而提升代码编辑的视觉体验。
1633 21
|
Linux 数据安全/隐私保护 iOS开发
推荐Linux环境下效能优良的双向文件同步工具
综合上述条件,对于Linux环境下的双向文件同步需求,Unison 和 Syncthing 是两个非常出色的选择。它们都有良好的社区支持和文档资源,适用于不同规模的环境,从个人使用到商业部署。Unison 特别适合那些需要手动干预同步过程、需要处理文件冲突解决的场景。而 Syncthing 更加现代化,适合需要自动、实时的数据同步与备份的环境。对于选择哪一个,这将取决于个人的使用场景和具体需求。
1301 16
|
12月前
|
安全 应用服务中间件 网络安全
在Linux环境部署Flask应用并启用SSL/TLS安全协议
至此,你的Flask应用应该能够通过安全的HTTPS协议提供服务了。记得定期更新SSL证书,Certbot可以帮你自动更新证书。可以设定cronjob以实现这一点。
862 10
|
Ubuntu Linux Shell
Linux环境下VSCode快速安装终极指南:debian/ubuntu/linux平台通用
以上就是在Linux环境下安装VSCode的终极指南,抛开繁复的专业词汇,以平易近人的文字、形象生动的比喻让你轻松学会这一过程。别忘了,你的小伙伴VSCode已经在应用菜单里等你了!
3389 23