[命令] Linux 命令 rpm (Red Hat Package Manager) (管理软件)

内容目录:

案例一:安装软件
1.1 安装软件
1.2 安装软件并显示详细信息
1.3 重复安装软件
1.4 忽略依赖问题安装软件
1.5 强制安装软件 (不建议)

案例二:删除软件
2.1 删除软件
2.2 删除软件并显示详细信息

案例三:升级软件
3.1 升级软件
3.2 升级软件并显示详细信息
3.3 忽略依赖问题升级软件
3.4 强制升级软件 (不建议)

案例四:显示软件
4.1 显示所有已安装的软件
4.2 显示所有已安装的软件的安装时间
4.3 显示所有已安装的软件属于哪一个系统版本
4.4 显示软件的文件信息
4.5 显示软件的全部信息 (包括安装时间、大小等等)
4.6 显示软件的所有文件
4.6.1 显示软件的所有文件
4.6.2 显示软件的所有文件和这些文件的详细信息
4.7 显示软件所有文件的状态
4.7.1 显示软件所有文件的状态
4.7.2 显示软件所有文件的状态和这些文件的详细信息
4.8 显示软件的配置文件
4.8.1 显示软件的配置文件
4.8.2 显示软件的配置文件和这些文件的详细信息
4.9 显示软件的文档文件 (man 手册、info 手册、READMEs 等等)
4.9.1 显示软件的文档文件 (man 手册、info 手册、READMEs 等等)
4.9.2 显示软件的文档文件 (man 手册、info 手册、READMEs 等等)
4.10 显示软件的变更历史
4.10.1 显示软件的变更历史
4.10.2 显示软件某项信息的变更历史
4.10.3 显示软件现在的版本是否修复 CVE 漏洞
4.11 显示文件所属软件

案例五:验证软件
5.1 验证软件
5.2 验证包含的文件的软件是否正确
5.3 验证所有已经安装的软件
5.4 通过 RPM 文件验证软件

案例六:测试软件
6.1 测试安装软件
6.2 测试删除软件

案例七:确认软件现在的版本是否修复 CVE 漏洞

具体的内容:

案例一:安装软件
1.1 安装软件

# rpm -i proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以安装 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

1.2 安装软件并显示详细信息

# rpm -ivh proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以安装 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

1.3 重复安装软件

# rpm -ivh --replacepkgs proxychains-ng-4.11-lp152.3.5.x86_64.rpm


补充:
1) 这里以安装 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例
2) 重复安装软件时,没有 –replacepkgs 参数则会安装失败

1.4 忽略依赖问题安装软件

# rpm -ivh --nodeps proxychains-ng-4.11-lp152.3.5.x86_64.rpm


补充:
1) 这里以安装 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例
2) 忽略依赖问题安装软件时,如果有依赖问题的话,没有 –nodeps 参数则会安装失败

1.5 强制安装软件 (不建议)

# rpm -ivh --force proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以安装 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

案例二:删除软件
2.1 删除软件

# rpm -e proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以删除 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

2.2 删除软件并显示详细信息

# rpm -evh proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以删除 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

案例三:升级软件
3.1 升级软件

# rpm -U proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以升级 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

3.2 升级软件并显示详细信息

# rpm -Uvh proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以升级 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

3.3 忽略依赖问题升级软件

# rpm -Uvh --nodeps proxychains-ng-4.11-lp152.3.5.x86_64.rpm


补充:
1) 这里以升级 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例
2) 忽略依赖问题升级软件时,如果有依赖问题的话,没有 –nodeps 参数则会安装失败

3.4 强制升级软件 (不建议)

# rpm -Uvh --force proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以升级 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

案例四:显示软件
4.1 显示所有已安装的软件

# rpm -qa

4.2 显示所有已安装的软件的安装时间

# rpm -qa --last

4.3 显示所有已安装的软件所属的系统版本

# rpm -qa --queryformat "%{DISTRIBUTION}\n" | sort | uniq

4.4 显示软件的文件信息

# rpm -qp log4j-1.2.17-18.el7_4.noarch

(补充:这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的信息为例)

4.5 显示软件的全部信息 (包括安装时间、大小等等)

# rpm -qi log4j-1.2.17-18.el7_4.noarch

(补充:这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的信息为例)

4.6 显示软件的所有文件
4.6.1 显示软件的所有文件

# rpm -ql log4j-1.2.17-18.el7_4.noarch

(补充:这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的信息为例)

4.6.2 显示软件的所有文件和这些文件的详细信息

# rpm -qlv log4j-1.2.17-18.el7_4.noarch


补充:
1) 这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的信息为例
2) v 参数在这里的作用类似 ls 命令中的 -l 参数

4.7 显示软件所有文件的状态
4.7.1 显示软件所有文件的状态

# rpm -qs log4j-1.2.17-18.el7_4.noarch

(补充:这里以显示 log4j-1.2.17-18.el7_4.noarch 软件所有文件的状态为例)

4.7.2 显示软件所有文件的状态和这些文件的详细信息

# rpm -qsv log4j-1.2.17-18.el7_4.noarch


补充:
1) 这里以显示 log4j-1.2.17-18.el7_4.noarch 软件所有文件的状态为例
2) v 参数在这里的作用类似 ls 命令中的 -l 参数

4.8 显示软件的配置文件
4.8.1 显示软件的配置文件

# rpm -qc log4j-1.2.17-18.el7_4.noarch

(补充:这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的信息为例)

4.8.2 显示软件的配置文件和这些文件的详细信息

# rpm -qcv log4j-1.2.17-18.el7_4.noarch


补充:
1) 这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的信息为例
2) v 参数在这里的作用类似 ls 命令中的 -l 参数

4.9 显示软件的文档文件 (man 手册、info 手册、READMEs 等等)
4.9.1 显示软件的文档文件 (man 手册、info 手册、READMEs 等等)

# rpm -qd log4j-1.2.17-18.el7_4.noarch

(补充:这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的文档为例)

4.9.2 显示软件的文档文件 (man 手册、info 手册、READMEs 等等)

# rpm -qdv log4j-1.2.17-18.el7_4.noarch


补充:
1) 这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的文档为例
2) v 参数在这里的作用类似 ls 命令中的 -l 参数

4.10 显示软件的变更历史
4.10.1 显示软件的变更历史

# rpm -q openssh-clients --changelog

(补充:这里以显示 openssh-clients 软件的变更历史为例)

4.10.2 显示软件 CVE 信息的变更历史

# rpm -q openssh-clients --changelog | grep -i cve

(补充:这里以显示 openssh-clients 软件的 CVE 信息的变更历史为例)

4.10.3 显示软件现在的版本是否修复 CVE 漏洞

# rpm -qpi --changelog redis-6.0.14-6.8.1.x86_64.rpm |grep -E '32675'
- Fix CVE-2021-32675, Denial Of Service when processing RESP request
  (CVE-2021-32675, bsc#1191303)
  * cve-2021-32675.patch

(补充:这里以确认 redis-6.0.14-6.8.1.x86_64.rpm 软件是否已修复 CVE-2021-32675 为例)

4.11 显示文件所属软件

# rpm -qf /usr/share/java/log4j.jar

(补充:这里以显示 /usr/share/java/log4j.jar 文件属于哪个软件为例)

案例五:验证软件
5.1 验证软件

# rpm -V proxychains-ng-4.11-lp152.3.5.x86_64


补充:
1) 这里以验证 proxychains-ng-4.11-lp152.3.5.x86_64 软件为例
2) 如果什么都不显示,则代表什么都没有改变
3) 如果显示 5 则代表 MD5 校验码发生改变
4) 如果显示 S 则代表文件大小发生改变
5) 如果显示 L 则代表超链接发生改变
6) 如果显示 T 则代表文件修改日期发生改变
7) 如果显示 D 则代表设备发生改变
8) 如果显示 U 则代表所属主发生改变
9) 如果显示 G 则代表所属组发生改变
10) 如果显示 M 则代表权限和文件类型发生改变

5.2 验证包含文件的软件是否正确

# rpm -Vf /etc/proxychains


补充:
1) 这里以验证 /etc/proxychains 文件为例
2) 如果什么都不显示,则代表什么都没有改变
3) 如果显示 5 则代表 MD5 校验码发生改变
4) 如果显示 S 则代表文件大小发生改变
5) 如果显示 L 则代表超链接发生改变
6) 如果显示 T 则代表文件修改日期发生改变
7) 如果显示 D 则代表设备发生改变
8) 如果显示 U 则代表所属主发生改变
9) 如果显示 G 则代表所属组发生改变
10) 如果显示 M 则代表权限和文件类型发生改变

5.3 验证所有已经安装的软件

# rpm -Va


补充:
1) 如果什么都不显示,则代表什么都没有改变
2) 如果显示 5 则代表 MD5 校验码发生改变
3) 如果显示 S 则代表文件大小发生改变
4) 如果显示 L 则代表超链接发生改变
5) 如果显示 T 则代表文件修改日期发生改变
6) 如果显示 D 则代表设备发生改变
7) 如果显示 U 则代表所属主发生改变
8) 如果显示 G 则代表所属组发生改变
9) 如果显示 M 则代表权限和文件类型发生改变

5.4 通过 RPM 文件验证软件

# rpm -Vp proxychains-ng-4.11-lp152.3.5.x86_64.rpm


补充:
1) 这里以使用 proxychains-ng-4.11-lp152.3.5.x86_64.rpm RPM 文件进行验证为例
2) 如果什么都不显示,则代表什么都没有改变
3) 如果显示 5 则代表 MD5 校验码发生改变
4) 如果显示 S 则代表文件大小发生改变
5) 如果显示 L 则代表超链接发生改变
6) 如果显示 T 则代表文件修改日期发生改变
7) 如果显示 D 则代表设备发生改变
8) 如果显示 U 则代表所属主发生改变
9) 如果显示 G 则代表所属组发生改变
10) 如果显示 M 则代表权限和文件类型发生改变

案例六:测试软件
6.1 测试安装软件

# rpm -ivh --test proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以测试安装 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

6.2 测试删除软件

# rpm -e --test proxychains-ng-4.11-lp152.3.5.x86_64


补充:
1) 这里以测试删除 proxychains-ng-4.11-lp152.3.5.x86_64 软件为例
2) 这里会显示 proxychains-ng-4.11-lp152.3.5.x86_64 软件被哪些软件依赖

[命令] Linux 命令 xargs (替代参数)

内容目录:

内容一:理解 xargs 的作用
1.1 Linux 命令可接收的内容
1.2 Linux 命令对可接收内容的态度
1.3 xargs 的作用
1.4 理解 xargs 作用的案例
1.4.1 准备一个用于测试的文件
1.4.2 测试没有 xargs 命令的情况

内容二:xargs 的使用案例
2.1 案例一:xargs 对参数进行分行
2.2 案例二:xargs 指定分割参数的分割符
2.3 案例三:xargs 不输出参数,而是将参数传输给后面的命令,并让此命令使用此参数执行
2.4 案例四:xargs 只输出前几个参数

具体的内容:

内容一:理解 xargs 的作用
1.1 Linux 命令可接收的内容

1) 第一种内容是输入
2) 第二中内容是参数

1.2 Linux 命令对可接收内容的态度

1) 有些命令既可以接收输入也可以接受参数
2) 有些命令只能接收输入
3) 有些命令只能接收参数

1.3 xargs 的作用

当管道符号 “|” 将前一个命令的输出结果转换为下一个命令的输入时,再将此输入转换为参数

1.4 理解 xargs 作用的案例
1.4.1 准备一个用于测试的文件

# echo "This is a test file" > test.txt

1.4.2 测试没有 xargs 命令的情况

# echo test.txt | cat
test.txt

(补充:此时 test.txt 对于 cat 而言是输入)

1.4.3 测试有 xargs 命令的情况

# echo test.txt | xargs cat
This is a test file

(补充:此时 test.txt 对于 cat 而言是参数)

内容二:xargs 的使用案例
2.1 案例一:xargs 对参数进行分行

# echo aa bb cc dd ee | xargs -n 2
aa bb
cc dd
ee

(补充:这里是设置每 2 个参数为一行)

2.2 案例二:xargs 指定分割参数的分割符

# echo aa@bb@cc@dd@ee | xargs -d @
aa bb cc dd ee

(补充:这里是将 @ 设置为分割符)

2.3 案例三:xargs 不输出参数,而是将参数传输给后面的命令,并让此命令使用此参数执行

# echo aa@bb@cc@dd@ee | xargs -d @ -p echo
echo aa bb cc dd ee
 ?...y
aa bb cc dd ee

(补充:这里需要在提示是否执行 echo aa bb cc dd ee 时输入 y 以确认)

2.4 案例四:xargs 只输出前几个参数

# echo aa bb cc dd ee | xargs -E cc echo
aa bb

(补充:这里只输出在 cc 之前的参数)

(注意:当使用了 -d 参数后,-E 参数会实效)

[命令] Linux 命令 vim (文件编辑)

内容目录:

内容一:vim 简介
1.1 vim 模式
1.2 使用 vim
1.2.1 通过 vim 打开某 1 个文件
1.2.2 通过 vim 打开某 1 个文件,并自动进入到某 1 行

内容二:vim 在命令模式下的操作
2.1 在命令模式下让光标移动
2.1.1 在命令模式下让光标网上移动
2.1.2 在命令模式下让光标网下移动
2.1.3 在命令模式下让光标网左移动
2.1.4 在命令模式下让光标网右移动
2.1.5 在命令模式下让光标移动到文件的指定行数
2.1.6 在命令模式下让光标移动到文件首尾
2.1.6.1 在命令模式下让光标移动到文件首部
2.1.6.2 在命令模式下让光标移动到文件尾部
2.2 在命令模式下删除数据
2.2.1 在某 1 行的范围内删除数据
2.2.1.1 在某 1 行的范围内删除 1 个字符
2.2.1.1.1 在光标所在行的范围内删除光标之后的 1 个字符
2.2.1.1.2 在光标所在行的范围内删除光标之前的 1 个字符
2.2.1.2 在某 1 行的范围内删除多个字符
2.2.1.2.1 在光标所在行的范围内删除光标之后的多个字符
2.2.1.2.2 在光标所在行的范围内删除光标之前的多个字符
2.2.1.2.3 在光标所在行的范围内删除光标之前的所有字符
2.2.1.2.4 在光标所在行的范围内删除光标之后的所有字符
2.2.2 进行整行的删除
2.2.2.1 删除光标所在行
2.2.2.2 从光标所在行开始删除多行
2.2.2.3 从光标所在行开始删除此行和后面的所有行
2.2.2.4 从光标所在行开始删除此行和前面的所有行
2.2.3 重复相同的删除操作
2.3 在命令模式下复制数据
2.3.1 在某 1 行的范围内复制数据
2.3.1.3 在光标所在行的范围内复制光标之前的所有字符
2.3.1.4 在光标所在行的范围内复制光标之后的所有字符
2.3.2 进行整行的复制
2.3.2.1 复制光标所在行
2.3.2.2 从光标所在行开始复制多行
2.3.2.3 从光标所在行开始复制此行和后面的所有行
2.3.2.4 从光标所在行开始复制此行和前面的所有行
2.4 在命令模式下复制数据
2.4.1 从光标所在行开始向上复制
2.4.2 从光标所在行开始向上复制
2.5 在命令模式下进入其他模式
2.5.1 在命令模式下进入输入模式
2.5.2 在命令模式下进入末行模式
2.5.3 在命令模式下进入视图模式
2.5.3.1 以行的方式进入视图模式
2.5.3.2 以字符的方式进入视图模式
2.5.3.3 vim 字符模式的使用案例
2.5.4 在命令模式下进入替换模式
2.6 在命令模式下的其他操作
2.6.1 将光标所在行与下面的行合并
2.6.2 重复上 1 动作
2.6.3 撤销上 1 个动作
2.6.4 保存此文当并退出 vim 模式

内容三:vim 在末行模式下的操作
3.1 在末行模式下对当前内容进行保存并退出 vim 模式
3.2 在末行模式下的行号设置
3.2.1 设置行号
3.2.2 取消行号
3.3 在末行模式下搜索
3.3.1 在末行模式下搜索关键字
3.3.1.1 向下查找匹配的关键字
3.3.1.2 向上查找匹配的关键字
3.3.2 在末行模式下搜索行号
3.4 在末行模式下替换关键字的案例
3.5 在末行模式进入命令模式
3.6 在末行模式下的其他设置

内容四:vim 在输入模式下的操作
4.1 在输入模式下输入内容
4.2 在输入模式下进入命令模式

具体的内容:

内容一:vim 简介
1.1 vim 模式简介

1) 命令模式:主要用于对文件进行批量编辑
2) 末行模式:主要用于保存退出文件
3) 输入模式:主要用于编辑文件

1.2 使用 vim
1.2.1 通过 vim 打开某 1 个文件

# vim <file>

(补充:此时将自动进入命令模式)

1.2.2 通过 vim 打开某 1 个文件,并自动进入到某 1 行

# vim +<line number> <file>

(补充:此时将自动进入命令模式)

内容二:vim 在命令模式下的操作
2.1 在命令模式下让光标移动
2.1.1 在命令模式下让光标网上移动

按下 “上方向” 键

或者:

按下 “k” 键

或者:

按下 “<任意数字>” 键再按下 “上方向” 键

(注意:此方法会向上方移动对应数字个光标位)

2.1.2 在命令模式下让光标网下移动

按下 “下方向” 键

或者:

按下 “j” 键

或者:

按下 “<任意数字>” 键再按下 “下方向” 键

(注意:此方法会向下方移动对应数字个光标位)

2.1.3 在命令模式下让光标网左移动

按下 “左方向” 键

或者:

按下 “h” 键

或者:

按下 “任意数字” 键之后再按下 “左方向” 键

(注意:此方法会向左方移动对应数字个光标位)

2.1.4 在命令模式下让光标网右移动

按下 “右方向” 键

或者:

按下 “l” 键

或者:

按下 “<任意数字>” 之后再按下 “右方向” 键

(注意:此方法会向右方移动对应数字个光标位)

2.1.5 在命令模式下让光标移动到文件的指定行数

按下 “<任意数字>” 键之后再按下 “G” 键

(注意:此方法会让光标移动到对应数字的行)

2.1.6 在命令模式下让光标移动到文件首尾
2.1.6.1 在命令模式下让光标移动到文件首部

按下 “g” 键再按下 “g” 键

2.1.6.2 在命令模式下让光标移动到文件尾部

按下 “G” 键

2.2 在命令模式下删除数据
2.2.1 在某 1 行的范围内删除数据
2.2.1.1 在某 1 行的范围内删除一个字符
2.2.1.1.1 在光标所在行的范围内删除光标之后的 1 个字符

按下 “x” 键

2.2.1.1.2 在光标所在行的范围内删除光标之前的 1 个字符

按下 “X” 键

2.2.1.2 在某 1 行的范围内删除多个字符
2.2.1.2.1 在光标所在行的范围内删除光标之后的多个字符

按下 “<任意数字>” 键之后再按下 “x” 键

(注意:此方法会在光标所在行的范围内从光标所在位置开始向后删除对应数字个字符)

2.2.1.2.2 在光标所在行的范围内删除光标之前的多个字符

按下 “<任意数字>” 键之后再按下 “X” 键

(注意:此方法会在光标所在行的范围内从光标所在位置开始向前删除对应数字个字符)

2.2.1.2.3 在光标所在行的范围内删除光标之前的所有字符

同时按下 “d” 键和 “0” 键

2.2.1.2.4 在光标所在行的范围内删除光标之后的所有字符

同时按下 “d” 键和 “$” 键

2.2.2 进行整行的删除
2.2.2.1 删除光标所在行

按下 “d” 键之后再按 “d” 键

2.2.2.2 从光标所在行开始删除多行

按下 “<任意数字>” 键之后再按 “d” 键之后再按下 “d” 键

(注意:此方法会从光标所在行开始向后删除到对应数字个行)

2.2.2.3 从光标所在行开始删除此行和后面的所有行

按下 “d” 键之后再按下 “G” 键

2.2.2.4 从光标所在行开始删除此行和前面的所有行

按下 “d” 键之后再按下 “1” 键之后再按下 “G” 键

或者:

按下 “d” 键之后再按下 “g” 键之后再按下 “g” 键

2.2.3 重复相同的删除操作

按下 “c” 键

2.3 在命令模式下复制数据
2.3.1 在某 1 行的范围内复制数据
2.3.1.3 在光标所在行的范围内复制光标之前的所有字符

同时按下 “y” 键和 “0” 键

2.3.1.4 在光标所在行的范围内复制光标之后的所有字符

同时按下 “y” 键和 “$” 键

2.3.2 进行整行的复制
2.3.2.1 复制光标所在行

按下 “y” 键之后再按下 “y” 键

2.3.2.2 从光标所在行开始复制多行

按下 “<任意数字>” 键之后再按下 “y” 键之后再按下 “y” 键

(注意:此方法会从光标所在行开始向后复制对应数字个行)

2.3.2.3 从光标所在行开始复制此行和后面的所有行

按下 “y” 键之后再按下 “G” 键

2.3.2.4 从光标所在行开始复制此行和前面的所有行

按下 “y” 键之后再按下 “1” 键之后再按下 “G” 键

或者:

按下 “y” 键之后再按下 “g” 键之后再按下 “g” 键

2.4 在命令模式下复制数据
2.4.1 从光标所在行开始向上复制

按下 “p” 键

2.4.2 从光标所在行开始向上复制

按下 “P” 键

2.5 在命令模式下进入其他模式
2.5.1 在命令模式下进入输入模式

1) 按下 “i” 键,在光标所在位置进入输入模式
2) 按下 “a” 键,在光标所在位置的后 1 个字符进入输入模式
3) 按下 “A” 键,在光标所在行的行尾进入插入模式
4) 按下 “I” 键,在光标所在行的行首进入插入模式
5) 按下 “o” 键,在光标所在行的下 1 行行首进入输入模式

2.5.2 在命令模式下进入末行模式

按下 “:” 键

2.5.3 在命令模式下进入视图模式
2.5.3.1 以行的方式进入视图模式

按下 “v” 键

或者:

按下 “V” 键

2.5.3.2 以字符的方式进入视图模式

同时按下 “ctrl” 键和 “v” 键

2.5.3.3 vim 字符模式的使用案例

1) 在光标所在行行首,同时按下 “ctrl” 键和 “v” 键再选择对应的行首再按下 “d” 键或者 “x”键,删除在这些行行首的字符
2) 在光标所在行行首,同时按下 “ctrl” 键和 “v” 键再选择对应的行首再按下 “I” 键再输入 <content> 再按 “esc” 键,在这些行行首插入这些内容
3) 在光标所在行行首,同时按下 “ctrl” 键和 “v” 键再按下再按 “I” 键再按下 “g” 键再按 “g” 键再输入 <content> 再按 “esc” 键,在光标所在行以及前面的所有行的行首插入这些内容
4) 在光标所在行行首,同时按下 “ctrl” 键和 “v” 键再按下再按 “I” 键再按下 “G” 键再输入 <content> 再按 “esc” 键,在这光标所在行以及后面的所有行的行首插入这些内容

2.5.4 在命令模式下进入替换模式

按下 “R” 键

2.6 在命令模式下的其他操作
2.6.1 将光标所在行与下面的行合并

按下 “J” 键

2.6.2 重复上一动作

按下 “ctrl” 键和 “r” 键

或者:

按下 “.“ 键

2.6.3 撤销上 1 个动作

按下 “u” 键

2.6.4 保存此文当并退出 vim 模式

按下 “Z” 键之后再按下 “Z” 键

内容三:vim 在末行模式下的操作
3.1 在末行模式下对当前内容进行保存并退出 vim 模式

1) :w 保存当前内容
2) :w! 强制保存当前内容
3) :w <file> 保存当前内容到另 1 个名为 <file> 文件
4) :w! <file> 强制保存当前内容到另 1 个名为 <file> 文件
5) :q 退出 vim
6) :q! 强制推出 vim
7) :wq 保存当前内容并退出
8) :wq! 强制保存当前内容并退出
9) :wq <file> 保存当前内容到另 1 个名为 <file> 文件并退出
10) :wq! <file> 强制保存当前内容到另 1 个名为 <file> 文件并退出
11) :e! 放弃当前所有修改,将内容恢复到上次保存时

3.2 在末行模式下的行号设置
3.2.1 设置行号

:set nu

或者:

:set number

3.2.2 取消行号

:set nonu

或者:

:set nonumber

3.3 在末行模式下搜索
3.3.1 在末行模式下搜索关键字
3.3.1.1 向下查找匹配的关键字

:/<关键字> 之后按 “n” 键或者 “N” 键显示下 1 个匹配的关键字

3.3.1.2 向上查找匹配的关键字

:?<关键字> 之后按 “n” 键或者 “N” 键显示下 1 个匹配的关键字

3.3.2 在末行模式下搜索行号

:<行号> 之后按 “回车” 键

3.4 在末行模式下替换关键字的案例

1) :s /<old keyword>/<new keyword> #以 <new keyword> 替换光标所在行的第 1 个 <old keyword>
2) :s /<old keyword>/<new keyword>/g #以 <new keyword> 替换光标所在行的所有 <old keyword>
3) :1,5 s/<old keyword>/<new keyword>/g #以 <new keyword> 替换从 1 到 5 行的所有 <old keyword>
4) :,+5 s/<old keyword>/<new keyword>/g #以 <new keyword> 替换从光标所在行开始 5 行的所有 <old keyword>
5) :7,%s/<old keyword>/<new keyword>/g #以 <new keyword> 替换倒数第 7 行到最后 1 行的所有 <old keyword>
6) :%s/<old keyword>/<new keyword>/g #以 <new keyword> 替换全文的所有 <old keyword>

3.5 在末行模式进入命令模式

:按下 “esc” 键

3.6 在末行模式下的其他设置

1) :w /<file>,将当前内容另存为另 1 个名为 <file> 文件
2) :r /<file>,读取 <file> 文件里的内容到文本并直接插入到光标所在位置
3) :! <command>,在 vim 的命末行模式时使用 Linux 命令 <command>

内容四:vim 在输入模式下的操作
4.1 在输入模式下输入内容

正常键入内容即可

4.2 在输入模式下进入命令模式

按下 “esc” 键