Linux系统编程学习 NO.6 ——yum、Linux生态、vim的介绍

news/2024/11/17 16:31:33/

文章目录

  • 1.Linux的安装软件的方式
  • 2.Linux的软件生态
    • 2.1.软件生态的概念
    • 2.2.Linux的软件生态
  • 3.Linux生态
  • 4.yum安装软件
    • 4.1.验证网络
    • 4.2.使用yum安装lrzsz
      • 4.2.1.什么是lrzsz
      • 4.2.2.安装lrzsz
    • 4.3.yum是如何找到官方yum源安装的软件呢?
    • 4.4.简单介绍扩展yum源
    • 4.5.关于yum的一些问题
  • 5.vim的介绍
    • 5.1.什么是vim?
    • 5.2.简单介绍vim的三种模式
    • 5.3.简单用vim写一份c代码
  • 6.简单介绍vim的命令模式的常用命令
  • 7.简单介绍vim的底行模式的常用命令
  • 8.简单配置vim

1.Linux的安装软件的方式

在平时日常的操作使用使用中,pc端我们大部分的安装软件的方式是去官方的网站下载安装包。移动端我们通常是去操作系统提供的应用商店安装我们需要的软件。而在Linux下我们通常有一下三种安装软件的方式:
1、源代码安装(比较麻烦),源代码安装对于我们的要求较高,因为容易出现编译报错,处理起来比较麻烦。
2、rpm安装(麻烦),rpm安装通常需要解决软件间的依赖关系,如你下了a软件,但是你想安装它还需要下载b软件和c软件。但是,b软件和c软件的依赖关系你也要处理。
3、yum安装(推荐),yum安装不用管安装源、安装依赖、版本适配等等的问题。yum可以安装的软件可以直接用。

2.Linux的软件生态

2.1.软件生态的概念

在普通用户的日常生活中,软件的生态取决于厂商出厂时操作系统的自带的应用商店或者自行去官网网站下载。厂商也会根据提供软件安装服务来进行营收。厂商提供的软件通常可以直接安装使用,安全性、稳定性和便捷性都比较好。那么第一个问题。为什么应用商店知道去哪里下载呢?其实应用商店的本质就是将软件发布者或厂商的安装包提前部署在了远程服务端中。当我们需要下载应用时,软件商城就会通过网络向厂商的应用商城的服务端申请获取对应的软件安装包。
在这里插入图片描述

2.2.Linux的软件生态

yum其实就是类似于我们在平时普通用户所用的应用商店,yum是centos下的应用商店。apt-get是Ubuntu下的应用商店。由于面对的客户群体不同,Linux系统下的软件生态面向的是职业的it行业工作者。所以,你不会看到在Linux系统下可以玩诸如原神、王者荣耀等游戏的玩家。所以,软件生态很大一部分是和适用人群相关的。yum下载的软件是从官方yum源所提供的。

3.Linux生态

首先,我们都清楚的一点是大部分的Linux发行商是会提供开源的。下面我就简单聊一聊开源生态方面。前面我们说到Linux的用户群体是职业的it工作者。
假设有一天,我进入了一家一线的互联网厂商工作。有一天我的leader找到我说,小谢啊,最近我们部门正在做操作系统的选型,你有没有什么建议和看法?简单说一说。此时,如果我说我觉得centos好,因为我在大学时期都是用的这款Linux的系统。难免遭到leader的痛斥。但是,如果我以客观的角度上来说是这样的。centos 7是一款免费的Linux系统,有着优秀的社区生态,而且诸多的互联网厂商都会选择使用它。因为社区生态优秀,所以很多隐藏的问题都会被发现并且解决,使用上来说相对的比较稳定。也会有许许多多的有极客精神的开发者在系统上进行软件的开发,所以软件生态也比较优秀。这是以使用者的视角来看。
以提供者的视角看。将会持续的维护完善对应的生态。会大肆鼓励开发者和开发组织进行软件应用的开发进而完善软件生态。也会组织维护人员来解决系统层面上的问题和缺陷,使用户体验更棒。会租用更多的云服务器进行服务的提供。
但是有一句话说的很对,“免费的就是最贵的”。由于开源的系统发展得越来越好,对应的我们的提供者无法承受如此大的压力提供稳定的服务。这时就说,由于系统云服务端的服务用户过多,我们由于成本受限没法提供稳定的服务。使用该生态的企业已经对此系统产生了依赖,这时,就会有捐赠服务器或者直接捐款来支持系统生态的健康发展。进而逐步占据市场的份额。
在这里插入图片描述

4.yum安装软件

4.1.验证网络

可以通过ping命令来验证当前客户端是否联网

ping www.baidu.com

4.2.使用yum安装lrzsz

4.2.1.什么是lrzsz

lrzsz是一组用于在Unix-like操作系统中进行文件的传输的工具,包括lrz和lsz两个命令,用于本地主机与远程主机之间进行文件的上传和下载。使用lrzsz工具,可以通过终端窗口在本地主机和远程主机间传输文件,而无需依赖于图形化界面。

4.2.2.安装lrzsz

查看yum客户端的软件列表可以输入下面指令,会输出当前系统下yum客户端的所有软件。

yum list

可以输入下面指令查看lrzsz工具信息

yum list | grep lrzsz

在这里插入图片描述
可以输入下方指令进行安装lrzsz

sudo yum -y install lrzsz

-y 选项表示不用询问我直接同意。
在这里插入图片描述
也可以输入下方指令进行卸载lrzsz

sudo yum -y remove lrzsz

下面简单看下rz和sz指令的使用
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4.3.yum是如何找到官方yum源安装的软件呢?

官方的yum源可以通过云服务器上的配置文件进行访问。在大多数基于Linux的云服务器上,yum的配置文件位于/etc/yum.repos.d/目录中。在这个目录下,您可以找到与每个yum源相关的配置文件。里面会有镜像网站所对应的官方yum资源。

/etc/yum.repos.d/CentOS-Base.repo

在这里插入图片描述
在这里插入图片描述
通过yum的配置文件,云服务器可以直接访问官方yum源的mirror的URL并获取所需的安装包和更新。

4.4.简单介绍扩展yum源

虽然官方yum源给我们提供了很多的软件。但是,有一些好玩的,有意思的软件官方是不提供的。这是就需要我们用拓展yum元来进行下载。这就好比在手机上,应用商店是没有提供所有软件的。有些是因为风险问题,有些是因为特殊问题等。所以,就需要我们自己去测载一些软件,通常这些行为都是比较危险的。下面我就简单介绍一下扩展yum源。
该指令可以查看当前本地的扩展yum源的配置文件信息。

ll /etc/yum.repos.d/epel.repo

扩展yum源是需要我们自己安装的。指令如下。

sudo yum install -y epel-release

在这里插入图片描述
接下来就可以安装一些拓展yum源里的软件了。这里介绍一个有意思的工具,也就是sl小火车。这也是很多人学习yum安装扩展源的第一个安装的软件。类似于程序员的第一个程序都是在屏幕上打印hello world。

sudo yum install -y sl

在这里插入图片描述
下面我就让小火车跑起来!

sl

在这里插入图片描述
在介绍一个有意思的拓展yum源提供的软件,cowsay

sudo yum install -y cowsay

在这里插入图片描述

4.5.关于yum的一些问题

首先,一般Linux操作系统默认yum源都是国外的,所以可能会出现访问慢,甚至是访问不上。所以出现这类问题可以尝试在搜索引擎中搜索一下。可以找到国内yum源的配置文档。拷贝替换一下即可解决。
安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成。
yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外一个软件, yum会报错。
如果 yum 报错, 到搜索引擎搜索相关问题通常都会有对应的解决方案。

5.vim的介绍

5.1.什么是vim?

Vim是一种强大的文本编辑器,广泛用于编写和编辑各种类型的文本文件。它是Vi编辑器的改进版本,具有许多额外的功能和扩展。Vim支持多种操作模式,包括命令模式、插入模式和底行模式,使用户能够高效地编辑文本。Vim非常受程序员和系统管理员的喜爱,因为它可以通过快捷键和自定义配置进行高度定制。

5.2.简单介绍vim的三种模式

首先,我们打开vim,默认进入的是命令模式。控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。在默认模式中我们所有输入都会被当做命令,一般不会让我们进行文本输入。按i即可进入插入模式,插入模式下可以进行文本编辑的操作,也就是写写代码啥的。如果此时我们需要保存我们的代码就要先回退到命令模式,在通过shift+;(即:)进入到底行模式,输入wq,即可完成保存并退出vim的操作。
在这里插入图片描述

5.3.简单用vim写一份c代码

首先,输入指令打开vim编辑器

vim XXX.c

第二部,输入i进入插入模式。然后开始写代码。写完后,按esc回退到命令模式。按shift+;进入底行模式,输入wq即 写入并退出。完成第一份c代码。
在这里插入图片描述

6.简单介绍vim的命令模式的常用命令

gg:定位光标到文本的开头行
在这里插入图片描述

shift+g:定位光标到文本的末行
在这里插入图片描述
shift+n+g:定位光标到文本的第n行
在这里插入图片描述
shift+$:将光标定位到当前行的行尾
在这里插入图片描述
shift+^:将光标定位到当前行行首
在这里插入图片描述

b,w:光标在行内进行跨单词的左,右移动
h,j,k,l:对应的是左,下,上,右方向键
为什么hjkl对应的是左下上右方向键呢?这是因为早期的键盘其实是没有上下左右方向键的。当时的的操作系统也是命令行操作系统。所以,hjkl就是早期的方向键。

(n)yy:拷贝n行内容,默认为当前行
(n)p:粘贴n份拷贝内容,默认为一份
在这里插入图片描述
(n)dd:剪切、删除n行内容,默认为当前行
在这里插入图片描述

u:撤销,类似于windows下的CTRL+z
CTRL+r:撤销之前的撤销

shift+~:转换光标标记字母的大小写
在这里插入图片描述
(n)r:将光标的位置的内容后n个位置进行替换
在这里插入图片描述
shift+r:进入替换模式,可以对文本内容进行替换。按esc即可退出,回到命令模式。
在这里插入图片描述
(n)x:删除光标后n个字符
在这里插入图片描述
可以看到vim进入一个.c文件可以直接创建它但是,我们没有保存就退出。此时可以看到code.c文件并没有被写入到磁盘中。
在这里插入图片描述
有了这一概念,下面我就简单介绍一下vim打开多个文件的编辑窗口。首先我们进入底行模式,输入vs + 文件名称即可。
在这里插入图片描述

7.简单介绍vim的底行模式的常用命令

!:表示强制操作,一般可以配合w或wq使用,表示强制写入和强制写入并退出。
在这里插入图片描述
也可以在底行命令行中编译、执行代码。

! gcc xxx.c
! ./a.out
!ls

在这里插入图片描述

设置编辑器显示行号

set nu

取消编辑器显示行号

set nonu

在这里插入图片描述

8.简单配置vim

前面我们介绍了很多使用vim的方法,但是上手一用发现十分难受,这是因为vim还没有做一下相应的配置,比如一些语法提醒、代码缩进的优化等等。所以,下面我就简单介绍一下vim的傻瓜式的配置。补充最后一点,不建议新手用root配置,最好用普通用户配置。
步骤
点击链接: vim配置文件(仅支持centos7,千万别用root)
输入下面的指令就可以安装大神配置的vim的配置文件。

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

http://www.ppmy.cn/news/300622.html

相关文章

浏览器插件----神奇的鼠标

真神奇!鼠标居然还可以这样玩? 现在国内的一些主流浏览器都有鼠标手势这个快捷功能,例如360、QQ、搜狗浏览器等,可以快速完成关闭网页、刷新网页、前进以及后退等快捷操作。大家只要记住这些手势,浏览网页会变得很轻松…

撸码也要好心情-宝藏壁纸网站wallhaven分享

前几天偶然发现一个壁纸网站wallhaven,个人用起来觉得还是很舒服的,虽然比不过神一样存在的Wallpaper Engine(懂得都懂),但是总比国产的用壁纸送广告弹窗的各大流氓来的舒服多了,而且不需要装任何软件。 直…

字符串是否相等案例s1==s3?

下列代码的运行结果是? public class test { public static void main(String[] args) { String s1 "abc"; String s2 "ab"; String s3 s2 "c"; System.out.println(s1 s3); } } /** C…

vue3的api解读-effect scope

什么是scope 英文:范围举例:变量的可见范围(variable scope)举例:闭包内变量的可见范围是词法作用域(lexical scope)举例:slot-scope绑定的变量的可见范围是template内部 effect s…

opengl学习笔记

摘自www.opengl.org楼主会不定时更新 OpenGL编程指南OpenGL编程指南 学习OpenGL的官方指南1.1版 关于本指南 第一章OpenGL简介 第二章国家管理和绘制几何对象 第3章查看 第4章颜色 第5章照明 第6章混合,抗锯齿,雾化和多边形偏移 第7章显示列表 第八章绘制…

ajax常用的api测试

ajax常用的api测试 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/IT_Mr_wu/article/details/102988178 ajax的常用api测试 AjaxApi 下面列出的接口…

ajax的常用api测试

ajax的常用api测试 AjaxApi 下面列出的接口基本都是可以直接使用的,如有问题记得告诉我哦 支持的请求方法 GET(SELECT):从服务器取出资源(一项或多项)。POST(CREATE)&#xff1a…

4个Github上的沙雕开源项目

我们的程序员小哥哥不仅会写代码,思维逻辑严密,在风趣幽默这一行也不输任何人呀,这不,在GitHub上面看到的这几个项目,不得不说,他们真的很会,左手祖传代码,右手手握有趣的开源项目&a…