☰
在 School of SRE 中掌握 Vim:SRE 在服务器上编辑配置与脚本的必备编辑器技能
2026/9/27 21:08:22 网站建设 项目流程
  • 教程

【免费下载链接】school-of-sre

At LinkedIn, we are using this curriculum for onboarding our entry-level talents into the SRE role.

项目地址:https://gitcode.com/gh_mirrors/sc/school-of-sre
点击查看免费下载

Vim 是几乎所有 Linux 发行版中都预装的开源命令行文本编辑器,也是 SRE 登录服务器后修改配置、编辑脚本时最顺手可用的工具之一。本文是 School of SRE 课程 Linux-Intermediate 阶段《Introduction to Vim》的完整指南,围绕「打开文件、进入插入模式、保存文件、退出编辑器」这一条最核心的操作主线展开,并结合后续 Bash 脚本编写 的实战需求,帮助读者在学完本节后能立刻在真实服务器上创建和编辑文件,为下一节的脚本编写打下基础。

为什么 SRE 必须先掌握 Vim

作为 SRE,日常工作中经常需要登录到服务器上:

  • 修改应用或系统的配置文件;
  • 编辑、排错和修改运维脚本;
  • 在无法使用图形界面(无 GUI 的服务器、容器、跳板机环境)的情况下完成文件操作。

在这些场景里,Vim 是「开箱即用」的选择:它开源、免费、几乎存在于所有 Linux 发行版中,且不依赖图形界面。本课程 Linux-Intermediate 课程入口 明确指出课程环境基于 RedHat Enterprise Linux(RHEL)8 的 Docker 容器,并以前置课程 Linux 基础 为背景——在这样的纯命令行环境里,Vim 就是最主要的文本编辑手段。

更重要的是,Vim 是本节与下一节之间的关键衔接:在 Bash 脚本编写 中,作者明确表示整个脚本编写过程都将使用 Vim 作为编辑器。也就是说,本节的i、ESC、:w、:q等操作,会直接用于后续编写firstscript.sh、backup.sh等真实脚本。掌握本节内容,是进入脚本编写的前置条件。

Vim 的模式模型:先理解「为什么输入不了文字」

Vim 与普通编辑器最大的不同在于它是一个模式化编辑器(modal editor)。绝大多数新手第一次打开 Vim 后立刻输入文字却发现没有任何反应,原因就在于 Vim 启动后默认处于普通模式(Normal mode),此时键盘按键被解释为编辑命令(如移动光标、删除字符),而不是向文件输入文本。

与本文直接相关的三种模式如下:

模式进入方式作用
普通模式(Normal mode)Vim 启动后的默认模式;在插入模式中按ESC返回执行移动、删除、复制、粘贴等编辑命令
插入模式(Insert mode)普通模式下按i直接向文件输入文字
命令行模式(Command-line mode)普通模式下按:(冒号,Shift+;)输入w、q、wq等 Ex 命令并回车执行

理解了「普通模式负责命令、插入模式负责输入」这一核心心智模型,剩下的就是记住几个最简单的切换键。

打开文件并进入插入模式

1. 用vim filename打开文件

在终端执行:

vim filename

filename可以是已存在的文件,也可以是不存在的新文件名。若文件已存在,Vim 会将其内容读入缓冲区并显示;若文件不存在,Vim 会打开一个空缓冲区,保存时才会真正创建文件。

打开后你会发现:直接敲键盘写文字是不生效的——因为此时仍处于普通模式(界面底部左侧没有任何模式指示)。这正是无数新手「卡住」的第一道门槛。

2. 按i进入插入模式

在普通模式下按字母i(insert 的缩写),Vim 会切换进入插入模式。此时屏幕左下角会出现-- INSERT --的提示(见上文第一张截图),表示你现在可以正常向文件输入内容了。

3. 按ESC返回普通模式

输入完成后,按键盘左上角的ESC键退出插入模式,回到普通模式,左下角的-- INSERT --提示随之消失。

除了i,Vim 还提供了多个进入插入模式的变体,在编辑配置文件时非常实用:

按键效果
i在当前光标所在字符之前插入
a在当前光标所在字符之后插入(append)
A在当前行末尾追加
o在当前行下方新建一行并插入
O在当前行上方新建一行并插入

SRE 在给配置文件追加新的参数行、或在行尾补充注释时,A与o的利用率极高。

保存文件::+w

在插入模式中输入完内容后,按ESC回到普通模式,然后按:(冒号,即Shift+;)进入命令行模式,输入w(write 的缩写),最后回车执行,文本就会被写入文件。

完整操作序列为:

i → 进入插入模式,输入内容 ESC → 返回普通模式 :w → 进入命令行模式,写入保存 回车 → 执行保存

:会出现在终端界面左下角(见上文第二张截图),提示当前已进入命令行模式。保存成功后,Vim 会在底部状态栏提示写入的文件名与行数/字符数等信息。

退出 Vim::q、:wq、:q!

退出 Vim 对初学者而言往往是最大的挑战——因为它不像普通编辑器那样有明确的「关闭按钮」。退出的关键同样在于:先按ESC回到普通模式,再按:进入命令行模式,然后根据需求选择不同的退出命令。

下表完整列出本文档给出的三种退出方式:

Vim 命令说明
:q退出文件(quit)。若文件存在未保存的修改,Vim拒绝退出并给出提示,避免误丢数据
:wq先写入(保存)再退出文件,相当于:w+:q的合并操作
:q!不保存任何修改,强制退出(!表示强制,用于放弃未保存的改动)

组合起来看,一条非常实用的操作链是:

  • 修改后想保存并退出:ESC→:wq→ 回车;
  • 修改后发现改错了、想放弃并退出:ESC→:q!→ 回车;
  • 只想快速看看文件后退出:ESC→:q→ 回车。

!(感叹号)是 Vim 中表示「强制执行」的修饰符,q!可以跳过「有未保存修改」的保护检查,直接放弃退出。理解这一点后,w、q、!三个符号的组合逻辑就一目了然了。

面向 SRE 场景的常用 Vim 速查(进阶补充)

本节是入门内容的自然延伸,用于满足「登录服务器修改配置、编辑脚本」时最常见的操作需求。以下命令均在普通模式下使用(进入插入模式的按键除外):

操作需求按键/命令说明
移动光标h/j/k/l左 / 下 / 上 / 右移动光标
删除光标所在字符x相当于普通编辑器的 Delete
删除当前行dd删除整行,适合清理脚本中的废弃配置
撤销上一步操作u误删后立即恢复
查找文本/keyword后回车在文件中搜索关键字,n跳转到下一个匹配
跳到文件末尾G查看长日志或长配置时常用
跳到指定行:行号后回车例如:42直接跳到第 42 行
显示/取消行号:set number/:set nonumber排查脚本报错行号时非常实用

这些命令并不要求一次性记住,建议在练习中按需查阅、逐步内化。对于想要快速练习的读者,可以直接回到本仓库 Linux 基础 与 Bash 脚本编写 中的真实示例文件反复演练。

实战衔接:在下一节用 Vim 编写你的第一个脚本

本节的 Vim 技能将在下一节 Bash 脚本编写 中立即投入使用。届时标准的操作流程是:

  1. 用vim firstscript.sh打开(或创建)脚本文件;
  2. 按i进入插入模式,输入脚本内容,例如#!/bin/bash、注释和echo "Hello world!";
  3. 按ESC返回普通模式,输入:wq保存并退出;
  4. 在终端用chmod +x firstscript.sh赋予可执行权限,再通过显式路径运行脚本查看输出。

可以看到,本节学到的i、ESC、:w、:wq正是脚本编写全流程的地基。建议按「打开文件 → 输入内容 → 保存 → 退出」的顺序在 RHEL 8 容器中完整走通几遍,形成肌肉记忆;熟练掌握这几个基础命令后,再逐步扩展到移动、删除、查找等进阶操作,最终做到在服务器上「零障碍」地完成任何文件编辑任务。

  • 教程

【免费下载链接】school-of-sre

At LinkedIn, we are using this curriculum for onboarding our entry-level talents into the SRE role.

项目地址:https://gitcode.com/gh_mirrors/sc/school-of-sre
点击查看免费下载

相关推荐

上一篇:【亲测免费】 探秘CloudBeaver:一个强大的云端数据库管理工具
下一篇:Konstellate:免费开源的Kubernetes应用可视化工具,让复杂部署变得简单直观

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询