【Linux】Linux工具——yum,vim

1.Linux 软件包管理器——yum

Linux安装软件:

  • 源代码安装(不建议)
  • rpm安装(类似Linux安装包,版本可能不兼容,不推荐,容易报错)
  • yum安装(解决了安装源,安装版本,安装依赖的问题,类似Linux应用商店,非常推荐)

Lniux的软件生态:

  • 开源是一种商业战略
  • 开源有时候也挺贵的,例如,新人做操作系统的选型——生态好

 我们一般在应用商店进行下载,客户端怎么知道去哪里下载?

  • 客户端里内置了服务器链接

yum就相当于lniux的应用商店

 那么问题来了,在yum进行下载,yum怎么知道去哪里下载?

谁提供软件?

因为linux是开源系统,大家共建的系统,软件自然是系统共建者写的

1.1.什么是软件包

  • 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.
  • 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.
  • 软件包和软件包管理器, 就好比 "App" 和 "应用商店" 这样的关系.
  • yum( Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上.

安装软件需要确认是不是自己是不是处于联网状态

关于 yum 的所有操作必须保证主机(虚拟机)网络畅通!!!

可以通过 ping 指令验证

ping www.baidu.com

有这些标识就代表处于联网状态

只有root才能安装软件,普通用户是不行的

好,我们开始进行安装软件

1.2.使用yum安装rzsz

我们安装的第一款软件叫rzsz

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

对于linux服务器来说,通常我们是通过一些ssh工具进行远程访问连接的,而对于经常使用它的人来说,少不了将文件上传下载到服务器。如何能够快速的同服务器进行文件的交互尤为重要。不然每次都打开单独的ssh客户端或者ftp很是浪费时间。今天,我们就来介绍一下linux系统下的rz、sz命令。

运行命令rz、sz要比FTP容易很多,而且服务器不需要另开FTP服务即可完成。

  • sz:将选定的文件发送(send)到本地机器
  • rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)

rz,sz是便是Linux/Unix同Windows进行ZModem文件传输的命令行工具,windows端需要支持ZModem的telnet/ssh客户端(比如SecureCRT)。

注意:该方法的传输速度比较慢,推荐使用中小文件的传输。

通过 yum list 命令可以罗列出我们当前linux环境一共有哪些软件包.

由于包的数目可能非常之多, 这里我们需要使用 grep 命令只筛选出我们关注的包.

注意事项:

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

通过 yum, 我们可以通过很简单的一条命令完成rzsz的安装.

yum install 软件包名称

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

 

注意事项:

  • 安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成.
  • yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外 一个软件, yum会报错.
  • 如果 yum 报错, 请自行百度.

我们试试rz命令

 

我们怎么卸载软件呢?

yum remove 软件包名称

 我们拿刚刚那个软件为例子

 yum去哪里找下载链接呢?

1.官方yum源

在一个系统内置的仓库里

/etc/yum.repos.d/

2.拓展yum源

一般linux操作系统,默认配置的yum源是国外的,有可能你的yum源访问会比较慢,可能需要更新yum源 (虚拟机可能需要)

我们把yum源更新为国内的

我们使用云服务器,一般厂商已经替换成国内的yum源了

2.Linux编辑器——vim使用

vs2022是集成开发环境——不仅能写代码,还能编译,还支持各种功能

vim可是编辑器——文本编写——单纯的写代码

vim是多模式的编辑器

2.1. vim的基本概念

我们讲解vim的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模式(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

我这里一共有12种模式:six BASIC modes和six ADDITIONAL modes.

我们先看看一个例子

我们现在所处的就是命令模式 ,

我们输入hello world,发现啥也没有用

用户输入都会当作命令,一般不会给你当作文本输入

我们要写代码,就要点击i键,进入插入模式

我们输入代码

 我们怎么保存退出呢?

我们需要从插入模式转变为命令模式(即按Esc),再转变为底行模式(即在命令模式下输入:),输入wq即可保存退出 (w是保存,q是退出)

 

2.2.vim命令模式常用命令集——单文件篇

注意全要在命令模式下执行:

1.按[gg]:进入到文本开始

2.按[G]:进入文本末端

3.[n+G]:定位到任意行

4.「yy」:复制光标所在行到缓冲区。

5. [p]:粘贴光标所在行的下一行

我们先进入命令模式,4+G,yy,p

我们发现直接就在下一行复制了一份

6.(n+)yy(+m)+p:复制光标所在行开始的n行粘贴m次

我们接着试试yy+10+p

 我们接着看

在命令模式下执行2+yy+2+p

 

7.u:撤销

我们按个u,撤销了上一步

8.(n+)dd:剪切/删除光标所在行

dd+p

我们可以2+dd+p,这个不演示,自己去看

8.$:定位光标到当前行结尾

9.^:定位光标当前行的开头

这两个不展示了,太简单了

10.(n+)b:往左边跳过n个单词,默认n是1

11.(n+)w:往右边跳过n个单词,默认n是1

我们演示一波

输入2w

输入2b

又回来咯

 12.vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、 「l」,分别控制光标左、下、上、右移一格

这个和我们的上下左右的四个键的作用不是重复了吗?

这个是因为历史原因——开发vim的时候没有上下左右键

h在最左边,l在最右边,jk:下上,只要背下上即可

13.shift+~:让光标对应字母完成大小写转换

我们看看

 

按住~就会移动

14.更换一堆字符(n+)rm:将光标所在位置后面n个字符全换成字符m,n是默认为1

在命令模式下输入4rx

 

15:shift+r:进入替换模式

 

这样子就能直接替换了

16:(n)x:对光标之后的n个字符进行删除

我们按了一个u

 

17.ctrl+r:对撤销后悔了

掌握上面那些暂时够用了,我们不讲太多 

2.3.vim命令模式命令集——多文件

1.底行里输入

vs 文件名

便可实现多屏,不论文件是不是存在 

我们先打开一个.c文件

我们在命令模式下输入冒号进入底行模式,输入vs code1.c

 

就实现了分屏操作

光标在哪一个窗口,就对哪一个窗口进行操作

我们怎么切屏呢?我们只讲一种——ctrl+w+w

 太简单了

 这个方法适用于多文件操作,无论打开了多少文件

2.4. vim命令模式命令集——总结

插入模式

  • 按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
  • 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
  • 按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

从插入模式切换为命令模式

  • 按「ESC」键。

移动光标

  1. 按[gg]:进入到文本开始
  2. 按[G]:进入文本末端
  3. [n+shift+g]:定位到任意行
  4. vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、 「l」,分别控制光标左、下、上、右移一格
  5. 按「G」:移动到文章的最后
  6. 按「$」:移动到光标所在行的“行尾”
  7. 按「^」:移动到光标所在行的“行首”
  8. 按「w」:光标跳到下个字的开头
  9. 按「e」:光标跳到下个字的字尾
  10. 按「b」:光标回到上个字的开头
  11. 按「#l」:光标移到该行的第#个位置,如:5l,56l
  12. 按「ctrl」+「b」:屏幕往“后”移动一页
  13. 按「ctrl」+「f」:屏幕往“前”移动一页
  14. 按「ctrl」+「u」:屏幕往“后”移动半页
  15. 按「ctrl」+「d」:屏幕往“前”移动半页

删除文字

  1. 「x」:每按一次,删除光标所在位置的一个字符
  2. 「#x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
  3. 「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
  4. 「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
  5. 「dd」:删除光标所在行
  6. 「#dd」:从光标所在行开始删除#行

复制

  1. 「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
  2. 「#yw」:复制#个字到缓冲区
  3. 「yy」:复制光标所在行到缓冲区。
  4. 「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
  5. 「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完 成复制与粘贴功能。

替换

  1. 「r」:替换光标所在处的字符。
  2. 「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

撤销上一次操作

  1. 「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。
  2. 「ctrl + r」: 撤销的恢复 更改
  3. 「cw」:更改光标所在处的字到字尾处
  4. 「c#w」:例如,「c3w」表示更改3个字

跳至指定的行

  1. 「ctrl」+「g」列出光标所在行的行号。
  2. 「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

 

2.5. vim末行模式命令集

在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式。

列出行号

  • 「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。
  • 「set nonu」: 输入「set nonu」后,删除行号。

我们还可以去掉行号

跳到文件中的某一行

  • 「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15, 再回车,就会跳到文章的第15行。

查找字符

  1. 「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按 「n」会往后寻找到您要的关键字为止。
  2. 「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直 按「n」会往前寻找到您要的关键字为止。
  3. 问题:/ 和 ?查找有和区别?操作实验一下

保存文件

  1. 「w」: 在冒号输入字母「w」就可以将文件保存起来 离开vim,可以在「w」后跟一个「!」强制保存。
  2. 「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。
  3. 「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。 

3. 简单vim配置

我们上面用的vim是一个裸的vim,体验非常不好,如果想要好的体验,我们就得自己配置vim 

配置文件的位置

在目录 /etc/ 下面,有个名为vimrc的隐藏文件,这是系统中公共的vim配置文件,对所有用户都有效。

我的没有,没关系

在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下, 通常已经存在一个.vimrc文件,如果不存在,则创建之。

这个vimrc文件就是配置文件,我们打开它

保存,退出

我们从此往后,我们使用vim就默认带行号了

那我们怎么知道有哪些配置呢?很简单,百度

下面这些是常用的一些

" 编辑设置
set nu                      " 显示行号 同 number
set tabstop=4               " 设置制表符宽度为4
set softtabstop=4           " 设置软制表符宽度为4
set shiftwidth=4            " 设置缩进的宽度为4
set expandtab               " 制表符扩展为空格
set showmatch               " 输入括号时,自动高亮对应的另一个括号, 各种括号
set ruler                   " 在状态栏显示光标的当前位置(位于哪一行哪一列)
set autoindent              " 设置自动缩进
set cindent                 " 以C语言的方式缩进
"set cursorline              " 突出显示当前行" 字体和主题
"set guifont=Consolas:h15    " 设置字体和字体大小, 得系统有
"colorscheme neodark         " 设置主题为neodark, 前提得有
" 备份还原设置
"set nobackup                " 取消备份文件
"setlocal noswapfile         " 不创建交换文件.swp, 奔溃用, 正常退出会删除
set undofile                 " 生成un~文件, un~文件用来保存撤销历史
set undodir=~/.vim/undodir   " 统一管理undo文件路径  mkdir ~/.vim/undodir -p
"set backup                   " 开启备份文件 filename~
"set backupext=.bak          " 设置备份文件后缀为.bak" 工具环境设置
set showmode                " 在底部显示,当前处于命令模式还是插入模式
set showcmd                 " 命令模式下,显示当前键入的指令, 包括快捷键
set hlsearch                " 高亮显示搜索的字符串
"set t_Co=256                " 启用256色, 不用主题就关了
set noerrorbells            " 出错时不发出响声
set vb t_vb=                " 光标边界响铃关闭
set laststatus=2            " 显示状态栏
set statusline=%F%m%r%h%w\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%Y\ -\ %H:%M\")}  "状态栏信息模板
set backspace=2
" 语法高亮显示
syntax on
syntax enable" 文件编码配置
set enc=utf-8               " vim内部编码模式,即内存中的编码 同 encoding
set fenc=utf-8              " 保存文件的默认编码, 不会覆盖原编码
set fencs=ucs-bom,utf-8,cp936,gb18030,gb2312,gbk,big5,euc-jp,euc-kr,shift-jis,latin1   "打开文件时的编码猜测列表,按前后优先级顺序 同fileencodings
set termencoding=utf-8      " 屏幕显示最终编码

我们再配置一个

我们也可以直接把上面那个直接粘贴到我们的vim里面去

也可以自己去配置

一个用户一个vim配置,大家完全可以按照自己的喜爱去配置vim,配置直接去网上搜

是不是很nice!!!!

注意:不要在root账号里面配置vim ,去普通用户配置

 这个自己去了解即可

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

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

相关文章

四川音盛佳云电子商务有限公司引领抖音电商新风潮

在数字化浪潮席卷全球的今天,电商行业已成为推动经济发展的重要力量。作为这一领域的佼佼者,四川音盛佳云电子商务有限公司凭借其在抖音电商服务领域的专业实力和独特视角,正引领着行业的新风潮,助力品牌实现快速增长和腾飞。 四…

使用Python发送企业微信消息

大家好,在本文中,我们将探讨如何使用 Python 发送企业微信消息。将详细说明如何通过 Python 脚本实现消息的发送。无论是希望自动化某些任务,还是想要快速地向团队发送实时通知,本文都将为您提供一站式的解决方案。 企业微信提供了…

找不到msvcr100.dll如何修复,分享几种有效的修复方法

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“找不到msvcr100.dll”。这个错误通常发生在运行某些程序时,系统无法找到所需的动态链接库文件。这个问题可能会给用户带来困扰,但是幸运的是,有一些简单…

汇编原理 | 二进制、跳转指令、算数运算、

一.二进制 two complement reprentation(补码) 二进制的运算: 6的二进制 0110 -6的二进制 如何表示? 四个bit的第一个bit表示符号:1负0正 -6表示为1010 解释: 0 0000 1 0001 -1 1111(由 …

【Ubuntu】100 系统字体安装和更改

系统:Ubuntu18.04LTS 1 Why we need? 写这篇经验贴的原因: ①我需要装一下中文字体(Qt要用); ②想调一下字体大小和默认中文字体的样式 2 装第三方字体 Step1:安装软件Font Manager sudo ap…

【记录】打印|用浏览器生成证件照打印PDF,打印在任意尺寸的纸上(简单无损!)

以前我打印证件照的时候,我总是在网上找在线证件照转换或者别的什么。但是我今天突然就琢磨了一下,用 PDF 打印应该也可以直接打印出来,然后就琢磨出来了,这么一条路大家可以参考一下。我觉得比在线转换成一张 a4 纸要方便的多&am…

Echarts 让柱状图在图表中展示,离开X轴

文章目录 需求分析需求 分析 话不多说,直接源码展示 option = {title: {text: Waterfall Chart,subtext: Li

落地台灯有什么作用?五款口碑好的落地台灯推荐

落地台灯有什么作用?面对长时间工作、学习已成为当代年轻人的真实写照,据目前不完全统计,60%以上的人群每天用眼时间都已经超过10小时,高强度的的用眼以及不可确定的环境因素都易导致双眼出现干涉、酸痛、红血丝等情况&#xff0c…

[有监督学习]6.详细图解朴素贝叶斯

朴素贝叶斯 朴素贝叶斯(Naive Bayes)是常用于自然语言分类问题的算法。它在垃圾邮件过滤上的应用非常有名。 概述 朴素贝叶斯是一个基于概率进行预测的算法,在实践中被用于分类问题。具体来说,就是计算数据为某个标签的概率&…

从零开始利用MATLAB进行FPGA设计(七)用ADC采集信号教程2

黑金的教程做的实在太拉闸了,于是自己摸索信号采集模块的使用方法。 ADC模块:AN9238 FPGA开发板:AX7020;Xilinx 公司的 Zynq7000 系列的芯片XC7Z020-2CLG400I,400引脚 FBGA 封装。 往期回顾: 从零开始利…

STM32学习问题总结(2)—CubeMX生成项目后串口没效果和Microlib

检查完所有的硬件和软件部分,最后发现,又是Keil的设置问题,啊啊啊啊 打开Keil的魔术棒,勾选Target的Use Microlib选项即可,但这并不是最佳方案 最终解决方案: 参考:http://t.csdnimg.cn/2Tjfc…

服务器主板电池

一、什么是服务器纽扣电池? 服务器纽扣电池,也叫CMOS电池,是一种非常小型的电池,通常与服务器主板上的CMOS芯片相结合,用于储存BIOS设置、时钟和其他关键系统信息。这种电池的体积通常比一枚硬币还小,而且…

四、.Net8对接Ollama实现文字翻译(.Net8+SemanticKernel+Ollama)本地运行自己的大模型

.Net8SemanticKernelOllama 一、Semantic Kernel官方定义SK能做什么? 二、基本使用1、普通对话2、使用插件实现文本翻译功能 三、IChatCompletionService、ITextGenerationService、ITextEmbeddingGenerationService 很多情况都有这样的需求,使用自有系统…

巨细巨细的白痴级vulntarget-a靶场wp再不会你打死我

ad一,靶场搭建 下载靶场:GitHub - crow821/vulntarget: vulntarget靶场系列 官方拓补图 ps:此处 攻击机ip192.168.87.134,win7ip1为192.168.87.144 下载完毕后直接装入虚拟机不要进去,不要进去,不要进去…

d3dcompiler43.dll丢失怎么修复,分享几种有效的修复教程

电脑已经成为我们生活中不可或缺的一部分。然而,由于各种原因,电脑可能会出现一些问题,其中之一就是d3dcompiler43.dll文件丢失。这个文件是DirectX组件之一,用于编译和链接DirectX应用程序。当这个文件丢失时,可能会导…

网安面试。

SQL注入 sql注入原理 对用户输入的数据没有进行严格的过滤与判断,导致用户构造各种恶意 payload 拼接进后台数据库查询语句中执行。 sql的类型 联合注入 堆叠注入 宽字节注入 cookie注入 XFF头注入 UA注入(user-agent注入) Referer注…

AI大模型探索之路-实战篇12: 构建互动式Agent智能数据分析平台:实现多轮对话控制

系列篇章💥 AI大模型探索之路-实战篇4:深入DB-GPT数据应用开发框架调研 AI大模型探索之路-实战篇5:探索Open Interpreter开放代码解释器调研 AI大模型探索之路-实战篇6:掌握Function Calling的详细流程 AI大模型探索之路-实战篇7…

nnUNet保姆级使用教程!从环境配置到训练与推理(新手必看)

文章目录 写在前面nnUNet是什么?一、配置虚拟环境二、安装nnUNet框架1.安装nnUNet这一步我遇到的两个问题: 2.安装隐藏层hiddenlayer(可选) 三、数据集准备nnUNet对于你要训练的数据是有严格要求的,这第一点就体现在我…

WEB攻防-JAVAWEB项目常见漏洞

知识点 1.JavaWeb常见安全及代码逻辑 2.目录遍历&身份验证&逻辑&JWT 3.访问控制&安全组件&越权&三方组件 本篇主要了解以上问题在javaweb中的呈现, 第一个重点理解URL与javaweb代码框架的对应方式,java在没有代码的情况下是很难…

PMP学习和考试难度分析

PMP(项目管理专业人士)考试目前是全球范围内比较具权威性和认可度的项目管理证书之一。因此PMP考试的难度是一个备受关注的话题。根据我们以往的学员经验我从不同角度解析PMP考试的难度,并提供一些应对挑战的建议。希望对大家有所帮助。 PMP考…