如何在linux的linux vi编辑器器下删除前N行

linux下vi文本编辑器初学者使用教程_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
linux下vi文本编辑器初学者使用教程
上传于|0|0|文档简介
&&linux下vi编辑器的使用教程,极其适合初学者!
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢vi 编辑器的用法(超详细的资料整理)
作者:佚名
字体:[ ] 来源:互联网 时间:06-08 12:01:04
vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。当然,对UNIX系统略有所知的人,或多或少都觉得vi超级难用,但vi是最基本的编辑器,学好了vi,以后在UNIX世界里必将畅行无阻、游刃有余,因为其他几种文本处理器并非UNIX标准配备
在UNIX下,vi是标准的文本编辑器之一。几乎任何一部UNIX系统都把vi编辑器作为最最基本的&软件&而被默认组装在系统中。在PC-UNIX中,即使是选择最小程度安装的系统,vi编辑器也会被默认安装在系统中。  提到vi,就不得不提一下UNIX下另一功能强大的编辑器 - Emacs 。好多人喜欢拿Emacs和vi来比较,但笔者认为,Emacs 和 vi 没有可比性。vi的轻量级特性,使得它成为系统管理方面的首选工具;而Emacs的功能强大的特性,使得它成为系统开发方面的首选工具。如果用Emacs 来做系统管理,它庞大的体积和对于系统资源的耗费(相对于vi),势必会影响系统管理的效率;然而,如果用vi来搞软件开发,它有些面向于开发的功能方面 的不完备,也势必会影响开发的灵活性。在这里,我们的目标是建立和管理一台服务器,所以,我们选择使用vi编辑器来完成服务器的配置工作。 由于本站所有服务器设置相关的修改工作,都是通过vi来完成的,所以准备通过本站介绍的各种方法构建服务器的话,请务必掌握vi的使用方法。否则将很难顺利的进行。如果您使用其它编辑器(比如Emacs)可以在安装过程中或通过yum命令在线安装。
用法   习惯于Microsoft Windows下GUI方式编辑器的朋友,刚刚接触vi肯定会有&排斥反应&的,这一点只能奉劝稍安毋躁&&当你习惯于vi之后,你会发现它既精确又有秩序,而且重要的是它对于要编辑的对象极富针对性。
  上图为在CUI下输入&vi&命令后,vi被启动的状态。  或者输入一个已存在的文件的路径,来打开一个已经存在的文本文件。(这里以用root用户登录系统,后输入&vi /etc/X11/xorg.conf&为例。)  上图为用vi打开/etc/X11/xorg.conf后的状态。光标位于左上第一个字符下滑线的位置。  vi和其他编辑器最不一样的地方莫过于它把编辑、处理等等的操作分离开来,形成性质不同的3种操作模式,他们分别为&命令模式&、&插入模式&、&ex模式&。  在Windows下通常使用的记事本等等的编辑器在打开文件的时候,光标已经在处于输入等待的状态,也就是说,我们打开文件时就可以对文件进行编辑。 比如,我们要输入新的文本,或者复制一段文本,所有操作的前提,只要编辑器是被打开的状态,操作就是可能的。  但在vi下,为了增强对将要处理的文本的针对性,文本输入、复制等等不同的操作,是被分离开来的,比如文本输入的模式叫做&插入模式&,在插入模式 下,我们可以用和Windows下一样的操作方法来对文本进行输入、编辑等等的操作,但是复制等等非编辑的操作,在插入模式下不能够完成,而需要切换到相 应的模式下用相应的命令来完成。在这里,还是首先对重要的vi的模式进行说明。 ★ vi的模式(命令模式、插入模式、ex模式)1)命令模式:  在我们刚刚通过vi新建或打开一个已经存在的文件时,首先默认被读取的模式就是&命令模式&,命令模式的特征就是,在编辑器窗口左下角的位置上没有任何的提示标语。  在这个模式下,如果不通过相应的命令,我们无法输入新的文本到这个文件中。这里建议新接触刚刚接触vi的朋友在用vi打开一个文件时不要处于心切而乱 按键盘试图输入一些文本到文件中,因为命令模式所谓的&命令&,并不是我们在命令行提时下输入的过程诸如&ls -& 回车&等等形式的命令。确切说vi命令模式下的命令,只是计算机键盘上的某个按键或某些按键的组合,当我们在命令模式下敲下键盘一个按键的时候,相应命令就已经被执行。   在这里,首先介绍移动光标的命令。通常光标的移动可以通过键盘右边的方向键,但是由于每次移动光标,手都要大幅度的移动到键盘右边,这样使用vi是体现不出效率的,所以建议使用vi固有的命令(键)来控制光标的移动。  光标的移动命令如下所示:  向右移动 --& l  向左移动 --& h   向下移动 --& j  向上移动 --& k   如上所示,例如要向右移动光标8个字符的距离,只要在键盘上敲 l 键8次即可;向下移动3行的距离,只要在键盘上敲 j 键3次即可&&也就是说,在vi命令模式中通过这几个键(命令)来控制光标的移动。  其次就是文本删除的命令。在Windows下大多数编辑器在删除文本时只要连续按[Backspace]键即可。但由于在vi中,插入模式和命令模式是分离开来的,所以在命令模式下需要通过命令(按键)来删除文本,而不是直接按[Backspace]键。  文本删除的命令如下所示:  删除光标所在位置的字符 --& x  删除光标所在的行 --& dd(敲 d 两次)   如上所示,例如要删除从光标位置起向右的3个字符,只要在键盘上敲 x 键3次即可;要删除光标所在的行,只要敲 dd (连续敲d键两次),光标所在行的所有字符以及行将会被删除。  再次,当编辑完了一个文档,想要保存后退出的时候的命令为&ZZ&(大写、连续敲2次)。   保存并退出文档:  保存当前修改并退出 --& ZZ   另外,vi还有一些编辑性质的命令,一并总结如下  具有编辑性质的有用的命令:  撤销上一步操作 --& u  移动光标到行首 --& 0 (数字0)  移动光标到行末 --& $  移动光标到当前页最顶行 --& H  移动光标到当前页最底行 --& L  向前翻一页(Page Up) --& Ctrl + f  向后翻一页(Page Down) --& Ctrl + b   还有在服务器配置中使用vi时,频繁用到的就是vi的搜索功能。在vi命令行的状态下,键入&/&(斜 线)后,vi底部出现&/&,并处于输入等待状态,这时候输入要查找的文字或文字列,然后按回车就可以找到相应的文字或文字列。当有多个对象存在时,敲 &n&(小写)键为查找下一个目标,敲&N&为查找上一个目标。vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。当然,对UNIX系统略有所知的人,或多或少都觉得vi超级难用,但vi是最基本的编辑器,学好了vi,以后在UNIX世界里必将畅行无阻、游刃有余,因为其他几种文本处理器并非UNIX标准配备。若其它的Linux机器里没有安装joe或pico,如果不会使用vi,那可能就真的没辄了。&vi编辑器有3种模式:命令模式、输入模式、末行模式。掌握这三种模式十分重要:&命令模式:vi启动后默认进入的是命令模式,从这个模式使用命令可以切换到另外两种模式,同时无论在任何模式下只要按一下[Esc]键都可以返回命令模式。在命令模式中输入字母i或o或a,就可以进入vi的输入模式编辑文件。&输入模式:在这个模式中我们可以编辑、修改、输入等编辑工作,在编辑器最后一行显示一个&--INSERT--&标志着vi进入了输入模式。当我们完成修改输入等操作的时候我们需要保存文件,这时我们需要先返回命令模式,在进入末行模式保存。&末行模式:在命令模式输入&:&即可进入该模式,在末行模式中有好多好用的命令。&下面介绍vi常用的命令操作&进入输入模式命令&i&&&&&&&&&&&&&& 在光标 左侧输入正文[常用]a&&&&&&&&&&&&& 在光标 右侧输入正文[常用]o&&&&&&&&&&&&& 小写字符o, 在光标所在行的 下一行增添新行O&&&&&&&&&&&&& 大写字符O, 在光标所在行的 上一行增添新行I&&&&&&&&&&&&&& 在光标 所在行的开头输入正文A&&&&&&&&&&&&& 在光标 所在行的末尾输入正文上面介绍了几种切换到插入模式的简单方法。另外还有一些命令,它们允许在进入插入模式之前首先删去一段正文,从而实现正文的替换。这些命令包括:s&&&&&&&&&&&&&&&& 用输入的正文替换光标所指向的字符[常用]ns&&&&&&&&&&&&& 用输入的正文替换光标右侧n 个字符cw&&&&&&&&&&&&& 用输入的正文替换光标右侧的字& [常用]ncw&&&&&&&&&&& 用输入的正文替换光标右侧的n 个字cb&&&&&&&&&&&&& 用输入的正文替换光标左侧的字& [常用]ncb&&&&&&&&&&& 用输入的正文替换光标左侧的 n 个字cd&&&&&&&&&&&&& 用输入的正文替换光标的所在行[常用]ncd&&&&&&&&&&& 用输入的正文替换光标下面的n 行c$&&&&&&&&&&&&& 用输入的正文替换从光标开始到本行末尾的所有字符[常用]c0&&&&&&&&&&&&& 用输入的正文替换从本行开头到光标的所有字符[常用]&r&&&&&&&&&&& 取代光标所在处的字符, 比如c3 表示将光标所在处的字符替换为字符3 [常用]&&R&&&&&&&&&& 取代字符直至按【ESC】为止&按【Esc】键或组合键【ctrl】+[ 退出输入模式&末行模式&w&&&&&&&&&&&&& 保存文件& [常用]&w file&&&&&& 将当前文件的内容保存到file文件&wq&&&&&&&&&& 保存文件并退出vi编辑器[常用]&wq file&&& 将 当前文件的内容写入file 文件,并保持原有文件的内容不变,然后退出vi编辑器(假如当前文件内容有变动但未执行保存操作,那么执行该命令后不会退出vi编辑器)&r file&&&&&&& 读取file 文件的内容,插入当前光标所在行的后面e file&&&&&&& 关闭当前文件,并打开新文件file (如果当前文件内容有变动但未保存,则该命令不会被执行)[常用]f file&&&&&&& 将当前文件重命名为file [常用]f&&&&&&&&&&&&&& 打印当前文件名称和状态,如文件的行数、光标所在的行号等&q&&&&&&&&&&&&& 退出vi编辑器(如果当前文件有改动,则无法退出) [常用]&q!&&&&&&&&&&&& 强制退出vi编辑器(不保存修改)[常用]&#&&&&&&&&&&&&& 将光标移到第#行[常用]&PS:& 关于行号使用的一些技巧:&一般用数值来指定绝对行号;字符&.&表示光标所在行的行号;字符&$&表示文件最后一行的行号,例如:&.+5&&&&&&&&&&&&&&&&& 将光标从当前行往下移动5 行&$&&&&&&&&&&&&&&&&&&&& 将光标移到文件的最后一行&1&&&&&&&&&&&&&&&&&&&& 将光标移到文件的第一行&23w file&&&&&&&& 将文件的第23行写入file文件&3,5w file&&&&&& 将第3 行至第5 行写入file 文件1,.w file&&&&&&& 将第1 行至当前行写入file 文件.,$w file&&&&&&& 将当前行至最后一行写入file 文件.,.+5w file&&& 从当前行开始将6 行内容写入file 文件1,$w file&&&&& 将所有内容写入file 文件,相当于:w file 命令&移动光标的操作&【Home】&& &&&&&&&光标到行首【End】&&&&&&&&&&&&& 光标到行尾【Page Up】&&&&&& 向上翻页&【Page Down】& 向下翻页&【Delect】&&&&&&&&& 删除光标位置的字符【Ctrl】+ f&&&&&&&&& 向前移动一页&【Ctrl】+ b&&&&&&& 向后移动一页&& h&&&&&&&&&&& 光标向左移动一个字符&& [常用]&& j&&&&&&&&&&& 光标向下移动一个字符&& [常用]&& k&&&&&&&&&& 光标向上移动一个字符&& [常用]&& l&&&&&&&&&&& 光标向右移动一个字符&& [常用]&& 数字0&&& 把光标移到行尾& [ 常用]&& $&&&&&&&&&& 把光标移到行首& [ 常用]&&& G&&&&&&&&&& 把光标移到文件的末尾& [ 常用]&& gg&&&&&&&&& 把光标移到文件的开头&& [ 常用]&& w&&&&&&&&&& 把光标移到下一个单词的开头& [ 常用]&& e&&&&&&&&&& 把光标移到当前或下一个单词的字尾& [ 常用]&& b&&&&&&&&&& 把光标移到当前或下一个单词的开头& [ 常用]&& ^&&&&&&&&&& 把光标移到该行的第一个非空白字符(tab,space)&& [ 常用]&& :#&&&&&&&& 把光标移到该行的第#个位置,例如:3, :10&& [ 常用]&& )&&&&&&&&&&& 光标移到句尾& (&&&&&&&&&&& 光标移到句首&& 注: 句子用半角句号后加一个空格(. )分割& }&&&&&&&&&& 光标移到段落结尾& {&& &&&&&&&&光标移到段落开头& 注: 段落以空行分割& nG&&&&&&& 将光标定位到第n行的开头& [ 常用]&& n+&&&&&&& 将光标下移n行&&&&n-&&&&&&&&& 将光标上移n行&&n$&&&&&&&&& 将光标下移n行,并置于行尾&&H&&&&&&&&&& 将光标置于当前屏幕的顶行&&M&&&&&&&&& 将光标置于当前屏幕的中间行&&L&&&&&&&&&&& 将光标置于屏幕的最后行&&&~&&&&&&&&&&& 改变当前字符的大小写&& [ 常用]&&&&&&&&&&&&& 把当前行往右移动8个字符(相当于【tab】键)&&& [ 常用]&&&&&&&&&&&&& 把当前行往左移动8个字符(相当于【Shift】+【tab】) [ 常用]&nz:&&&&&&& 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。&撤销操作&u&&&&&&&&&&& 命令撤销最近一次的操作,可以使用多次来恢复原有的操作&& [ 常用]U&&&&&&&&&& 撤销所有操作.&&&&& &&&&&&&可以恢复对使用u命令的操作&&&&& [ 常用]&复制/删除/粘贴操作x&&&&&&&&&& 删除光标处的单个字符,并把删除后的字符放到缓存区( 实际上删除相当于剪切 )&& [ 常用]nx&&&&&&&& 删除三个字符。 例如, 3x删除光标处向右的三个字符&&&bnx&&&& 把删除的字符放到缓存区b&dw&&&&&&& 删除当前字符到单词尾(包括空格)的所有字符&& [ 常用]&dd&&&&&&& 删除光标所在行& [常用]&&&& [ 常用]ndd&&&&& 删除n行。 例如, 3dd从当前行开始向下删除三行文本& [ 常用]&&bndd&& 把删除的内容放到缓存区b&&&& PS: 如果要删除第m至第n行的内容,可以在末行模式中输入m,nd。比如3,5d表示删除第3~5行& [ 常用]&yy&&&&&&& 复制当前光标所在行的内容到vi缓冲区&&&& [ 常用]nyy&&&&& 复制n行。例如:5yy就是从当前光标所处的行向下复制5行,把复制的内容放到vi缓存区& [常用]&bnyy&& 将复制的内容放到缓存区b . 比如,b3yy 将三行数据存入缓存区b&&& [ 常用]&&&& PS: 如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区& [ 常用]&yw&&&&&& 复制当前光标所在位置到单词尾字符 (不包括空格) 的内容到vi缓存区,相当于复制一个单词& [常用]&nyw&&&& 复制n个单词例如:2yw就是复制两个单词&&bnyw& 例如, 复制n个单词到缓存区b&y$&&&&&&& 复制光标所在位置到行尾内容到缓存区&&&y^&&&&&&& 复制光标所在位置到行首内容到缓存区&&&&p&&&&&&&&& 小写p, 将缓存区的内容粘贴到当前行的下方(与yy配合)& ,或插入到当前光标的下一个位置(与dw, x, y$ , y^ 配合)[常用]&P&&&&&&&&& 大写P,与小写p的作用类似,但粘贴都方向相反&查找与替换&&&&&&& vi的查找与替换功能要再末行模式下完成。&/关键字&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 自上而下查找,比如/work,表示从当前光标处往下查找关键字为work的内容[ 常用]&?关键字&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 自下而上查找 , 比如/work,表示从当前光标处往上查找关键字为work的内容& [ 常用]&PS: 当找到匹配项时,光标会定位在关键词都字符开头。要继续查找下一个匹配项,只需敲入字符n; 要往回查找,敲入N. 可以输入2n往下查找下下一个匹配项&s/old_string/new_string&&&&&&&&&&&&&& 用new_string替换光标所在行中首次出现的old_string&s/old_string/new_string/g&&&&&&&&&& 用new_string替换光标所在行中的所有old_string&m,ns/old_string/new_string/g&& 用new_string替换第m行至第n行的所有old_string [ 常用]&%s/old_string/new_string/g&&&&& 用new_string替换所有的old_string&& [ 常用]&/pattern_address/s/old_string/new_string/g&&& 从当前光标处往下查找与pattern_address匹配的行,然后在该行上用new_string替换掉所有的old_string(实际上,这个命令是由/pattern_address 和/s/old_string/new_string/g组合而成)&g/pattern_address/s/old_string/new_string/g&&& 找出所有与pattern_address匹配的行, 并用new_string替换掉每一行所有的old_string( 注意: 前后两个g的含义是不一样的,前面的g表示对整个文本搜索与pattern_address匹配的行, 后面的g表示针对每一个与pattern_address匹配的行都用new_string替换掉old_string)&&&&& 如果pattern_address和old_string一样,可以简写为g/pattern_address/s//new_string&&&&& 可以在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如:s/old/new/c 或s/old/new/gc&& [ 常用]&&PS: 查找的一些技巧&/str/w file&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 正向搜索,并将第一个包含字符串str 的行写入file 文件/str1/,/str2/w file&&&&&&&&&&&&&&&&&&&&& &&&&&&&&正向搜索,并将包含字符串str1 的行至包含字符串str2 的行写入file 文件&恢复文件vi在编辑某一个文件时,会生成一个临时文件,这个文件以. 开头并以.swp结尾。正常退出该文件自动删除,如果意外退出例如忽然断电,该文件不会删除,我们在下次编辑时可以选择一下命令处理:&O&&&&&&& 只读打开,不改变文件内容E&&&&&&&& 继续编辑文件,不恢复.swp文件保存的内容R&&&&&&& 将恢复上次编辑以后未保存文件内容Q&&&&&&& 退出viD&&&&&&& 删除.swp文件&或者使用vi -r 文件名来恢复未保存的内容
大家感兴趣的内容
12345678910
最近更新的内容1106人阅读
:q! 强行退出(不存盘)
:wq 强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。
:x 写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。
用ESC键只能切换到命令状态
扩展知识:
今天我才知道&:x&和&:wq&的真正区别,如下:
:wq 强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。
:x 写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。
这两者一般情况下没什么不一样,但是在编程方面,对编辑源文件可能会产生重要影响。因为文件即使没有修改,&:wq&强制更新文件的修改时间,这样会让make编译整个项目时以为文件被修改过了,然后就得重新编译链接生成可执行文件。这可能会产生让人误解的后果,当然也产生了不必要的系统资源花销。
更加详细内容:
在 linux 底下最常使用的文书编辑器为 vi ,请问如何进入编辑模式?
在一般模式底下输入: i, I, a, A 为在本行当中输入新字符;(出现 –Insert- )
在一般模式当中输入: o, O 为在一个新的一行输入新字符;
在一般模式当中输入: r, R 为取代字符!(左下角出现 –Replace-)
如何由编辑模式跳回一般模式?
若上下左右键无法使用时,请问如何在一般模式移动光标?
h, j, k, l
若 [pagedown] [ pageup] 在一般模式无法使用时,如何往前或往后翻一页?
[Ctrl] + [f]
[Ctrl] + [b]
如何到本档案的最后一行、第一行;本行的第一个字符、最后一个字符?
G, 1G, 0, $
如何删除一行、n行;如何删除一个字符?
dd, ndd, x 或 X (dG 及 d1G 分别表示删除到页首及页尾)
如何复制一行、n行并加以贴上?
yy, nyy, p 或 P
如何搜寻 string 这个字符串?
?string (往前搜寻)
/string (往后搜寻)
如何取代 word1 成为 word2,而若需要使用者确认机制,又该如何?
:1,$s/word1/word2/g 或
:1,$s/word1/word2/gc (需要使用者确认)
如何读取一个档案 filename 进来目前这个档案?
:r filename
如何另存新档成为 newfilename?
:w newfilename
如何存盘、离开、存盘后离开、强制存盘后离开?
:w; :q: :wq; :wq!
如何设定与取消行号?
请教各位linux大侠,如何把交叉编译器的路径写入到用户目录的.barsrc 文件中?
我看到参考文档里说用户可把交叉编译器的路径写入到用户目录的.barsrc文件中,那么系统启动的时候自动完成环境变量的添加了,请指点如何写入,是不是建一个.barsrc结尾的文件,然后把exportPATH=/usr/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux/bin/:$PATH这一串写在里面呢,.barsrc应该些什么呢?
.bashrc在/root目录下面,ls -a 可以看到的。 vi/root/.bashrc把这句话添进去,保存退出。然后source /root/.bashrc让它立即生效,就Ok了。
cd echoPATH=/usr/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux/bin/:$PATH&&.bashrc
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:50378次
排名:千里之外
转载:86篇
(1)(2)(1)(1)(2)(6)(2)(6)(3)(1)(1)(5)(6)(11)(6)(15)(8)(16)

我要回帖

更多关于 linuxvi编辑器 的文章

 

随机推荐