关于尚观
最新课程体系
企业服务
零起点咨询
开放课程
报名咨询
免费资源申请
Oracle服务
学员专区&薪资
认证课程
  • 尚观首页
  • 尚观简介
  • 师资力量
  • 尚观文化
  • 尚观动态
  • 加入尚观
  • 联系我们
  • 珍贵瞬间
  • 院校合作
  • Linux系统与集群
  • 数据库集群架构师
  • 嵌入式内核驱动开发
  • 服务器开发架构师
  • Android开发架构师
  • RHCE/LPI认证体系
  • Oracle OCP认证
  • 企业高级技术培训
  • 批量人才供应及研发团队建设
  • 软件外包及研发项目合作
  • 人力外包及人力供应
  • 猎头服务
  • 开启职业生涯
  • 如何入门
  • Unix/Linux职业方向
  • 嵌入式职业方向
  • 集群(Cluster)Oracle(DBA)方向
  • 新手专栏
  • Android开发方向
  • Unix/Linux新手专栏
  • Unix/Linux管理
  • 嵌入式及POSIX开发
  • Linux开源文化及市场
  • 最近网络课堂
  • P2P教学视频
  • 精彩Linux培训视频
  • 零起点数据库集群(长期)
  • 嵌入式驱动(长期)
  • Linux金牌三证(RHCE级)
  • Linux架构师(RHCA级)
  • 嵌入式/驱动加速课程
  • Linux免费网络安全公开课
  • 免费Linux资料申请
  • 免费Linux安全&DDOS防御课程
  • 免费嵌入式Linux开发课程
  • 免费Linux网络安全机制
  • 尚观服务
  • 软件产品
  • 技术方案
  • 尚观支持
  • 学员毕业薪资(不断更新中)
  • 加入尚观猎头服务(仅限老学员)
  • OCP认证
  • Intel认证
  • RHCE认证
  • RHCE+OCP
  • RHCE+LPI
  • OCM认证
  • RHCA认证


    您现在的位置:尚观Linux培训 - 嵌入式Linux培训专家尚观Linux培训 » UNIX/Linux新手专栏 » Linux常见命令:屏幕文本编辑器Vi

 
 
咨询热线
  • 免费咨询电话:
    400-700-0056
    800-810-0056

    教学就业监督电话:
    400-810-3016



  • 在线咨询
免费资源
  • [北京]Linux安全-4月24日
  • [沈阳]Linux嵌入式-4月24日
  • [上海]DDos攻防-4月24日
  • [上海]Linux嵌入式-4月24日
  • [深圳]DDos攻防-4月24日
  • [深圳]Linux嵌入式-4月24日
  • [北京]DDos攻防-4月24日
  • 就业课程
  • 免费课程
  • 五万年薪就业保证课程

  • ULP-S 尚观王者IT集群课程 v8.2版
  • UEA嵌入式内核驱动开发者 V8.2版
  • UGA-Android开发架构师 V3.2版
  • ULA-linux云存储集群架构师V8.2版
  • UOA-Oracle集群架构师课程V8.2版
  • 八万年薪就业保证课程

  • OCM10g-Oracle顶级数据库大师级
  • UEM-嵌入式开发大师
  • 纯免费!技术达人讲解Android系统通信互动程序开发! 5月24日
  • 纯免费! Shrek主讲Linux网络攻击及安全! 5月17日
  • 纯免费! 大牛讲解如何在开发板上构建Linux系统 5月10日
  • 纯免费! 尚观OCM大师主讲Oracle实时备份课程 4月26日
  • 纯免费! Shrek主讲Linux网络攻击及安全课程 4月11日
  • 纯免费!Foway为您解析OCM考试经验 3月2日
  • 纯免费!shrek主讲 linux网络攻击及安全课程 2月8日
  • 纯免费!连续3天,Android开发入门实战免费公开课 12月27日
  • 纯免费!“云”指南“嵌入式”指北大型讲座! 12月24日
Linux培训●最新开班
  • [北京]UGA课程5月班热招!
  • [北京]UEA课程5月班热报!
  • [北京]ULP-S课程5月班热招
  • [上海]UEA课程5月班热招!
  • [上海]ULP-S课程5月班热招
  • [上海]UGA课程5月班热招!
  • [深圳]ULP-S课程5月班热招
  • [深圳]UEA课程5月班热招!
 
Linux常见命令:屏幕文本编辑器Vi
  •  本章介绍Linux上最常用的文本编辑器Vi。文本编辑器是所有计算机系统中最常使用的一种工具。用户在使用计算机的时候,往往需要建立自己的文件,无论是一般的文本文件、数据文件,还是编写的源程序文件,这些工作都离不开编辑器。
      Linux系统提供了一个完整的编辑器家族系列,如Ed、Ex、Vi和Emacs等,按功能它们可以分为两大类:行编辑器(Ed、Ex)和全屏幕编辑器(Vi、Emacs)。行编辑器每次只能对一行进行操作,使用起来很不方便。而全屏幕编辑器可以对整个屏幕进行编辑,用户编辑的文件直接显示在屏幕上,修改的结果可以立即看出来,克服了行编辑的那种不直观的操作方式,便于用户学习和使用,具有强大的功能。
      Vi是Linux系统的第一个全屏幕交互式编辑程序,它从诞生至今一直得到广大用户的青睐,历经数十年仍然是人们主要使用的文本编辑工具,足见其生命力之强,而强大的生命力是其强大的功能带来的。
      本章中,我们将循序渐进地介绍如何使用Vi来建立、编辑、显示以及处理文件。(注:文中的大写字母为[shift]键+相应的小写字母的组合)
       Vi简介
      Vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。
      Vi不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。
      Vi没有菜单,只有命令,且命令繁多。Vi有三种基本工作模式:命令行模式、文本输入模式和末行模式。
      命令行模式
      任何时候,不管用户处于何种模式,只要按一下键,即可使Vi进入命令行模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。
      在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。
      文本输入模式
      在命令模式下输入插入命令i、附加命令a 、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键即可。
      末行模式
      末行模式也称ex转义模式。
      Vi和Ex编辑器的功能是相同的,二者主要区别是用户界面。在Vi中,命令通常是单个键,例如i、a、o等;而在Ex中,命令是以按回车键结束的正文行。Vi有一个专门的“转义”命令,可访问很多面向行的Ex命令。在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。例如:
      :1,$s / A / a / g
      则从文件第一行至文件尾将大写A全部替换成小写a。
      若在末行模式下输入命令过程中改变了主意,可按键,或用退格键将输入的命令全部删除之后,再按一下退格键,即可使Vi回到命令模式下。
      Vi编辑器的三种工作模式之间的转换如图11-1所示
      如果要从命令模式转换到编辑模式,可以键入命令a或者i;如果需要从文本模式返回,则按Esc键即可。在命令模式下输入“:”即可切换到末行模式,然后输入命令。
      第二十五课 Vi的进入与退出      2000年/6月/13日
      Vi 的进入
      用户登录到系统中之后,系统给出提示符“$”。在提示符后键入Vi和想要编辑(或建立)的文件名,便可进入Vi。
      [例1] 键入命令:
      $ vi example.c
      屏幕显示如下:
      ~
      ~
      ~
      ~
      ~
      ~
      ~
      ~
      ~
      ~
      ~
      ~
      ~
      “ example.c” [New File]
      如果只键入Vi,而不带文件名,也可以进入Vi。之后在光标处键入文件内容,退出Vi时,只需在退出命令后输入文件名即可。
      进入Vi之后,首先进入的就是命令模式,也就是说等待命令输入而不是文本输入。这时输入的字母都将作为命令来解释。光标停在屏幕第一行首位上(用表示),其余各行行首均有一个“~”符号,表示该行为空行。最后一行也称状态行,显示出当前正在编辑的文件名以及其状态。如本例是[New File],表示example.c是一个新建的文件。如果example.c文件已在系统中存在,那么输入上述命令后,则在屏幕上显示出该文件的内容,并且光标停在第一行的首位,在状态行显示出该文件的文件名、行数和字符数。
      [例2] 键入命令:
      $ vi example.c
      然后键入:
      #include
      main ( )
      { int k ;
      for ( k=0 ; k<3 ; k++) add( );
      }
      add( )
      { static int x=0;
      x++ ;
      printf(“x = %d\n”, x);
      }
      ~
      ~
      ~
      ~
      “ example.c” [ New File]
      注意,在这里我们为了节省篇幅起见,屏幕只显示15行。事实上,初始的显示行数与用户所用终端有关,一般的CRT终端可显示25行。在窗口系统中,显示行数与运行Vi的那个窗口有关。然而我们可以对显示行数进行设置。例如,在能显示25行的CRT终端上,让Vi只显示15行。设置的方法将在本节后面介绍。
      当用Vi建立一个新文件时,在进入Vi的命令中也可以不给出文件名,当编辑完文件需要保存数据时,再由用户指定文件名。
      进入Vi时,用户不仅可以指定一个待编辑的文件名,而且还有许多附加操作。
      如果希望在进入Vi之后,光标处于文件中特定的某行上,可在Vi后加上任选项+n,其中n为指定的行数。
      [例3] 键入命令:
      $ vi +5 example1.c
      后,屏幕显示如下:
      #include
      main ( )
      { int k ;
      for ( k=0 ; k<3 ; k++) add( );
      }
      add( )
      { static int x=0;
      x++ ;
      printf(“x = %d\n”, x);
      }
      ~
      ~
      ~
      ~
      ~
      “ example.c” 12 lines, 125 characters
      光标将位于文件example1.c中的第5行上。
      如果希望在进入Vi之后光标处于文件最末行,则只需把命令中附加项“+”后面的数字n省略掉即可。
      在进入Vi时,除了可以指定一个光标起始行号之外,还可以在命令中指定一个模式串,此时在进入Vi后,光标就处于文件中第一个与指定模式串相匹配的那行上。
      [例4] 键入命令:
      $ vi +/int example1.c
      屏幕显示如下:
      #include
      main ( )
      { int k ;
      for ( k=0 ; k<3 ; k++) add( );
      }
      add( )
      { static int x=0;
      x++ ;
      printf(“x = %d\n”, x);
      }
      ~
      ~
      ~
      ~
      ~
      “ example.c” 12 lines, 125 characters
      光标将位于文件example1.c中的第3行上。
      使用Vi可以同时编辑多个文件,只要在进入Vi的命令中写入所要操作的文件即可,还可以使用通配符。
      [例5] 键入命令:
      $ vi *.cat
      就可以编辑所有后缀为cat的文件了。当然,您还可以使用shell中内置的模式匹配来装载文件,这样会更富技巧性。一旦您在命令行中包含了所有的待编辑文件名,就可以在Vi中方便地移来移去。
      退出Vi
      当编辑完文件,准备退出Vi返回到shell时,可以使用以下几种方法之一。
      在命令模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则Vi保存该文件后退出,返回到shell;若当前编辑的文件没被修改过,则Vi直接退出, 返回到shell。
      在末行模式下,输入命令:w
      Vi保存当前编辑文件,但并不退出,而是继续等待用户输入命令。在使用w命令时,可以再给编辑文件起一个新的文件名。
      [例6]
      :w newfile
      此时Vi将把当前文件的内容保存到指定的newfile中,而原有文件保持不变。若newfile是一个已存在的文件,则Vi在显示窗口的状态行给出提示信息:
      File exists (use ! to override)
      此时,若用户真的希望用文件的当前内容替换newfile中原有内容,可使用命令
      :w! newfile
      否则可选择另外的文件名来保存当前文件。
      在末行模式下,输入命令:q
      系统退出Vi返回到shell。若在用此命令退出Vi时,编辑文件没有被保存,则Vi在显示窗口的最末行显示如下信息:
      No write since last change (use ! to overrides)
      提示用户该文件被修改后没有保存,然后Vi并不退出,继续等待用户命令。若用户就是不想保存被修改后的文件而要强行退出Vi时,可使用命令:q!
      Vi放弃所作修改而直接退到shell下。
      在末行模式下,输入命令:wq
      Vi将先保存文件,然后退出Vi返回到shell。
      在末行模式下,输入命令:x
      该命令的功能同命令模式下的ZZ命令功能相同。
      Vi中的行号
      Vi中的许多命令都要用到行号及行数等数值。若编辑的文件较大时,自己去数是非常不方便的。为此Vi提供了给文本加行号的功能。这些行号显示在屏幕的左边,而相应行的内容则显示在行号之后。
      使用的命令为:在末行方式下输入命令:
      :set number
      需要说明的是,这里加的行号只是显示给用户看的,它们并不是文件内容的一部分。
      在一个较大的文件中,用户可能需要了解光标当前行是哪一行,在文件中处于什么位置,可在命令模式下。

    点击:立刻体验尚观高水平Linux课程!




    精彩Linux视频、嵌入式视频、Android视频、Oracle视频,免费先学!
    查看:尚观Linux培训学员最新就业薪资待遇统计报告!
    查看:UGA-4G Android开发架构师大纲
    查看:UDA-Linux服务器开发架构师大纲
    查看:UEA-嵌入式内核驱动开发者大纲
    查看:UOA-Oracle数据库集群架构大纲
    查看:ULA-Linux系统与集群架构师大纲

    填表获取 Linux、嵌入式、Oracle 技术资料

  • 姓    名:
  • 固    话:
  • 手    机:
  • E-Mail :
  • 所在地:
  •         

北京(总部)

电子地图
电话:(010)62113016/17 68949060
地址:北京海淀区中关村南大街 甲10号 银海大厦南区410-418

上海(Shanghai)

电子地图
电话:(021)64859996 64859889
地址:上海徐汇区钦江路333号漕河泾开发区38号楼申能科技3楼

深圳(Shenzhen)

电子地图
电话:(0755)82995128 82995168
地址:深圳福田区 彩田路 中深花园B2005室

沈阳(Shenyang)

电子地图
电话:(024)31500816 31500817
地址:沈阳和平区三好街54号物产科贸大厦2号楼201室

大连(Dalian)

电子地图
电话:(0411)84336822 84326822
地址:大连沙河口区西安路86号行政大厦(罗斯福广场对面)17楼1705室

成都(Chengdu)

电子地图
电话:(028)66677820 66677828
地址:成都青羊区上西顺城街252号顺吉大厦8楼B4

广州(Guangdong)

电子地图
电话:(020) 88900632 81368992
地址:广州市越秀区人民北路612号中广大厦9层(国际银行中心旁)

南京(Nanjing)

电子地图
电话:(025)83176720 83176710
地址:南京新街口广场中山东路9号天时科技园12层G、H单元

武汉(Wuhan)

电子地图
电话:(027)87596339
地址:武汉市洪山区鲁磨路118号国光大厦A座1201室1203室




2005-2009高新技术企业

LPI授权培训考试中心

CSDN战略伙伴

51Job战略伙伴

Oracle WDP授权培训与考试中心

Intel软件服务培训供应商

Redhat授权培训与考试中心

高新技术企业证书
 

友情链接(联系QQ:304853420):   LPI  RedHat  CSDN  ChinaUnix  ITPub  Eygle.Com  Linux培训  嵌入式培训  Linux联盟  Unix爱好者  51CTO开发 尚观知识库 天极导航  PHP中国  网易教育  天津赶集网  工具软件下载  连锁加盟  天极网南京站  个人简历模板  北京赶集网  畅享网  网页制作  Linux  ZOL服务器  广告联盟  颈椎病的症状  21CN教育  亿芯网  强直性脊柱炎  数码比价网  投资创业  DJ网站  嵌入式技术网  OCM培训  股票入门  大功率LED网   搜电网  杭州写字楼网  时尚论坛  医药营销联盟  Linux技术中心  泉州人才网  大学后  天天健康  RHCE培训  SVN中文技术网  网罗天下  Oracle培训  北京法律咨询  嵌入式资讯网  Fedora中文爱好者  沸点100网   教培英才网  中国二手车城  Linux公社  Oracle教程  深圳本地宝  狂人网  0090网址大全  数码比价网  中国程序员人才网  IT英才网

  • PR
COPYRIGHT © 2000-2009 北京尚观科技有限公司 - 北京市海淀区尚观培训学校 - Linux培训及嵌入式培训专家 ALL RIGHTS RESERVED

咨询热线:400-700-0056    800-810-0056
在线咨询:QQ:814996026    院校洽谈合作专线:13911737012(张老师)
京ICP备09018548号 | Linux就业信息 | 免责声明 | 隐私声明 |