Skip to content

vi 编辑器

Vi 是 Linux 系统中最经典的终端文本编辑器,Vim(Vi Improved)是其增强版。掌握 Vi/Vim 是 Linux 系统管理的必备技能。

Vi/Vim 的三种模式

模式功能如何进入
命令模式(Normal)执行复制、删除、搜索等操作启动时默认进入,或按 ESC
插入模式(Insert)输入/编辑文本iao 等进入
末行模式(Command-line)保存、退出、查找替换等在命令模式下按 :

命令模式

按键功能
h j k l左、下、上、右
w移动到下一个单词开头
b移动到上一个单词开头
e移动到当前单词末尾
^移动到行首第一个非空白字符
$跳到行尾
0跳到行首
gg跳到文件开头
ngg跳到第n行
G转到文件最后一行开头
:n跳到第 n 行(如 :10 跳第 10 行)
shirft + 9跳转到文件开头
shirft + 0跳转到文件末尾
Ctrl + f / Ctrl + b向下/上翻页

插入模式

进入插入模式

按键功能
i在光标前插入
a在光标后插入
I在当前行首插入
A在当前行尾插入
o在当前行下一行插入新行
O在当前行上一行插入新行
s删除当前字符并插入
S删除当前行并插入

复制/粘贴

按键功能
yy复制当前行
nyy从第n行开始复制n行
yw复制一个单词
p粘贴到光标后
P粘贴到光标前

删除/剪切

按键功能
x删除当前字符
dd删除当前行
ndd当前行向下删除n行
dw删除一个单词
d^删除光标到行首字符
D删除光标到行尾字符
d$删除光标到行尾字符
dG删除到文件末尾字符
u撤销
Ctrl + r重做
r字符替换
R进入替换模式,可以替换多个字符,按ESC退出模式

末行模式

命令说明
shirft + :进入末行模式
:set nu显示行号
:set nonu关闭行号
:q退出(未修改时)
:q!强制退出,不保存
:w保存
w 新文件名保存到新文件里
:wq:x保存并退出
ZZ(大写)保存并退出(命令模式)

查找与替换

命令功能
/关键词向下搜索(按 n 下一个,N 上一个)
?关键词向上搜索(按 n 上一个,N 下一个)
:%s/旧/新/g全局替换(默认替换首行的第一个,加g是所有。%代表全局)
:%s/旧/新/gc替换时逐个确认
:set ff=unix将Windows下的符号改成Linux下的符号

经典案例

bash
:n s/旧/新/g			# 指定行替换
:n,m s/旧/新/g		# 从n行到m行进行替换

进阶技巧

1. 多文件编辑

命令功能
:e 文件名打开另一个文件
:bn / :bp切换到下一个/上一个文件
:ls查看已打开的文件列表

2. 分屏操作

命令功能
:sp水平分屏
:vsp垂直分屏
Ctrl + w + h/j/k/l切换分屏
Ctrl + w + q关闭当前分屏

3. 宏录制

命令功能
q + 字母开始录制宏(如 qa
q停止录制
@ + 字母执行宏(如 @a

常用配置(~/.vimrc

bash
set number        " 显示行号
set tabstop=4     " Tab 缩进 4 空格
set expandtab     " Tab 转空格
set hlsearch      " 高亮搜索
syntax on         " 语法高亮

总结

  • i 进入编辑,ESC 返回命令模式
  • :wq 保存退出,:q! 强制退出
  • dd 删行,yy 复制,p 粘贴
  • /关键词 搜索,:%s/旧/新/g 替换

Linux 防火墙

RHEL

bash
# 关闭防火墙
systemctl stop firewalld
# 永久关闭
systemctl disable firewalld

Ubuntu

bash
# 查看
sudo ufw status
# 停止 ufw 服务:
sudo systemctl stop ufw

# 禁用 ufw 服务的自动启动:
sudo systemctl disable ufw