导读:本期聚焦于小伙伴创作的《Linux vi命令如何使用?新手快速上手编辑文件的完整教程》,敬请观看详情。刚接触Linux服务器时,面对黑底白字的终端直接用vi打开文件却不知怎么输入内容,是不少人遇到的第一个障碍。vi作为系统自带最基础的文本编辑器,分为命令模式、插入模式和末行模式,掌握模式切换才能正常编辑。本文从实际配置文件修改场景出发,说明如何用vi新建或打开文件、进入插入状态写内容、保存退出的具体操作,并对比vim的增强差异。同时指出误以为打开就能敲字、忘记强制退出等常见误区,帮助你在没有图形界面的环境下高效完成配置修改。

在Linux系统中,vi是最经典也最必不可少的文本编辑工具。它通常随发行版默认安装,即使是最精简的服务器镜像也会保留vi,用来在纯命令行环境下修改配置文件、编写脚本或查看日志。理解vi的核心在于它本质上是一个模式化编辑器,不同于Windows里记事本那样打开就能直接打字,vi要求用户在不同模式间切换来完成查看、写入和保存动作。

Linux vi命令如何使用?新手快速上手编辑文件的完整教程

一、vi的三种基础模式与切换逻辑

vi启动后默认处于命令模式,此时键盘输入的大部分字符都被解释为编辑指令而非文本内容。比如按下dd会删除整行,yy复制一行,p粘贴到光标下方。这种设计的初衷是为了让双手无需离开主键盘区就能完成高效操作,但也正是新手觉得难用的原因。只有明确进入插入模式,才能像普通编辑器一样输入字符。

从命令模式进入插入模式有多种方式:按i在光标前插入,a在光标后插入,o在下方新建一行并插入,O在上方新建一行。插入模式下左下角通常会显示“-- INSERT --”提示。写完后必须按Esc回到命令模式,才能执行保存或退出。若直接断电或误敲指令,可能导致文件状态异常。

末行模式(也叫底线命令模式)在命令模式下输入冒号:触发,此时光标跳到屏幕底部,可输入w保存、q退出、wq保存并退出、q!强制不保存退出。当文件只读或没有写权限时,普通wq会失败,必须用w!q!处理。理解这三层模式循环,是顺畅使用vi的前提。

二、文件打开、编辑与保存的完整操作流程

实际工作中最常见的场景是用vi修改Nginx或SSH的配置文件。假设要编辑/etc/ssh/sshd_config,在终端输入vi /etc/ssh/sshd_config后回车,若文件存在则载入,不存在则创建空白缓冲。打开后先用方向键或h j k l移动光标到需要修改的行,例如找到PermitRootLogin这一行。

将光标移到对应位置后按i进入插入模式,把yes改为no,按Esc返回命令模式。如果想快速跳到文件末尾,可在命令模式输入G,跳到首行用gg。修改完成后,输入:wq保存退出;若只是查看并未改动,用:q即可。当系统提示“E37: No write since last change”说明有改动未存,用:q!可丢弃改动强退。

下面是一段在终端操作的简单示例,展示如何用vi新建脚本并保存:

# 新建一个测试脚本
vi hello.sh
# 进入后按 i,输入以下内容
echo "Hello Linux vi"
# 按 Esc,再输入 :wq 回车
# 之后赋予执行权限并运行
chmod +x hello.sh
./hello.sh

这种流程在批量部署服务器时极为频繁。相比图形编辑器,vi不依赖桌面环境,通过SSH会话就能完成,且资源占用极低。缺点是学习曲线陡,但一旦熟练,编辑效率反而超过多数鼠标操作的编辑器。

三、常见误区与vim的增强差异

一个广泛存在的误区是认为vi打开文件后直接敲键盘就能输入文字。结果打出满屏jk等字符或触发删除,搞乱了原文件。根本原因是没分清命令模式和插入模式。建议新手每次打开文件先确认左下角状态,没显示INSERT就先按i再写。

另一个误区是忘记强制退出的写法。当用普通用户编辑/etc下文件却无权限保存时,一直按:wq会循环报错。此时应:q!退出,再用sudo vi重新打开。还有人用Ctrl+z挂起vi导致进程残留,正确做法是用:q系列指令结束。

许多Linux发行版里vi其实是vim(Vi IMproved)的软链接。vim支持语法高亮、多级撤销、区块选择等。可在命令模式输入:version查看。若系统只有原始vi,可用apt install vimyum install vim增强。下例展示vim中开启行号:

# 在末行模式执行
:set number
# 取消行号
:set nonumber

掌握vi不仅是为了应付没有图形的服务器,也是理解Unix哲学中“小工具组合”的一环。把vi和grep、sed等配合,能在远程维护时快速定位并修改问题,不必下载文件到本地再传回。从模式认知到强制退出,每一步都值得在测试环境多敲几遍,形成肌肉记忆。

Linuxvi_commandtext_editor修改时间:2026-08-15 18:36:32

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。