【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 ,去普通用户配置

 这个自己去了解即可

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FL Studio Producer Edition 21.2.3.4004全插件+Crack下载链接(亲测可用,非钓鱼)

FL Studio 21.2.3.4004中文版 中文别名水果编曲软件,是一款全能的音乐制作软件,包括编曲、录音、剪辑和混音等诸多功能,让你的电脑编程一个全能的录音室,它为您提供了一个集成的开发环境,使用起来非常简单有效&#xf…

Java实战:从文件读出学生列表

本实战项目的目标是从文本文件中读取学生列表,并验证读取过程的正确性通过单元测试。 创建静态方法 实现一个名为readStudentsFromFile的静态方法,该方法接收一个文件路径作为参数。创建一个Student对象的列表,用于存储从文件中读取的学生信息…

Java实战:将学生列表写入文件

本实战项目旨在演示如何使用Java语言将学生信息列表写入到一个文本文件中,并进行单元测试以确保代码的正确性。 创建静态方法 定义一个名为writeStudentsToFile的静态方法,该方法接收两个参数:一个Student对象的列表和一个文件路径。使用File…

Ultralytics x SwanLab:可视化YOLO模型训练

Ultralytics是YOLO官方团队推出的CV训练与推理框架,不仅支持目标检测任务,还支持分割、姿态识别、分类等更多任务。 SwanLab是一个深度学习实验管理与训练可视化工具,由西安电子科技大学团队打造,融合了Weights & Biases与Ten…

【协议开发系列】梳理关于TCP和UDP两种协议的区别和使用场景

起源 前二天项目上在核对外部对接服务的五元组列表的时候,有一位客户提问对于同样的服务同时支持tcp和udp二种方式,有什么优点和缺点,应该如何选择?这个问题突然让我愣了一下,确实好久没有“温故”了,相关…

算法每日一题(python,2024.05.26) day.8

题目来源(力扣. - 力扣(LeetCode),简单) 解题思路: 双指针+交换,使用left和right两个指针,right指针向右移动,left从数组首位开始,当right找到非…

实时数据传输:Django 与 MQTT 的完美结合

文章目录 准备工作创建 Django 项目与应用设置 MQTT 服务器编写 Django 视图编写前端模板发布 MQTT 消息运行 Django 项目 在当今互联网应用中,实时数据传输已经成为许多项目的核心需求。无论是社交媒体平台、在线游戏、金融交易还是物联网设备,都需要及…

微信小程序实现上传视频 / 上传图片功能以及整合上传视频 / 上传图片功能(超详细)

上传视频功能 效果如下: <!-- 上传 S --><view class"img-list"><!-- 上传列表 --><view class"upload-video"><block wx:if"{{src ! }}"><video src"{{src}}" class"img-li"></vi…

STL:stack和queue

文章目录 stack的介绍和使用stack的介绍stack的使用stack的模拟实现 queue的介绍和使用queue的介绍queue的使用queue的模拟实现 priority_queue的介绍和使用priority_queue的介绍priority_queue的使用优先级队列的模拟实现 deque的介绍deque的结构deque的缺陷为什么选择deque作…

Codeforces Round 949 (Div. 2 ABCD) 视频讲解

A. Turtle and Piggy Are Playing a Game Problem Statement Turtle and Piggy are playing a number game. First, Turtle will choose an integer x x x, such that l ≤ x ≤ r l \le x \le r l≤x≤r, where l , r l, r l,r are given. It’s also guaranteed that …

数据库与缓存⼀致性⽅案

数据库与缓存⼀致性⽅案 1、背景2、数据⼀致性⽅案设计3、数据⼀致性⽅案流程图4、关键代码4.1、 处理数据⼀致性的消息队列⼊⼝4.2、数据⼀致性配置的常量信息1、背景 现有的业务场景下,都会涉及到数据库以及缓存双写的问题,⽆论是先删除缓存,再更新数据,或者先更新数据,…

HCIP-Datacom-ARST自选题库__MAC【14道题】

一、单选题 1.缺省情况下&#xff0c;以下哪种安全MAC地址类型在设备重启后表项会丢失? 黑洞MAC地址 Sticky MAC地址 安全动态MAC地址 安全静态MAC地址 2.华为交换机MAC地址表中的动态sticky MAC地址的默认老化时间是多少秒? 300 不会老化 400 500 3.华为交换机MA…

Python 算法交易实验70 简单回顾

说明 感觉停滞了一段时间&#xff0c;本来qtv200应该在去年12月就迭代好了。回顾了一下原因&#xff1a; 1 工作的约束。因为量化现在是打辅助的角色(现在的工作还是比较香的)&#xff0c;去年上了项目&#xff0c;几乎与世隔绝的那种&#xff0c;打断了整体的节奏。2 信心的…

SDK开发

为什么需要Starter&#xff1f; 理想情况:开发者只需关心调用哪些接口&#xff0c;传递哪些参数就跟调用自己写的代码一样简单。 开发starter的好处&#xff1a;开发者引入之后&#xff0c;可以直接在application.yml中写配置&#xff0c;自动创建客户端。 starter开发流程 …

上位机图像处理和嵌入式模块部署(f407 mcu开发板基本测试)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 我们拿到一个新的开发板之后&#xff0c;一般都需要测试一下基本功能。这里面一部分功能是我们比较熟悉的&#xff0c;比如说led、key输入、串口、…

力扣Hot100-有效的括号(栈stack)

给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括…

泛型知识汇总

演示代码&#xff1a; package exercise;import java.util.Arrays;public class MyArrayList<E> {Object[] obj new Object[10];int size;public boolean add(E e) {obj[size] e;size;return true;}public E get(int index) {return (E) obj[index];}//没有这个函数&a…

JVM(Java虚拟机)笔记

面试常见&#xff1a; 请你谈谈你对JVM的理解?java8虚拟机和之前的变化更新?什么是OOM&#xff0c;什么是栈溢出StackOverFlowError? 怎么分析?JVM的常用调优参数有哪些?内存快照如何抓取&#xff1f;怎么分析Dump文件&#xff1f;谈谈JVM中&#xff0c;类加载器你的认识…

【记录】网络|没有路由器没有网线,分别使用手机或Windows电脑共享网络给ARM64开发板,应急连接

事情是这样的&#xff0c;我的开发板明明已经选择了记住热点 WiFi 密码&#xff0c;但是却没有在开机的时候自动连接&#xff0c;我又没有放显示器在身边&#xff0c;又不想为了这点事去找个显示器来&#xff0c;就非常难受。 我手边有的设备是&#xff1a; 笔记本电脑&#…

关于 c++ cout << endl; 的源码解释

这行语句非常常用。以前在王老师课上&#xff0c;老师提到过 endl 是一个函数模板。现给出这行语句的相关源码&#xff1a; 反汇编的依据如下&#xff1a; 接着是 谢谢