【Linux】Linux环境基础工具的基本使用及配置(yum、vim)

news2024/12/23 17:39:26

在这里插入图片描述

​📝个人主页:@Sherry的成长之路
🏠学习社区:Sherry的成长之路(个人社区)
📖专栏链接:Linux
🎯长路漫漫浩浩,万事皆有期待

文章目录

  • Linux软件包管理器 - yum
    • Linux下安装软件的方式
    • 认识yum
    • 查找软件包
    • 安装软件
    • 如何实现本地机器和云服务器之间的文件互传
    • 卸载软件
    • 如何更换yum源配置文件
  • Linux编辑器 - vim
    • vim基本概念
    • vim 基本操作
      • 1、模式切换
      • 2、命令模式
      • 3、插入模式
      • 4、底行模式
    • vim 的配置
  • 总结:

Linux软件包管理器 - yum

Linux下安装软件的方式

在Linux下安装软件的方法大概有以下三种:
1)下载到程序的源代码,自行进行编译,得到可执行程序。
2)获取rpm安装包,通过rpm命令进行安装。(未解决软件的依赖关系)
3)通过yum进行安装软件。(常用)

认识yum

yum是一个在Fedora、RedHat以及CentOS中的前端软件包管理器,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

注意:一个服务器同一时刻只允许一个yum进行安装,不能在同一时刻同时安装多个软件。

因为yum是从服务器上下载RPM包,所以在下载时必须联网,可以通过ping指令判断当前云服务器是否联网。

在这里插入图片描述

查找软件包

在这里插入图片描述

使用yum list指令,可以罗列出可供下载的全部软件。
在这里插入图片描述

说明一下:
1)软件包名称:主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构。
2)"x86_64"后缀表示64位系统的安装包,"i686"后缀表示32位系统安装包,选择包时要和系统匹配。
3)"el7"表示操作系统发行版的版本,“el7"表示的是"centos7/redhat7”,“el6"表示"centos6/redhat6”。
4)最后一列表示的是“软件源”的名称,类似于“小米应用商店”,“华为应用商店”这样的概念。

这里我们以查找lrzsz为例。

lrzsz可以将Windows当中的文件上传到Linux当中,也可以将Linux当中的文件下载到Windows当中,实现云服务器和本地机器之间进行信息互传。

由于包的数量非常多,所以我们可以使用grep指令筛选出我们所关注的包,这里我们以lrzsz为例。在这里插入图片描述
此时就只会显示与lrzsz相关的软件包。

安装软件

指令: sudo yum install 软件名

在这里插入图片描述

yum会自动找到都有哪些软件包需要下载,这时候敲“y”确认安装,当出现“complete”字样时,说明安装完成。

注意
1)安装软件时由于需要向系统目录中写入内容,一般需要sudo或者切换到root账户下才能完成。
2)yum安装软件只能一个装完了再装另一个,正在使用yum安装一个软件的过程中,如果再尝试用yum安装另外一个软件,yum会报错。
在这里插入图片描述

如何实现本地机器和云服务器之间的文件互传

既然已经安装了lrzsz,这里就顺便说一下lrzsz如何使用。

指令: rz -E

通过该指令可选择需要从本地机器上传到云服务器的文件。
在这里插入图片描述

指令: sz 文件名

该指令可将云服务器上的文件下载到本地机器的指定文件夹。

在这里插入图片描述

卸载软件

指令: sudo yum remove 软件名

在这里插入图片描述

yum会自动卸载该软件,这时候敲“y”确认卸载,当出现“complete”字样时,说明卸载完成。

如何更换yum源配置文件

1、yum源配置文件的路径

ls /etc/yum.repos.d/

为什么yum知道我想安装的软件在哪里下载?因为该路径下的CentOS-Base.repo是基础yum源,里面有软件的下载链接。Linux系统中只认这个文件名作为yum的配置文件。

在这里插入图片描述
官方yum源:
在这里插入图片描述

在这里插入图片描述

2、备份yum源

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

3、下载阿里yum源配置文件

wget https://mirrors.aliyun.com/repo/Centos-7.repo

将下载好的阿里yum源重命名为CentOS-Base.repo,后续可能会使用到。

4、更新yum缓存、查看yum源

yum makecache//更新yum缓存
yum clean all//清理老旧的缓存信息
yum repolist//查看yum源

yum工具在每次安装指定软件包的时候,都会检测源服务器上的软件包信息,为了便捷不用每次都去搜索软件包信息,因此使用 yum makecache将软件包信息缓存到本地,使用 yum clean all 清理老旧的缓存信息。

5、epel-release的安装(非官方扩展源)

yum install -y epel-release

在这里插入图片描述
在这里插入图片描述
有了扩展源,就可以下载一些好玩的命令

行驶的小火车: 下载:yum install -y sl 执行:sl

请添加图片描述

说话的牛:下载:yum install -y cowsay 执行:cowsay hello

在这里插入图片描述

Linux编辑器 - vim

vim基本概念

vim 是一个功能非常强大的全屏幕文本编辑器,在 Linux 中,vim 编辑器被广泛使用。

vim 也是一个类似于 vi 的著名的功能强大、高度可定制的 文本编辑器 ,在 vi 的基础上改进和增加了很多特性。

vim 和 vi 一样,是多模式编辑器,不同的是 vim 是 vi 的升级版本,它不仅兼容 vi 的所有指令,并且糅合了一些新的特性在 vim 中。例如语法高亮、可视化操作,这些不仅可以在终端运行,也可以也可以运行于 x window、 mac os、windows 。

区分编辑器和IDE(集成开发编译器) :

我们之前是在 vs2019 、Devc++ 上写代码,在这类IDE 中,一个软件就可以涵盖所有功能,包括编辑,编辑,调试等等;而我们的 vim 是编辑器,单纯是写代码的。如果要编译则需要用到 gcc,g++,调试需要用到 gdb 。工具之间互相独立,虽然 vim 可以对功能进行整合。但是还是要拎清概念:vim 是一款编辑器。

vim 拥有的模式一共有12 种模式,但我们 真正常用的只有三种 :命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode) 。

先了解一下这三种模式:

  • 正常/普通/命令模式(Normal mode)
    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode 。命令模式的功能很丰富,使操作便捷。

  • 插入模式(Insert mode)
    只有在Insert mode下,才可以做 文字输入 ,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。

  • 底行模式(last line mode)
    文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。如果要查看你的所有模式方法为打开vim,底行模式直接输入 :help vim-modes

vim 基本操作

1、模式切换

vim 默认打开为 命令模式 ,命令模式下,是无法进行输入操作的。在命令模式下,可以实现对各种模式的切换,比如:

命令模式 切换至 插入模式 :按 i / a / o= 进入插入模式,三种方法都具有不同的效果。
命令模式 切换至 底行模式 : shift: 两个键同时按住进入模式。进入模式后,在 vim 左下角出现了 : ,q 直接退出 ; wq :w 保存,q 退出,保存退出。
任意模式 切换至 命令模式 :按 ESC ,直接切换至命令模式。

基于这些,我们尝试在 vim 下写一段代码:

在这里插入图片描述

2、命令模式

命令模式的目的就是让 vim 编辑更加高效

在命令模式下,我们可以使用 h 、j 、k 、l 进行 左、下、上、右 的光标移动。这种规定可以使得操作更加高效,集中。

下面,我们对常用命令做出一些整理(下面出现的 n 均代表数字) :

1.复制粘贴剪切 :

yy / nyy :复制光标所在行或者复制包含当前行在内的 n 行
p / np :粘贴一行或多行相同内容到当前光标所在行之下
dd / ndd :对当前行或者当前行在内的 n 行的内容进行剪切,移动光标到目标行进行 p 粘贴(只剪切,不粘贴相当于就是删除)

2.撤销 :

u :撤销上一步操作
ctrl + r :对撤销进行撤销
撤销只能对于本次操作内,退出保存再次操作时,是无法撤销的。

3.光标定位:

3.1对全局文档:

shift g :将光标定位到文档结尾
gg :将光标定位到文档开头
n shift g : 将光标定位到文档指定行

3.2对局部长文本行(例如若干行100字符长度,行内快速定位):

shift $ :将光标定位到当前文档行的结尾
shift ^ :将光标定位到当前文档行的开头
w / b :按照单词为单位,进行后 / 前移动(单词定义:对于长串字符组成的非单词也认为是单词)
nw / nb :默认单词数从 0 开始,进行后 / 前移动 n 个单词间距

4.文本编辑 :

shift ~ :对文本行进行快速大小写切换,小写转大写,大写转小写。按住不动默认一直切换,直到文本行末尾
r 字符 / nr 字符 :替换光标所在的字符或者对于 n 个字符文本行进行批量化替换;如果 n 超过文本行长度,则不会进行替换
shift r :进入替换模式,该模式输入什么则对光标位置完成对等的替换,按退格键删除就是复原
x / nx :对文本行内进行向后删除或者对光标开始 n 个字符进行向后删除,按住不动默认一直删除,简单概括:行内删除,左侧–>右侧
shift x / shift nx :行内删除,右侧–>左侧

由于命令行模式指令较多,且单独演示起来效果不太好,所以就完整演示一下光标定位组 ,看一下效果即可:
请添加图片描述

3、插入模式

i 进入插入模式后,从光标当前位置开始输入
a 进入插入模式后,光标往后跳转一个字符,从跳转后位置开始输入
o 进入插入模式后,另起新的一行,从行首开始输入

4、底行模式

命令模式按 shift: 两个键进入底行模式。

调出 / 隐藏行号:

set nu :显示行号
set nonu :隐藏行号

请添加图片描述

搜索 :

: /关键字 :按照关键字搜索数据,并显示高亮

请添加图片描述

保存和退出 :

w :保存
q :退出
wq :保存并退出
w! :在写保护文件情况下无法保存,强制保存。 ! 代表强制
q! :强制退出
wq! :强制保存并退出

请添加图片描述

强制的前提是 有权限 ,没权限照样不能强制。 ! 适用于强行修改写保护文件或配置文件等操作。

不退出 vim 执行 shell 命令 :

底行模式中,可以通过 !command 来完成不退出 vim ,执行 shell 指令,例如我们执行 ls -l 指令:
请添加图片描述

执行命令之后,会跳转到终端,这时按下 Enter 键返回。

批量替换数据:

%s///g,可以对数据进行批量替换,g 代表全局,例如: %s/hello/HELLO/g ,是对全局中,将 hello 替换为 HELLO

请添加图片描述

分屏 :

在底行模式下使用vs file :创建一个 file 文件,这样就可以分屏。

如果想要知道我们当前处于哪个屏幕,只要明确一点:在 vim 中,光标在哪里,我们就是在编写哪个文件

通过 ctrl + ww 我们就可以切换到不同界面,分屏可以支持多个,但是推荐一般分屏 2 - 3 个就够用了,如果对于退出文件还是常规操作,下面演示一下:
请添加图片描述

vim 的配置

我们上面演示操作的时候,可以发现当前使用的 vim 编辑器,没有智能化补全,没有缩进,连 tab 键都是八格,使用起来非常不方便。所以我们的 vim 通常需要配置。所谓配置,就是按照固定方法,让 vim 编辑器编写代码更加舒适,更加利于使用。

通常 vim 配置有两种方案:自定义配置 或 自动化配置 。

1.自定义配置:

自定义 配置,就是按照自己的喜好配置,但是配置的时候可能会遇到很多问题,所以接下来我们简单就讲一下原理。

vim 在启动时,会自动在当前用户的 家目录 下,寻找配置文件,如果没有,就是默认配置。
在这里插入图片描述

当前我们是没有配置文件的,所以需要手动创建一个:

在这里插入图片描述

现在 .vimrc 就是当前用户的配置文件。一个用户对应一个 vim 配置,如果只对当前用户进行配置,是不会影响其他用户的 。

在这里插入图片描述

使用 vim .vimrc 打开配置文件,进行相关配置,保存并关闭后,打开 vim ,这些配置会立马生效。
在这里插入图片描述

例如,我们进行一些配置:

set nu
syntax enable
set cursorline
set expandtab
set tabstop=4
set shiftwidth=4
set smarttab
set autoindent
set encoding=utf-8
set termencoding=utf-8
set smartindent
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {}<ESC>i
inoremap < <><ESC>i  

在这里插入图片描述

这些可以完成一些基本配置,但是还是有一些问题的,比如成对大括号出现无法智能缩进等…

如果想要自定义配置的好的话,可以去查找一下资料,研究一下,配置出自己心仪的 vim 。

2.自动化配置 :

某神为了解决小白在配置 vim 时十分繁琐的问题,于是在 gitee 中上传了一份自动配置方案。唯一的缺点是:该配置当前只支持 centos 7 版本,而我也十分幸运,恰巧就是这个版本。

首先打开 gitee 搜索 vimforcpp ,打开后往下划或者点击 [该链接] 直接跳转。

然后看到安装方法

在这里插入图片描述

复制框起来的指令,到 Linux 终端:

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

然后敲击回车,输入 root 账号密码,即可开始安装,安装界面:

在这里插入图片描述

输入密码,等待安装成功后,根据提示输入:

source ~/.bashrc

就可以开始使用了
在这里插入图片描述

该配置支持代码高亮,智能补齐、缩进,和语法提示等多种功能,接下来演示一下:
请添加图片描述

vim 还有很多操作,这里是陈皓大佬的 “vim 练级文章” ,感兴趣的小伙伴可以阅读:

简明 VIM 练级攻略
给程序员的VIM速查卡

总结:

今天我们对yum和vim 的基本使用和配置有一定了解了。接下来,我们将继续学习其他Linux环境基础工具的基本使用及配置。希望我的文章和讲解能对大家的学习提供一些帮助。

当然,本文仍有许多不足之处,欢迎各位小伙伴们随时私信交流、批评指正!我们下期见~

在这里插入图片描述

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

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

相关文章

60分钟吃掉detectron2

本范例演示使用非常有名的目标检测框架detectron2 &#x1f917;&#x1f917; 在自己的数据集(balloon数据)上训练实例分割模型MaskRCNN的方法。 detectron2框架的设计有以下一些优点&#xff1a; 1&#xff0c;强大&#xff1a;提供了包括目标检测、实例分割、全景分割等非常…

Spring Boot启动流程

1 Springboot 启动流程 创建一个StopWatch实例&#xff0c;用来记录SpringBoot的启动时间。 通过SpringFactoriesLoader加载listeners&#xff1a;比如EventPublishingRunListener。 发布SprintBoot开始启动事件&#xff08;EventPublishingRunListener#starting()&#xff0…

性能测试——基本性能监控系统使用

这里写目录标题 一、基本性能监控系统组成二、环境搭建1、准备数据文件 type.db collectd.conf2、启动InfluxDB3、启动grafana4、启动collectd5、Grafana中配置数据源 一、基本性能监控系统组成 Collectd InfluxdDB Grafana Collectd 是一个守护(daemon)进程&#xff0c;用来…

【数据结构】时间复杂度与空间复杂度

目录 前言一、算法效率1. 算法效率的定义 二、时间复杂度1. 时间复杂度的定义2. 时间复杂度的计算 三、空间复杂度1. 空间复杂度的定义2. 空间复杂度的计算 四、时间复杂度曲线图结尾 前言 在学习C语言的时候&#xff0c;大多数的小伙伴们并不会对算法的效率了解&#xff0c;也…

视频采集到录制 - 音频采集到降噪

继续上篇的视频采集到录制 视频采集相对来说还是算正常&#xff0c;如果资源够用&#xff0c;使用第三方库也是种解决办法 但音频采集网上资料相对也少&#xff0c;走了一遍&#xff0c;也发现存在很多坑 1. 音频采集 一般来说&#xff0c;采用MIC采集&#xff0c;采集出来的格…

内存泄露的循环引用问题

内存泄漏一直是很多大型系统故障的根源&#xff0c;也是一个面试热点。那么在编程语言层面已经提供了内存回收机制&#xff0c;为什么还会产生内存泄漏呢&#xff1f; 这是因为应用的内存管理一直处于一个和应用程序执行并发的状态&#xff0c;如果应用程序申请内存的速度&…

希尔伯特旅馆里,住着AI的某种真相

“无穷”和“无穷1”&#xff0c;哪个更大&#xff1f; 已经吸收了不知道多少数据的AI模型&#xff0c;和比他多学习一条数据的模型&#xff0c;哪个更智能&#xff1f; 想聊聊这个问题&#xff0c;出于一个偶然的机会。很早之前我在测试ChatGPT的时候&#xff0c;突然想问他个…

简单工厂、工厂方法、抽象工厂模式-这仨货的区别

要想明白这三玩意的区别就需要知道这三玩意的优缺点&#xff1b; 之所以有三种工厂模式&#xff0c;就说明它们各有所长&#xff0c;能解决不同场景的问题&#xff1b; 一、简单工厂模式 UML图 代码 public class MobileFactory {public static Mobile getMobile(String brand)…

【Linux】线程概述、创建线程、终止线程

目录 线程概述1、创建线程函数解析代码举例 2、终止线程函数解析代码举例 橙色 线程概述 与进程类似&#xff0c;线程是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程。 进程是 CPU 分配资源的最小单位&#xff0c;线程是操作系统调度执行的最小单位。…

回归预测 | MATLAB实现SSA-CNN-LSTM麻雀算法优化卷积长短期记忆神经网络多输入单输出回归预测

回归预测 | MATLAB实现SSA-CNN-LSTM麻雀算法优化卷积长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现SSA-CNN-LSTM麻雀算法优化卷积长短期记忆神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计学习总结参考资料 预测效果 基本介绍 MATLAB实现…

【笔记整理】轻量级神经网络 MobileNetV3

【笔记整理】轻量级神经网络 MobileNetV3 文章目录 【笔记整理】轻量级神经网络 MobileNetV31、深度可分离卷积2、翻转残差块和线性瓶颈结构3、h-swish 函数和 SE 模块4、网络结构搜索 近年来关于 CNN 的研究在飞速发展&#xff0c;CNN 模型在目标检测、图像分割等领域都取得了…

力扣sql中等篇练习(二十九)

力扣sql中等篇练习(二十九) 1 计算每个销售人员的影响力 1.1 题目内容 1.1.1 基本题目信息1 1.1.2 基本题目信息2 1.1.3 示例输入输出 a 示例输入 b 示例输出 1.2 示例sql语句 # Write your MySQL query statement below SELECT s1.salesperson_id,s1.name,IFNULL(t.total…

毕业季到底是去大厂还是去小公司

(点击即可收听) 毕业季到底是去大厂还是去小公司 相信很多人在选择大小公司的时候,会比较痛苦,外面的人想进去,里面的人想出来&#xff0c;至于选择大厂还是小公司 这是因人而异的,不同的阶段都可以有不同的选择 进大厂不一定就是对的,进小公司也不一定就是错的,学习东西,增长经…

股票量化分析工具QTYX使用攻略——涨停个股挖掘热门板块(更新2.6.5)

搭建自己的量化系统 如果要长期在市场中立于不败之地&#xff01;必须要形成一套自己的交易系统。 行情不等人&#xff01;边学习边实战&#xff0c;在实战中学习才是最有效地方式。于是我们分享一个即可以用于学习&#xff0c;也可以用于实战炒股分析的量化系统——QTYX。 QTY…

软考A计划-试题模拟含答案解析-卷九

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

JetBrains的多数据库管理和SQL工具DataGrip 2023版本在Win10系统的下载与安装配置教程

目录 前言一、DataGrip 安装二、使用配置总结 前言 DataGrip是一款多数据库管理和SQL工具&#xff0c;适用于不同类型的数据库。它提供了丰富的功能和工具&#xff0c;可以帮助开发人员更高效地管理数据库、编写SQL查询和执行数据操作。 DataGrip的主要特点&#xff1a; ——…

这里有3个Tips,也许可以帮你躲过ChatGPT大规模封号 | AIGC实践

据说&#xff0c;从昨天开始&#xff0c;ChatGPT又双叒叕开始大规模封号&#xff0c;很多注册用户收到这样一则消息&#xff1a; 大意是说&#xff1a;OpenAI 发现了你的 ChatGPT 账号存在可疑活动&#xff0c;为了保障平台安全&#xff0c;已自动退款并取消你的 ChatGPT Plus …

驱动开发:内核解析内存四级页表

当今操作系统普遍采用64位架构&#xff0c;CPU最大寻址能力虽然达到了64位&#xff0c;但其实仅仅只是用到了48位进行寻址&#xff0c;其内存管理采用了9-9-9-9-12的分页模式&#xff0c;9-9-9-9-12分页表示物理地址拥有四级页表&#xff0c;微软将这四级依次命名为PXE、PPE、P…

七年老程序员的三四月总结:三十岁、准备婚礼、三次分享

你好&#xff0c;我是 shixin&#xff0c;一名工作七年的安卓开发。 每两个月我会做一次总结&#xff0c;记下这段时间里有意义的事和值得反复看的内容&#xff0c;为的是留一些回忆、评估自己的行为、沉淀有价值的信息。 一转眼 2023 年过去了三分之一&#xff0c;这两个月经历…

【数据湖仓架构】数据湖和仓库:Databricks 和 Snowflake

是时候将数据分析迁移到云端了。我们比较了 Databricks 和 Snowflake&#xff0c;以评估基于数据湖和基于数据仓库的解决方案之间的差异。 在这篇文章中&#xff0c;我们将介绍基于数据仓库和基于数据湖的云大数据解决方案之间的区别。我们通过比较多种云环境中可用的两种流行技…