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
相关推荐
女王大人万岁2 小时前
Go标准库 path 详解
服务器·开发语言·后端·golang
酣大智2 小时前
计算机网络概述
运维·网络
砚边数影2 小时前
时序数据库InfluxDB迁移替换实测,运维成本显著优化
运维·数据库·时序数据库·kingbase·kingbasees·金仓数据库
铁手飞鹰2 小时前
[Linux笔记]内核裁剪
linux·笔记·linux内核裁剪
夏乌_Wx2 小时前
fork、内存管理与虚拟内存总结
linux
楼田莉子2 小时前
Linux进程间通信——System V系列
linux·服务器·c++·学习·信息与通信
ONLYOFFICE2 小时前
ONLYOFFICE 桌面编辑器正式成为 ShaniOS 默认办公套件
linux·编辑器·github·onlyoffice
Percep_gan2 小时前
禁用Linux默认端口监听IPv6地址,修改为监听IPv4
linux·运维·服务器
酣大智2 小时前
传输介质-- 网线
运维·网络