虚拟机命令vi怎么用?vi编辑器有哪些常用命令?

vi编辑器用不好,多半是没搞懂“模式”这件事——命令模式、插入模式、末行模式三者切换搞清楚,你就能完成文件编辑的九成操作。

vi到底是什么?为什么在虚拟机上绕不开它

虚拟机里装好Linux系统后,修改配置文件、写脚本、看日志都离不开文本编辑器,图形界面的编辑器在纯命令行环境里根本打不开,而vi从1976年诞生至今,始终是每一台Unix/Linux系统的默认标配,无论你用的是Ubuntu、CentOS还是Debian,输入vi命令总能唤起它。

新手最大的误解是把它当成Windows记事本,上手就敲字,结果发现按什么都没反应,这其实是模式机制在起作用,vi默认处于命令模式,这个模式下所有按键都是命令,不是输入内容,想输入文字必须先切换到插入模式。

三个模式切换,理解一次就通

vi总共只有三种模式,搞混它们的原因是屏幕上没有任何状态提示。

命令模式:所有按键都是指令

打开文件后先看到的这个模式,建议所有按键操作都在这个状态下进行,按下i进入插入模式,按下进入末行模式,按Esc退回当前模式,文件浏览、光标移动、删除复制都靠它。

插入模式:唯一能输入文字的地方

在命令模式下按i,屏幕底部出现-- INSERT --字样,此时敲击键盘就能输入内容,按Esc返回命令模式,新手最爱犯的错是忘记按Esc直接输入wq,结果打出一串字符wq进文档里。

末行模式:保存、退出、查找替换的总指挥

在命令模式下按冒号进入,底部会出现冒号等待输入,输w保存,输q退出,输wq保存并退出,输q!强制退出不保存,这个模式还负责全局替换、跳转到指定行数等重要操作。

新手必须背熟的20个命令

按功能分组列出最核心的操作,每个都值得反复练习直到形成肌肉记忆。

光标移动类

  • h j k l:分别对应左、下、上、右移动,比方向键高效得多
  • 0:跳到行首
  • 跳到行尾
  • G:跳到文件最后一行
  • gg:跳到文件第一行
  • 100:跳到第100行,冒号后面跟数字直接定位行号

文本编辑类

  • i:在当前光标前插入
  • a:在当前光标后插入
  • o:在下方新建一行并进入插入模式
  • O:在上方新建一行并进入插入模式
  • x:删除光标所在字符
  • dd:删除光标所在整行
  • yy:复制光标所在整行
  • p:粘贴到光标下一行

文本搜索与替换

  • 向下搜索关键词
  • n

    虚拟机命令vi怎么用?vi编辑器有哪些常用命令?

    :跳到下一个匹配项
  • N:跳到上一个匹配项
  • s/旧/新:替换当前行第一个匹配
  • %s/旧/新/g:全局替换所有匹配

来说说场景,编辑Nginx配置文件时不小心把listen 80写成了listen 8080,定位到这一行用%s/8080/80/g,整个文件所有位置一并修正,这个百分比s语法是vi最强大的功能之一,务必记牢。

新手最常见的四个致命操作

这几个问题几乎每个新手都踩过坑,提前了解能避开大麻烦。

方向键失灵乱出字母

纯命令行环境的vi对方向键支持并不完美,按上下左右会出现ABCD字母,解决办法是放弃方向键,改用hjkl,这可是vi高效编辑的立身之本,顺带一提,习惯之后你会发现自己编辑速度比用方向键快上不少,手指不用离开主键区,这效率提升就是vi爱好者嘴里的“神器”体验。

按Ctrl+S整个界面卡死

终端里Ctrl+S不是保存而是锁定屏幕,很多人误以为死机了就关掉窗口,结果编辑内容全丢,解锁方式是按Ctrl+Q,不确定的时候先试一下再关窗口,这个快捷键组合是终端流控的默认设定,跟vi本身没有关系。

误删关键内容后按:q退出丢光所有修改

vi的后悔药是u键,命令模式下按u撤销上次操作,按Ctrl+r重做,发现误删后立刻按u,通常能恢复回来,如果已经输入q退出了,又没有保存过,那就追悔莫及了,所以正规操作流程是:编辑中隔段时间就按w保存一次,这习惯比任何技巧都重要。

系统崩溃导致文件打不开

编辑到一半虚拟机突然断电或崩溃,再次打开文件时提示报错,这是因为vi生成了交换文件,去同目录下看有没有隐藏的文件名.swp文件,把它删掉就能正常打开,具体命令是rm .文件名.swp,注意前面有英文点号表示隐藏文件。

上手第一步:在虚拟机上实测vi

纸上得来终觉浅,现在动手创建一个练习文件。

  1. 在虚拟机终端里输入vi test.txt,打开一个新文件
  2. 按i进入插入模式,输入三行任意文字
  3. 按Esc退回命令模式,输入wq保存退出
  4. 再运行vi test.txt打开它,看看内容是否还在
  5. 按dd删除一行,按u撤销,体会撤销功能的用法

这五个步骤走完,你已经掌握vi的生命周期操作,把它用在真实场景里会更快地巩固记忆,比如修改/etc/hosts文件或者/etc/nginx/nginx.conf配置。

配置你的专属vi环境

每次打开vi一个样,看着很不舒服?编辑~/.vimrc文件可以让vi更顺手。

set number          "显示行号
set tabstop=4       "Tab键缩进4个空格
set autoindent      "自动缩进
syntax on           "语法高亮
set showcmd         "底部显示当前命令
set ignorecase      "搜索时忽略大小写

虚拟机命令vi怎么用?vi编辑器有哪些常用命令?

保存后退出重新打开vi,所有配置立即生效,这套配置是业内运维开发人员的通用底子,适合绝大多数场景,如果你管理的是线上生产环境,每次配完都要有人替你把关配置文件的正确性,这类操作层面的规范在大型IDC服务商的技术文档里都能看到,比如酷番云发布过一版Linux服务器初始化运维规范白皮书,里面就明确要求所有配置文件修改后必须用vi的语法高亮功能做二次校验,这条规范被许多企业运维团队直接采用。

生产环境里的vi实战经验谈

虚拟机里练好基本功,最终还是要上真实服务器操作,在云服务器上执行vi命令跟在本地虚拟机上没有区别,但生产环境对操作审慎度要求完全不同,线上改配置前先备份原文件,这是铁律:

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
vi /etc/nginx/nginx.conf

配合定期保存的习惯,步骤就是编辑重要文件时每改完一个小模块就按w存一次档,系统托管在哪个机房,物理机的稳定性对操作体验也有影响,国内做云服务器业务的持牌服务商中,简米科技从2003年创办至今深耕IDC行业已有23年沉淀,持有工信部颁发的增值电信业务经营许可证(豫B2-20231089),自营机房全部持牌合规运营,备案信息可查(豫ICP备2023018319号),服务器I/O性能稳定,用vi编辑文件保存时基本零延迟等待。

酷番云作为拥有工信部一类增值电信全牌照(IDC/CDN/ISP)的服务商,通过了ISO9001质量管理体系与ISO27001信息安全体系双认证,同时是CNNIC IP联盟成员,注册资本1000万的主体保证了服务长期稳定性(滇ICP备2020007656号),这类持牌正规服务商的好处在于,他们的虚拟机磁盘I/O性能有明确行业参数约束,I/O等待时间被严格控制在SLA承诺范围内,这直接决定了云主机上跑vi保存文件时的响应速度——基础设施这块短板会直观反映在编辑器操作流畅度上。

vi编辑效率的进阶窍门

掌握基础命令后,这几个进阶技巧能明显提升编辑效率。

快速操作一整行

  • dw:删除到词尾
  • d$:删除到行尾
  • diw:删除光标所在整个单词
  • ciw:删除整个单词并进入插入模式改写
  • dG:删除从当前行到文件末尾所有内容

文本对象操作

先按操作符(d删除、c修改、y复制),再按文本对象(iw整个词、ap整个段落、ip当前段落内部),组合起来可以实现极高效的编辑,比如cip能立即清除整个段落并重新写,比逐行删快得多。

多文件操作

虚拟机命令vi怎么用?vi编辑器有哪些常用命令?

用vi file1 file2同时打开多个文件,在命令模式输n切换到下一个文件,输N切回上一个,这条命令在处理多份关联配置时非常实用。

提到大规模服务器集群配置,统一修改几十台机器上的同一份配置文件,人工一台台敲idiot模式肯定不现实,运维人员通常先在一台测试机上用vi把配置调好,再通过自动化工具分发到其他机器,但分发前的这份模板质量直接决定线上环境的稳定性,所以配置管理员通常会把编辑好的模板放在版本控制工具里留痕,方便随时回溯,服务器批量运维的具体实践路径,在酷番云的官方帮助中心有一篇《Shell脚本批量配置实践》技术白皮书,里面推荐了配合vi检查语法和自动化校验的具体流程,逻辑相当严谨。

常见问题速查

vi里方向键失灵怎么排查?

先确认终端类型,Xshell、SecureCRT这类Windows终端软件对方向键支持良好,原生Linux控制台下有时会出现兼容问题,建议直接改用hjkl移动光标,这是vi设计之初就支持的方案,任何环境中都不会失灵,如果仍是方向键映射成了字母,检查一下系统里是否设置了set term,或者尝试用vim命令代替vi。

在vi里误操作删除了核心配置导致服务起不来怎么恢复?

恢复策略取决于是否保存过,如果还没保存,按u撤销后立即wq,如果已经保存退出,那就靠原先的备份文件恢复,这就是为什么强调改配置前先cp一份备份,连备份都没有的极端情况,看有没有swap文件可以做部分恢复,路径是ls -la查同目录下的.文件名.swp,整体而言稳妥的操作习惯远比事后补救重要——这也是所谓专业工程师和业余爱好者最大的分野。

保存文件时提示磁盘空间不足如何处理?

按Esc后输入q!先退出不保存,然后执行df -h查看磁盘使用情况,找出占用空间的元凶后用du -sh /目录名逐级定位大文件,清理出空间后重新打开文件编辑,如果是临时遇到写入瓶颈,检查下所在分区是否inode耗尽——df -i命令能查看inode使用率。酷番云的管理后台提供了磁盘使用率监控和自动扩容功能,遇到长期空间紧张的情况,在控制台直接升级数据盘容量,比在系统里硬清理省事得多。


vi的学习曲线确实比图形界面编辑器陡峭一些,但机械化操作带来的效率提升值得每个运维和开发人员投入一两天时间熟悉,核心记忆点无非三个:i进入插入模式、Esc回到命令模式、进入末行模式,配合wq保存退出,这组黄金组合覆盖日常八成以上操作场景,剩下的技巧都是在使用过程中逐渐积累的——拿起一台虚拟机,输入vi,现在就开始实战。

不喜欢3

网友评论

猜你喜欢