vi/vim 的使用及 CentOS 静态网络配置并链接 Xshell
vi/vim 基础
vi 与 vim 的区别
vi 是 Linux 系统原生的文本编辑工具,可以简单理解为 vim 是 vi 的升级版,两者核心功能一致,主要差异如下:
对比维度 | vi | vim |
---|---|---|
颜色显示 | 无颜色高亮 | 支持语法颜色高亮,便于区分代码、关键字等 |
功能扩展 | 基础编辑功能 | 新增代码补全、搜索高亮、多级撤销等增强功能 |
使用场景 | 适用于简单文本编辑 | 更适合代码编写、复杂文档编辑 |
vim 安装(若系统未预装)
若输入 vim
提示“命令未找到”,需通过 yum
安装,命令如下:
yum install -y vim-enhanced
- 若安装失败,需先配置国内 yum 源。
设置 yum 源(以阿里源为例)
国内 yum 源(如阿里源)可大幅提升软件下载速度,推荐两种配置方式:
方式一:官网手动配置
- 访问阿里源官方指南:https://help.aliyun.com/zh/ecs/user-guide/manage-and-use-linux-software-repositories
- 按照指南步骤,针对 CentOS 7 系统执行对应配置命令。
方式二:命令行快速配置
依次执行以下命令,覆盖默认 yum 源为阿里源:
- 备份原 yum 源配置文件:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
- 下载阿里源的 CentOS 7 配置文件:
curl -sSO https://mirrors.aliyun.com/repo/Centos-7.repo
- 将下载的配置文件移动到 yum 源目录:
mv Centos-7.repo /etc/yum.repos.d/CentOS-Base.repo
- 清理缓存并生成新缓存:
yum clean all && yum makecache
若上述命令显示无操作权限,每条命令前面加上 sudo,第四条的 && 后面也需要加上 sudo。
vi/vim 的三种模式及操作
vi/vim 核心分为 一般模式、编辑模式、命令模式,三种模式需通过特定按键切换,具体功能如下:
模式介绍与切换
模式名称 | 进入方式 | 核心功能 | 退出/切换方式 |
---|---|---|---|
一般模式 | 输入 vim 文件名 (如 vim test.txt )直接进入 |
光标移动、复制、粘贴、删除等基础操作(不可直接编辑文本) | 按 i/I/a/A/o/O/r/R 进入编辑模式;输入 : 或 / 进入命令模式 |
编辑模式 | 一般模式下按 i/I/a/A/o/O/r/R |
直接修改文本内容 | 按 ESC 键返回一般模式 |
命令模式 | 一般模式下输入 : 或 / |
保存文件、退出编辑器、搜索替换、显示行号等 | 执行命令后自动返回一般模式(如 :w 保存后);按 ESC 可取消命令输入 |
基础操作演示:创建并编辑文件
以创建 test.txt
并写入内容为例,步骤如下:
-
新建并打开文件:
vim test.txt
若文件不存在,vim 会自动创建
此时进入 一般模式。 -
进入编辑模式:按
i
键(左下角会显示-- INSERT --
或--插入--
,表示可编辑)。 -
写入内容:
This is a test file. And this is the first time to using "vim". It's easy to use "vim". I like to using it, do you like it?
-
保存并退出:
- 按
ESC
返回一般模式(左下角-- INSERT --
或--插入--
消失)。 - 输入
:wq
并回车(w
表示保存,q
表示退出)。
- 按
-
验证文件内容:
cat test.txt
查看文件内容,输出结果如下:
[root@localhost local]# cat test.txt This is a test file. And this is the first time to using "vim". It's easy to use "vim". I like to using it, do you like it?
详细按键说明
一般模式:光标移动、搜索替换、删除复制
功能分类 | 按键 | 操作说明 |
---|---|---|
光标移动 | h 或 ← |
光标向左移动 1 字符 |
j 或 ↓ |
光标向下移动 1 字符 | |
k 或 ↑ |
光标向上移动 1 字符 | |
l 或 → |
光标向右移动 1 字符 | |
Ctrl + f |
屏幕向下滚动 1 页(等同于 Page Down) | |
Ctrl + b |
屏幕向上滚动 1 页(等同于 Page Up) | |
Ctrl + d |
屏幕向下滚动半页 | |
Ctrl + u |
屏幕向上滚动半页 | |
+ |
光标移动到下一行非空格符开头处 | |
- |
光标移动到上一行非空格符开头处 | |
n<space> |
n 为数字,光标向右移动 n 字符(如 20<space> 向右移 20 字符) |
|
0 或 Home |
光标移动到当前行开头 | |
$ 或 End |
光标移动到当前行结尾 | |
H |
光标移动到屏幕最上方一行开头 | |
M |
光标移动到屏幕中间一行开头 | |
L |
光标移动到屏幕最下方一行开头 | |
G |
光标移动到文件最后一行 | |
nG |
n 为数字,光标移动到文件第 n 行(如 20G 到第 20 行) |
|
gg |
光标移动到文件第一行(等同于 1G ) |
|
n<Enter> |
n 为数字,光标向下移动 n 行 |
|
搜索替换 | /word |
从光标处向下搜索字符串 word (如 /vim 搜索 “vim”) |
?word |
从光标处向上搜索字符串 word |
|
n |
重复上一次搜索动作(向下继续搜索) | |
N |
反向重复上一次搜索动作(向上继续搜索) | |
:n1,n2s/word1/word2/g |
在第 n1 到 n2 行中,将 word1 替换为 word2 (如 :10,20s/vim/VIM/g 替换 10-20 行的 “vim” 为 “VIM”) |
|
:1,$s/word1/word2/g 或 :%s/word1/word2/g |
全文件将 word1 替换为 word2 |
|
:1,$s/word1/word2/gc 或 :%s/word1/word2/gc |
全文件替换,替换前提示确认(c 表示 confirm) |
|
删除复制 | x |
向后删除 1 字符(等同于 Del 键) |
X |
向前删除 1 字符(等同于 Backspace 键) | |
nx |
n 为数字,向后删除 n 字符(如 10x 删除 10 字符) |
|
dd |
删除光标所在行 | |
ndd |
n 为数字,删除光标所在行及向下共 n 行(如 5dd 删除 5 行) |
|
d1G |
删除光标所在行到文件第一行的所有内容 | |
dG |
删除光标所在行到文件最后一行的所有内容 | |
d$ |
删除光标处到当前行结尾的内容 | |
d0 |
删除光标处到当前行开头的内容 | |
yy |
复制光标所在行 | |
nyy |
n 为数字,复制光标所在行及向下共 n 行(如 3yy 复制 3 行) |
|
y1G |
复制光标所在行到文件第一行的所有内容 | |
yG |
复制光标所在行到文件最后一行的所有内容 | |
y0 |
复制光标处到当前行开头的内容 | |
y$ |
复制光标处到当前行结尾的内容 | |
p |
将复制的内容粘贴到光标下一行 | |
P |
将复制的内容粘贴到光标上一行 | |
J |
将光标所在行与下一行合并为一行 | |
u |
撤销上一次操作(常用) | |
Ctrl + r |
重做上一次操作(常用) | |
. |
重复上一次操作(如删除后按 . 可再次删除,常用) |
一般模式 → 编辑模式:进入编辑的按键
按键 | 进入方式说明 |
---|---|
i |
从光标当前位置开始输入文本 |
I |
从光标所在行的第一个非空格符位置开始输入 |
a |
从光标下一个字符位置开始输入 |
A |
从光标所在行的最后一个字符位置开始输入 |
o |
在光标所在行的下方新建一行,从该行开始输入 |
O |
在光标所在行的上方新建一行,从该行开始输入 |
r |
仅替换光标所在的 1 个字符(替换后自动返回一般模式) |
R |
持续替换光标所在字符,直到按 ESC 返回一般模式(替换模式) |
ESC |
退出编辑模式,返回一般模式(所有编辑模式通用) |
一般模式 → 命令模式:常用命令
命令 | 功能说明 |
---|---|
:w |
保存当前编辑的内容到硬盘(常用) |
:w! |
强制保存(当文件为只读时,若有文件权限则可强制保存) |
:q |
退出 vi/vim(未修改文件时可用,常用) |
:q! |
强制退出,不保存修改的内容(常用) |
:wq |
保存内容并退出(常用) |
:wq! |
强制保存并退出 |
ZZ |
大写 Z,若文件已修改则保存并退出(等同于 :wq ) |
ZQ |
大写 Z+Q,不保存并强制退出(等同于 :q! ) |
:w [filename] |
将当前内容另存为 filename (如 :w test_backup.txt 另存为备份文件) |
:r [filename] |
将 filename 文件的内容读取到光标所在行的下方 |
:n1,n2 w [filename] |
将第 n1 到 n2 行的内容保存为 filename (如 :5,10 w part.txt 保存 5-10 行为 part.txt) |
:! command |
暂时退出 vi/vim,执行 Linux 命令并查看结果(如 :! ls /home 查看 /home 目录下的文件) |
:set nu |
显示行号(常用) |
:set nonu |
取消行号显示 |
CentOS 静态网络配置
静态网络配置可让 CentOS 虚拟机拥有固定 IP,便于远程连接,步骤如下:
查看 VMware 虚拟网络信息
- 打开 VMware Workstation,点击顶部菜单栏「编辑」→「虚拟网络编辑器」。
- 选择「VMnet8(NAT 模式)」,记录以下 3 个关键信息(后续配置需用到):
- 子网 IP:如
192.168.10.0
- 子网掩码:如
255.255.255.0
- 网关 IP:点击「NAT 设置」查看,如
192.168.10.2
- 子网 IP:如
修改 CentOS 网络配置文件
-
进入网络配置文件目录:
cd /etc/sysconfig/network-scripts
-
编辑网卡配置文件(文件名通常为
ifcfg-ens33
,若不同可通过ls
查看以ifcfg-
开头的文件):vim ifcfg-ens33
-
按
i
进入编辑模式,修改或添加以下配置(根据上面步骤记录的信息调整):TYPE=Ethernet BOOTPROTO=static # 设为静态 IP(默认 dhcp 为动态) DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=ens33 UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx # 保留原 UUID,无需修改 DEVICE=ens33 ONBOOT=yes # 开机自动启用网卡 IPADDR=192.168.10.158 # 自定义固定 IP(需在子网段内,如 192.168.10.xxx,xxx 范围 3-254) NETMASK=255.255.255.0 # 子网掩码(上面步骤记录的值) GATEWAY=192.168.10.2 # 网关 IP(上面步骤记录的值) DNS1=114.114.114.114 # 国内 DNS 服务器(可选,也可填 8.8.8.8) DNS2=8.8.8.8 # 备用 DNS 服务器
-
按
ESC
返回一般模式,输入:wq
保存并退出。
配置 DNS(可选,若上面步骤已添加 DNS 则可跳过)
-
编辑 DNS 配置文件:
vim /etc/resolv.conf
-
添加 DNS 服务器地址:
nameserver 114.114.114.114 nameserver 8.8.8.8
-
按
ESC
,输入:wq
保存退出。
重启网络并验证
- 重启网络服务(CentOS 7 命令):
systemctl restart network
- 验证网络连通性:
- ping 外网(如百度):
若出现类似以下输出,说明网络正常(按ping www.baidu.com
Ctrl + C
终止 ping):[root@localhost ~]# ping www.baidu.com PING www.a.shifen.com (110.242.70.57) 56(84) bytes of data. 64 bytes from 110.242.70.57 (110.242.70.57): icmp_seq=1 ttl=128 time=45.1 ms 64 bytes from 110.242.70.57 (110.242.70.57): icmp_seq=2 ttl=128 time=43.2 ms
- 本地 Windows ping 虚拟机(验证局域网连通):
- 按
Win + R
,输入cmd
打开命令提示符。 - 输入
ping 192.168.10.158
(虚拟机的固定 IP),若出现以下输出,说明本地与虚拟机连通:C:\Users\Lenovo>ping 192.168.10.158 正在 Ping 192.168.10.158 具有 32 字节的数据: 来自 192.168.10.158 的回复: 字节=32 时间<1ms TTL=64 来自 192.168.10.158 的回复: 字节=32 时间<1ms TTL=64
- 按
- ping 外网(如百度):
Xshell 下载与连接虚拟机
Xshell 下载(免费版)
- 访问 Xshell 免费下载页:https://www.xshell.com/zh/free-for-home-school/
- 安装 Xshell:双击安装包,默认“下一步”即可(可自定义安装目录)。
Xshell 连接 CentOS 虚拟机
-
启动 Xshell,点击顶部菜单栏「文件」→「新建」(或按
Alt + N
),打开“新建会话属性”窗口。
-
配置连接信息:
- 「名称」:自定义(如“CentOS”)
- 「协议」:选择“SSH”
- 「主机」:输入虚拟机的固定 IP(如
192.168.10.158
) - 「端口号」:默认 22(SSH 协议默认端口)
- 点击「确定」保存会话。
-
连接会话:
- 在 Xshell 会话列表中,双击新建的会话(如“CentOS”)。
- 首次连接会弹出“主机密钥确认”对话框,点击「接受并保持」。
- 输入用户名(如
root
,CentOS 超级用户),点击「确定」。 - 输入 root 密码(虚拟机安装时设置的密码),点击「确定」。
-
验证连接:若出现类似以下命令行提示符,说明连接成功:
[root@localhost ~]#
-
(可选)查看 DNS 配置:输入
cat /etc/resolv.conf
:[root@localhost ~]# cat /etc/resolv.conf nameserver 114.114.114.114 nameserver 8.8.8.8