• 作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 

  •  座右铭:低头赶路,敬事如仪

  • 个人主页:网络豆的主页​​​​​​

目录

前言

一.vi文本编辑器

1.使用vi文本编辑器

2.vi编辑器的工作模式

3.命令模式中的基本操作

(1)模式切换

(2)移动光标

(3)复制、粘贴和删除

(4)查找文件内容

(5)撤销编辑及保存和退出

4.末行模式中的基本操作

(1)保存文件及退出vi编辑器

(2)打开新文件或读入其他文件内容

(3)替换文件内容


前言

本章将会讲解使用vi文本编辑器


一.vi文本编辑器

配置文件是Linux操作系统的显著特征之一,其作用有点类似于Windows操作系统中的注册表,只不过注册表是集中管理,而配置文件采用了分散的自由管理方式。本节将学习如何使用Linux字符操作界面中的文本编辑器——vi,以便更好地管理和维护系统中的各种配置文件。


1.使用vi文本编辑器

vi是一个功能强大的全屏幕文本编辑工具,一直以来都作为类UNIX操作系统的默认文本编辑器,vim是vi文本编辑器(简称vi编辑器)的增强版本,在vi编辑器的基础上扩展了很多实用的功能,但是习惯上也将vim称为vi,为了使用方便,可以设置一个命令别名,将vi指向vim程序(本文中以vim程序为例)具体操作如下:

[root@localhost ~]# alias vi='/usr/bin/vim'
[root@localhost ~]# which -a vi vim

2.vi编辑器的工作模式

vi编辑器是工作在字符终端环境下的全屏幕编辑器,因此编辑界面相对比较简单,没有为用户提供鼠标操作和菜单系统,而是通过按键命令实现相应的编辑和操作功能,在v编辑界面中可以使用三种不同的工作模式,即命令模式,输入模式和末行模式,在不同的模式中能够对文件进行的操作也不相同。

  • 命令模式:启动vi编辑器后默认进入命令模式。该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作。
  • 输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改或添加新的内容。处于输入模式时,vi编辑器的最后一行会出现“--NSERT--”的状态提示信息。
  • 末行模式:该模式中可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vi编辑器的最后一行会出现冒号”:”提示符。

命令模式、输入模式和末行模式是vi编辑环境的三种状态,通过不同的按键操作可以在不同的模式间进行切换。例如,从命令模式按:(冒号)键可以进入末行模式,按a,i,o等键可以进入输入模式:在输入模式、末行模式均可按Esc键返回命令模式,如图所示。

认识了vi编辑器的不同编辑模式(状态)以后,下面分别介绍在命令模式、末行模式中的常见操作方法(输入模式用于录入文本内容,不做特别介绍)。


3.命令模式中的基本操作

执行单独的“vi”命令即可进入v编辑器的命令模式,还会显示相关版本信息,如图所示。但更常见的使用方法是指定要编辑的文件名作为参数,若该文件不存在,则vi根据该文件名称打开一个新的空文件。

在学习vi编辑器的基本操作时,建议复制一个内容较多的系统配置文件进行练习,而不要直接去修改系统文件,以免发生失误造成系统故障。


例如以下操作把系统配置文件/etc/yum.conf复制为当前目录下的vitest.file文件,然后用vi编辑器打开vitest.file文件进行编辑。

[root@localhost ~]# cp /etc/yum.conf ./vitest.file
[root@localhost ~]# vi vitest.file

在vi编辑器的命令模式中,可以输入特定的按键(称为vi操作命令注意区别于Linux操作系统命令)进行操作,主要包括模式切换、光标移动、复制、删除、粘贴、文件内容查找及保存和退出等操作,这里只介绍一些最基本且常用的按键命令。


(1)模式切换

在命令模式中,按a.i.o等键可以快速切换至输入模式,同时确定插入点的方式和位置,以便录入文件内容,需要返回命令模式时,按Esc键即可。常见的几个模式切换键及其作用如下。

  • a:在当前光标位置之后插入内容。
  • A:在光标所在行的末尾(行尾)插入内容。
  • i:在当前光标位置之前插入内容。
  • I:在光标所在行的开头(行首)插入内容。
  • o:在光标所在行的后面插入一个新行。
  • O:在光标所在行的前面插入一个新行。

(2)移动光标

光标方向的移动,直接按↑,↓,←,→一西个方向键完成相应的光标移动。

题页移动

按Page Dewn键或Crl+F组合键向下期动一整页内容。
技Pagt lip或Cr1+8组合键向上翻动一整页内容。

行内快速跳转

  • 按Horme键成“键,散字0键将元标快速鹏转到本行的行首。
  • 接End键或1键将光标快速跳转到本行的行尾。
  • 在上述按键操作中,PageDown,Pagn Up,homm,End及方向键同样也可在w的输入模式中使用。

入行间快速跳转

  • 使用按键命令1G或者0可跳转到文件内容的第1行。
  • 使用按键命令G可跳转到文件的最后一行。
  • 使用按键会令#G可院转到文件中的第#行(其中“二”号用高体数字替换)。

为了便于查看行间期转效果,这里先学习如何在v编辑器中是示行号,只要切换到末行模式并
执行如下的”set cu”命令即可显示行号,执行"set nonu"命令可以取消量示行号.

显示行号后的vi编辑器界面显示格式如下(每行开头的数字即行号):


(3)复制、粘贴和删除

删除操作。

  • 按×键或Delete键删除光标处的单个字符。
  • 使用按键命令dd删除当前光标所在行,使用#dd的形式还可以删除从光标处开始的#行内容(其中“#”号用具体数字替换)。
  • 使用按键命令d删除当前光标之前到行首的所有字符。
  • 使用按键命令ds删除当前光标处到行尾的所有字符。

复制操作,使用按键命令Yy复制当前行整行的内容到剪贴板,使用#Yy的形式还可以复制从光标处开始的#行内容(其中“#”号用具体数字替换).复制的内容需要粘贴后才能使用。

粘贴操作。在vi编辑器中,前一次被删除或复制的内容将会保存到剪切板缓冲区中,按p键即可将缓冲区中的内容粘贴到光标位置处之后,按P键则会粘贴到光标位置处之前。


(4)查找文件内容

在命令模式中,按/键后可以输入指定的字符串,从当前光标处开始向后进行查找(按?键则向前查找).完成查找后可以按n、N键在不同的查找结果中进行选择,例如,输入“/yum”,按Enter键后将查找出文件中的“yum”字符串并高亮显示,光标自动移动至第一个查找结果处,按n键可以移动到下一个查找结果,如图所示。


(5)撤销编辑及保存和退出

在对文件内容进行编辑时,有时候需要对一些失误的编辑操作进行撤销,这时可以使用按键u,U键,其中,u键命令用于取消最近一次的操作,并恢复操作结果,可以多次重复按υ键恢复已进行的多步操作;U键命令用于取消对当前行所做的所有编辑。当需要保存当前的文件内容并退出vi编辑器时,可以使用按键命令ZZ。


4.末行模式中的基本操作

在命令模式中按:键可以切换到末行模式,vi编辑器的最后一行中将显示”:提示符,用户可以在该提示符后输入特定的末行命令,完成如保存文件,退出编辑器,打开新文件,读取其他文件内容及字符串替换等丰富的功能操作。


(1)保存文件及退出vi编辑器

保存文件,对文件内容进行修改并确认以后,需要执行如下的“w”命令进行保存。

若需要另存为其他文件,则需要指定新的文件名,必要时还可以指定文件路径。

例如,执行如下的“:w/root/newfile操作将把当前编辑的文件另存到/root 目录下,文件名为newfile.

退出编辑器。需要退出vi编辑器时,可以执行“:q命令,若文件内容已经修改却没有保存,则仅使用”;q”命令将无法成功退出,这时需要使用如下的”q!”命令强行退出(不保存即退出)。

保存并退出。既要保存文件又要退出vi编辑器可以使用一条末行命令“:wq”或“:x”实现,其效果与命令模式中的ZZ命令相同,具体操作如下:


(2)打开新文件或读入其他文件内容

打开新的文件进行编辑。在当前vi编辑器中,执行”:e新的文件”形式的末行命令可以编辑(Edit)新文件。

例如,执行如下的‘:e~/initial-setup-ks.cfg”操作将直接打开当前用户宿主目录中的initial-setup-ks.cfg文件进行编辑。

:e ~/initial-setup-ks.cfg

在当前文件中读入其他文件内容,执行“r其他文件”形式的末行命令可以读入(Read)其他文件中的内容,并将其复制到当前光标所在位置。

例如,执行如下的“r/etc/filesystems操作将把系统文件/etc/filesystems中的内容复制到当前文件中。

:r /etc/filesystems

(3)替换文件内容

在vi编辑器的末行模式中,能够将文件中特定的字符串替换成新的内容,当需要大批量修改同一内容时,使用替换功能将大大提高编辑效率,使用替换功能时的末行命令格式如下:

:[替换范围]sub/旧的内容/新的内容[/g]

在上述替换格式中,主要关键字为sb(Substitute,替换).也可以简写为s.替换范围是可选部分,默认时只对当前行内的内容进行替换,一般可以表示为以下两种形式。

  • %:在整个文件内容中进行查找并替换。
  • n.m;在指定行数范围内的文件内容中进行查找并替换。

替换格式中最末尾的/g部分也是可选内容,表示对替换范围内每一行的所有匹配结果都进行替换,省略/g时将只替换每行中的第一个匹配结果。

例如,若要将文档中第5行~第15行中的“initdefault”字符串替换为“DEFAULT”,可以执行以下操作:

:5,15 s /initdefault/DEFAULT/g

当需要对整个文档范围进行查找替换操作时,需要使用“%”符号表示全部,例如,以下操作将会把当前文件中所有的“initdefault”字符串替换为“bootdefault”

:% s /initdefault/bootdefault/g

创作不易,求关注,点赞,收藏,谢谢~ 

Linux系列 使用vi文本编辑器相关推荐

  1. linux实验六vi文本编辑器,Linux-实验六-vi文本编辑器.docx

    实验六Vi文本编辑器 上机实验容: 练习一: 请在/root这个目录下建立一个名为vitest的目录; [root@localhost [root(aiocalhost [rooWlocalhost ...

  2. linux麒麟编码方式,麒麟Linux系统vi文本编辑器介绍(24页)-原创力文档

    中标麒麟Linux服务器操作系统培训系列 中标麒麟Linux系统vi文本编辑器介绍 技术创新,变革未来 本章目标 • vi 和vim 的三种主要模式 • vi 的基本使用 vi •vi是一种广泛存在于 ...

  3. (三)Linux vi 文本编辑器,用户管理,组管理,Sudo命令,时间管理

    文章目录 具体内容 1.1 vi 文本编辑器 1.2 用户权限管理,组管理和时间管理 1.2.1 用户管理 1)保存用户信息的文件:/etc/passwd 2)保存用户密码信息的文件:/etc/sha ...

  4. 常见的Linux查看检索归档文件及vi文本编辑器操作大全

    常见的Linux查看检索归档文件及vi文本编辑器操作大全 一.Linux目录结构 1.1 树形目录结构 1.2 根目录 1.3 常见的子目录 二.查看及检索文件 2.1 查看文件内容 -- cat命令 ...

  5. Linux VI文本编辑器

    VI文本编辑器   学会使用 vi 编辑器是学习 Linux 系统的必备技术之一,因为一般的 Linux 服务器是没有 GUI 界面的,Linux 运维及开发人员基本上都是通过命令行的方式进行文本编辑 ...

  6. linux 中vi中复制命令,使用vi文本编辑器及Linux复制粘贴小技巧

    想成为一个高效的DBA,离不开熟练使用vi编辑器,尤其是准备OCM考试的人员更为如此.另外,在Linux系统中,通过鼠标左键选中的文字,再通过按住鼠标中间滚动条来粘贴功能也是需要掌握的小技巧.我接触L ...

  7. linux操作系统 第03章 vi文本编辑器

    第3章    vi文本编辑器 3.1  vi文本编辑器概述 与Unix相同,Linux本质上是一个文本驱动(text-driven)的操作系统.文本文件就是全部由ASCII码字符及某种语言的编码字符构 ...

  8. linux复制粘贴保证内容完整,使用vi文本编辑器及Linux复制粘贴小技巧

    想成为一个高效的DBA,离不开熟练使用vi编辑器,尤其是准备OCM考试的人员更为如此.另外,在Linux系统中,通过鼠标左键选中的文字,再 通过按住鼠标中间滚动条来粘贴功能也是需要掌握的小技巧.我接触 ...

  9. Vi文本编辑器的使用方法

    一.什么是vi 是一种文本编辑器,是Visual interface的简称: 而vim则是vi的强化版vi plus,专业全称Vi improved. 二.vi的优势 所有的类Unix系统(Unix ...

最新文章

  1. php导包,Thinkphp5.1 导入第三方包的问题
  2. 百度要造什么车?汽车依然逃不出 BAT 的手掌心 | 撩车
  3. 工信部明确公共互联网网络安全突发事件分级预警、应急
  4. HDMI和VGA接口
  5. UVa 11027 - Palindromic Permutation 回文串,组合加搜索
  6. Trust is the most important thing to the team!
  7. python xlwt 解决报错:ValueError: More than 4094 XFs (styles)
  8. 微博发布公告 将开展财经违规内容专项整治行动
  9. java access远程连接_Java程序实现对access数据库的远程访问
  10. hadoop问题锦集(一)-搭建集群环境时的常见问题
  11. Ubuntu 16.04下安装 PCL简单方法
  12. 计蒜客-----泥塑课(set)
  13. 高等代数中涉及到“正交”的名词总结
  14. python实验--文字小游戏(小黑屋)
  15. java倒叙遍历list
  16. 张学友 - 蓝雨(粤)
  17. 盘点2018年云计算热点:云原生、全栈云,云大脑,谁能独占鳌头?
  18. 大数据职业理解_3大数据职业职位描述及其职业要求
  19. SpringMVC jdbctemplate实现底层架构封装
  20. 计算机可用内存分配失败,安装内存和实际可用内存不一样什么原因

热门文章

  1. echarts 柱状图渐变色背景
  2. 洛阳等地启动电子劳动合同试点,多家名企选择法大大
  3. JS+CSS实现页面滚动切换图片(从边角扩散)的效果
  4. 沉浸式状态栏实现,完美适配Android刘海屏,终极兼容
  5. oral-b app Android,oral b app
  6. h5 vr效果_全景展示h5,深度解读如何在H5中完美融入VR技术
  7. bzoj3998/洛谷3975 [TJOI2015]弦论 (后缀自动机)
  8. JZOJ 5602. 【NOI2018模拟3.26】Cti
  9. Navicat连接mysql时出现 Access denied for user ‘root‘@‘xxx.xxx.xxx.xxx‘ (using password: YES) 的原因及解决办法。
  10. 手把手 教你如何做网线接头