Linux基础开发工具--yum和vim

目录

[1. 软件包管理器](#1. 软件包管理器)

[1.1 什么是软件包](#1.1 什么是软件包)

[1.2 Linux 软件生态](#1.2 Linux 软件生态)

[1.2.1 对一个软件的下载分为](#1.2.1 对一个软件的下载分为)

[1.2.2 操作系统的好坏评估 --- 生态问题](#1.2.2 操作系统的好坏评估 --- 生态问题)

[1.2.3 为什么会有人免费提供特定的社区、软件,还发布?还提供云服务器让你下载?](#1.2.3 为什么会有人免费提供特定的社区、软件,还发布?还提供云服务器让你下载?)

[1.2.4 国内镜像源](#1.2.4 国内镜像源)

[1.3 yum 具体操作](#1.3 yum 具体操作)

[1.3.1 查看软件包](#1.3.1 查看软件包)

[1.3.2 软件安装](#1.3.2 软件安装)

[1.3.3 软件卸载](#1.3.3 软件卸载)

[1.3.4 注意事项](#1.3.4 注意事项)

[1.4 安装源](#1.4 安装源)

[2. 编辑器Vim](#2. 编辑器Vim)

[2.1 vim的基本概念](#2.1 vim的基本概念)

[2.2 vim 的基本操作](#2.2 vim 的基本操作)

[1. 进入vim](#1. 进入vim)

[2. 命令模式切换至插入模式](#2. [命令模式]切换至[插入模式])

[3. 插入模式切换至命令模式](#3. [插入模式]切换至[命令模式])

[4. 命令模式切换至底行模式](#4. [命令模式]切换至[底行模式])

[5. 退出vim](#5. 退出vim)

[2.3 vim 命令模式的命令集](#2.3 vim 命令模式的命令集)

[1. 命令模式转插入模式](#1. 命令模式转插入模式)

[2. 从插入模式切换为命令模式](#2. 从插入模式切换为命令模式)

[3. 光标移动](#3. 光标移动)

[4. 删除文字](#4. 删除文字)

[5. 复制](#5. 复制)

[6. 替换](#6. 替换)

[7. 撤销上一次操作](#7. 撤销上一次操作)

[8. 更改](#8. 更改)

[9. 调至指定的行](#9. 调至指定的行)

[2.4 V-BLOCK (视图模式)](#2.4 V-BLOCK (视图模式))

[1. 若想批量化注释第8到第18行](#1. 若想批量化注释第8到第18行)

[2. 代码全部注释](#2. 代码全部注释)

[3. V-BLOCK模式下的光标操作](#3. V-BLOCK模式下的光标操作)

[2.5 vim 底行模式命令集](#2.5 vim 底行模式命令集)

[1. 列出行号](#1. 列出行号)

[2. 跳到文件中的某⼀⾏](#2. 跳到文件中的某⼀⾏)

[3. 查找字符](#3. 查找字符)

[4. 保存文件](#4. 保存文件)

[5. 外部命令过滤器](#5. 外部命令过滤器)

[6. 全局替换命令](#6. 全局替换命令)

[7. vs 指令可实现分屏多文件操作](#7. vs 指令可实现分屏多文件操作)

[8. 离开vim](#8. 离开vim)

[2.6 操作总结](#2.6 操作总结)

[2.7 vim 其他命令补充](#2.7 vim 其他命令补充)


正文开始:

1. 软件包管理器

1.1 什么是软件包

  • 在Linux下安装软件, ⼀个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.
  • 但是这样太麻烦了, 于是有些⼈把⼀些常⽤的软件提前编译好, 做成软件包 (可以理解成windows上的安装程序) 放在⼀个服务器上, 通过包管理器可以很⽅便的获取到这个编译好的软件包, 直接进行安装.
  • 软件包和软件包管理器, 就好比 "App" 和 "应用商店" 这样的关系.
  • yum(Yellow dog Updater, Modified)是Linux下非常常用的⼀种包管理器. 主要应用在Fedora, RedHat,Centos等发行版上.
  • Ubuntu :主要使用apt (Advanced Package Tool)作为其包管理器。apt同样提供了自动解决依****赖关系、下载和安装软件包的功能。

1.2 Linux 软件生态

1.2.1 对一个软件的下载分为

  • a. 网络下载,b. 安装 (安装本质就是拷贝);
  • 必须使用root权限;
  • 是安装到系统里面,之安装一次,任何人都能使用;
  • 对一个软件的下载,不仅需要下载这个软件,对于这个软件所依赖的各种东西,都需要一并进行下载和安装。
  • 所以包管理器 的好处就体现在它会帮我们自动解决依赖问题。

1.2.2 操作系统的好坏评估 --- 生态问题

1.2.3 为什么会有人免费提供特定的社区、软件,还发布?还提供云服务器让你下载?

1.2.4 国内镜像源

  • 关于国内Linux软件安装源的官方链接用户可自行查询

1.3 yum 具体操作

1.3.1 查看软件包

通过 yum list 命令可以罗列出当前⼀共有哪些软件包. 由于包的数⽬可能非常之多, 这⾥我们需要使⽤grep 命令只筛选出我们关注的包. 例如:

cpp 复制代码
# Centos
$ yum list | grep lrzsz
lrzsz.x86_64   0.12.20-36.el7   @base


# Ubuntu
$ apt search lrzsz

注意事项:

  • 软件包名称: 主版本号.次版本号.源程序发⾏号-软件包的发⾏号.主机平台.cpu架构.

  • "x86_64" 后缀表示64位系统的安装包, "i686" 后缀表示32位系统安装包. 选择包时要和系统匹配.

  • "el7" 表示操作系统发行版的版本. "el7" 表示的是 centos7/redhat7. "el6" 表示 centos6/redhat6.

  • 最后⼀列, base 表示的是 "软件源" 的名称, 类似于 "小⽶应用商店", "华为应用商店" 这样的概念.

  • Ubuntu 有上述有详细介绍

    cpp 复制代码
    $ apt show lrzsz
    
    Package: lrzsz
    Version: 0.12.21-10
    Priority: optional
    Section: universe/comm
    Origin: Ubuntu
    Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
    Original-Maintainer: Martin A. Godisch <godisch@debian.org>
    ...

1.3.2 软件安装

cpp 复制代码
# Centos
$ sudo yum install -y lrzsz

# Ubuntu
$ sudo apt install -y lrzsz

# 加入 -y 指令,可跳过确认提示
# 没有 -y 选项,执行后会显示提示
  • yum/apt 会⾃动找到都有哪些软件包需要下载, 这时候敲 "y" 确认安装.
  • 出现 "complete" 字样或者中间未出现报错, 说明安装完成.

注意事项:

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

1.3.3 软件卸载

cpp 复制代码
# Centos 
sudo yum remove -y lrzsz

# Ubuntu
sudo apt remove -y lrzsz

1.3.4 注意事项

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

可以通过 ping 指令验证:

cpp 复制代码
例如执行:
ping www.baidu.com

1.4 安装源

Cetnos 安装源路径:

cpp 复制代码
$ ll /etc/yum.repos.d/
total 16
-rw-r--r-- 1 root root 676 Oct 8 20:47 CentOS-Base.repo # 标准源
-rw-r--r-- 1 root root 230 Aug 27 10:31 epel.repo # 扩展源

# 安装扩展源
# $ sudo yum install -y epel-release

Ubuntu 安装源路径:

cpp 复制代码
$ cat /etc/apt/sources.list # 标准源
$ ll /etc/apt/sources.list.d/ # 扩展源

2. 编辑器Vim

2.1 vim的基本概念

vim是一款多模式的编辑器,最常见的三种模式分别是:命令模式(Normal 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

2.2 vim 的基本操作

  • 当首次 # vim test.c 进入vim时,此时vim默认处于命令模式,
  • 若想正常写代码,需从命令模式切换到插入模式,输入i,就可切换
  • 在插入模式下若想退出则需要从插入模式回退到命令模式,按Esc键,就可切换,那么处在命令模式下直接按两下处于大写模式下的Z键就可退出。但是因为ZZ这种操作方式不显示,所以我们以另一种退出操作为主,即从命令模式切换到底行模式再退,Shift键 + ;键就可切换(即输入 ' :')。进入底行模式后, w(保存当前文件)、wq(输入 wq 存盘并退出vim)、q!(输入q!,不存盘强制退出vim)。同样的Esc键可返回。

1. 进入vim

  • 在系统提⽰符号输⼊vim及⽂件名称后,就进⼊vim全屏幕编辑画⾯
  • $ vim test.c
  • 不过有⼀点要特别注意,就是你进⼊vim之后,是处于命令模式,你要切换到插⼊模式才能够输⼊⽂字。

2. 命令模式切换至插入模式

  • 输⼊a
  • 输⼊i
  • 输⼊o

3. 插入模式切换至命令模式

  • ⽬前处于插⼊模式,⼀直输⼊⽂字后,如果发现输错了字,想⽤光标键往回移动,将该字删除,可以先按⼀下「ESC」键转到命令模式再删除⽂字。当然,也可以在插入模式下直接删除。

4. 命令模式切换至底行模式

  • 「shift + ;」, 其实就是输⼊「:」

5. 退出vim

命令模式下,按⼀下「:」冒号键进⼊「Last line mode」,例如:

  • : w (保存当前⽂件)
  • : wq (输⼊「wq」,存盘并退出vim)
  • : q! (输⼊q!,不存盘强制退出vim)

2.3 vim 命令模式的命令集

1. 命令模式转插入模式

  • 按「i」切换进⼊插⼊模式「insert mode」,按"i"进⼊插⼊模式后是从光标当前位置开始输⼊ ⽂件;
  • 按「a」进⼊插⼊模式后,是从⽬前光标所在位置的下⼀个位置开始输⼊⽂字;
  • 按「o」进⼊插⼊模式后,是插⼊新的⼀⾏,从⾏⾸开始输⼊⽂字。

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

  • 按「ESC」键。

3. 光标移动

  • vim可以直接⽤键盘上的上下左右键来移动光标,但正规的vim是用小写英文字母「h」、「j」、 「k」、「l」,分别控制光标左、下、上、右移⼀格
  • 按「G」:移动到文章的最后
  • n +「G」:移动到第n行的行首
  • 按「 $ 」:移动到光标所在行的"行尾"
  • 按「^」:移动到光标所在行的"行首"
  • 按「w」:光标跳到下个字的开头,即以一个英文单词为单位向右移动
  • 按「e」:光标跳到下个字的字尾
  • 按「b」:光标回到上个字的开头,即以一个英文单词为单位向左移动
  • 按「#l」:光标移到该⾏的第#个位置,如:5l,56l
  • 按[gg]:进入到文本开始
  • 按[shift+g]:进⼊⽂本末端,即按 G
  • 按「ctrl」+「b」:屏幕往"后"移动一页
  • 按「ctrl」+「f」:屏幕往"前"移动一页
  • 按「ctrl」+「u」:屏幕往"后"移动半页
  • 按「ctrl」+「d」:屏幕往"前"移动半页

4. 删除文字

  • 「x」:每按⼀次,删除光标所在位置的⼀个字符
  • 「#x」:例如,「6x」表示删除光标所在位置的"后面(包含自己在内)"6个字符
  • 「X」:⼤写的X,每按⼀次,删除光标所在位置的"前⾯"⼀个字符,即光标左侧的字符,
  • 「#X」:例如,「20X」表⽰删除光标所在位置的"前⾯"20个字符,此处将选中的20个字符删除后,也可接着进行p粘贴操作,将选中删除的20个字符粘贴出来,类似局部剪切。
  • 「dd」:截切当前行或者删除行
  • 「#dd」:从光标所在行开始删除#行。若执行5dd指令,即在光标所在行开始删除5行,结合p键,可将删除的那5行代码复制出来,再按p键则再复制被删掉的那5行代码一次

5. 复制

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

6. 替换

  • 「r」:替换光标所在处的字符。
  • 「R」:进入REPLACE(替换模式),批量化替换,替换光标所到之处的字符,直到按下「ESC」键为止。
  • Shift + \~ :大小写切换,Shift键按住不动,连续按 ~键可实现连续依次切换

7. 撤销上一次操作

  • **「u」:撤销历史操作。**如果您误执⾏⼀个命令,可以⻢上按下「u」,回到上⼀个操作。按多次"u"可以执⾏ 多次回复。
  • 「ctrl + r」: 撤销的恢复
  • 注意:一旦退出文件编辑,就无法再进行撤销了,但是如果只是保存而没有q退出,则还可以撤销。

8. 更改

  • 「cw」:更改光标所在处的字到字尾处
  • 「c#w」:例如,「c3w」表⽰更改3个字

9. 调至指定的行

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

2.4 V-BLOCK (视图模式)

此模式的批量化注释等操作比较实用

1. 若想批量化注释第8到第18行

a. 在NORMAL模式下,先将光标指向第八行,ctrl + v 进入 V-BLOCK模式,然后通过h j k l 键进行上下左右的光标选定,如下图所示:

b. 区域选择后,通过shift + i 键 转而进入插入模式,如下图所示

c. 再输入//斜杠进行注释,如下图所示

d. 紧接着直接按Esc键,不仅可以做到批量化注释,还能回到命令模式,如下图所示

2. 代码全部注释

同理于上述操作步骤,先在NORMAL模式下将光标指向第一行开头,ctrl + v, 进入V-BLOCK模式,然后shift + g,实现全部行选中,再shift + i,进入INSERT模式,输入//斜杠注释,最后Esc键,实现全部注释,回到NORMAL模式。同样撤销可按u键,反悔刚刚的撤销,同样可再ctrl + r。

3. V-BLOCK模式下的光标操作

也可多列选择,进行批量增删查改注释操作

其他的光标移动和操作指令,与上文中描述一致,此处不再赘述。

2.5 vim 底行模式命令集

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

1. 列出行号

  • 「set nu」: 输⼊「set nu」后,会在⽂件中的每⼀⾏前⾯列出⾏号。
  • 「set nonu」: 输⼊「set nonu」后,会在⽂件中的每⼀⾏前⾯列出⾏号。

2. 跳到文件中的某⼀⾏

  • 「#」:「#」号表⽰⼀个数字,在冒号后输⼊⼀个数字,再按回⻋键就会跳到该行了,如输⼊数字15,再回车,就会跳到⽂章的第15行。

3. 查找字符

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

4. 保存文件

  • 「w」: 在冒号输⼊字⺟「w」就可以将⽂件保存起来

5. 外部命令过滤器

在 Vim 中,!command外部命令过滤器 功能,它允许你将 Vim 缓冲区中的文本通过外部 Shell 命令处理,并用结果替换原始文本。

基本语法:

cpp 复制代码
[范围] ! 外部命令
  • 无范围:对当前行执行
  • 有范围:对指定范围内的所有行执行

示例:

1. 排序文本

cpp 复制代码
:1,10!sort          # 对第1-10行排序
:%!sort             # 对整个文件排序
:!sort              # 对当前行排序(没什么意义)

2. 格式化文本

cpp 复制代码
:%!fmt              # 格式化段落(调整行宽)
:%!fold -w 60       # 每行最多60个字符
:%!column -t        # 对齐表格(制表符分隔)
:%!pr -2            # 分两列显示

6. 全局替换命令

cpp 复制代码
:%s/dst/src/     # 基本形式(仅替换每行第一个匹配)
:%s/dst/src/g    # 正确形式(替换所有匹配)

示例:

cpp 复制代码
示例文本
dst and dst and dst
dst here dst there

执行 :%s/dst/src/

src and dst and dst    # 第一行只替换第一个
src here dst there     # 第二行只替换第一个

若加上g
执行 :%s/dst/src/g

src and src and src    # 第一行全部替换
src here src there     # 第二行全部替换

7. vs 指令可实现分屏多文件操作

a. 光标在哪边就是对哪边的文件进行操作。

b. 当光标处于左边文件,按住ctrl 同时 按两下w键,可将光标切换至右边文件。

8. 离开vim

  • 「q」:按「q」就是退出,如果⽆法离开vim,可以在「q」后跟⼀个「!」强制离开vim。
  • 「wq」:⼀般建议离开时,搭配「w」⼀起使⽤,这样在退出的时候还可以保存⽂件。

2.6 操作总结

1. 三种模式

  • 命令模式
  • 插⼊模式
  • 底行模式

2. vim⼀共有12种总模式,其余模式在此不做介绍

3. vim 操作

  • 打开,关闭,查看,查询,插⼊,删除,替换,撤销,复制等等操作。

2.7 vim 其他命令补充

cpp 复制代码
# 让test.c在vim中打开时,自动让光标定位在第n行
vim test.c n
相关推荐
大树883 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 小时前
Linux 11 动态监控指令top
linux
小宇宙Zz3 小时前
Maven依赖冲突
java·服务器·maven
Inhand陈工4 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智4 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩5 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_5 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化