




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
vi 常用命令 2009-10-02 11:15Vi 常用命令(1) 进入 vi 的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第 n 行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与 pattern 匹配的串处 vi -r filename :在上次正用 vi 编辑时发生系统崩溃,恢复 filename vi filename.filename :打开多个文件,依次编辑 (2) 移动光标 vi 可以直接用键盘上的光标键来上下左右移动,但正规的 vi 是用小写英文字母 h、j、k、l,分别控制光标左、下、上、右移一格。 按 Ctrl+B:屏幕往后移动一页。常用 按 Ctrl+F:屏幕往前移动一页。常用 按 Ctrl+U:屏幕往后移动半页。 按 Ctrl+D:屏幕往前移动半页。 按 0 (数字零) :移动文章的开头。常用 按 G:移动到文章的最后。常用 按 w:光标跳到下个 word 的开头。常用 按 e:光标跳到下个 word 的字尾。 按 b:光标回到上个 word 的开头。按 $:移到光标所在行的行尾。常用 按 :移到该行第一个非空白的字符。按 0:移到该行的开头位置。常用 按 #:移到该行的第#个位置,例:51、121。常用 (3) 删除文字 x:每按一次删除光标所在位置的后面一个字符。超常用 #x:例如,6x 表删除光标所在位置的后面 6 个字符。常用 X:大字的 X,每按一次删除光标所在位置的前面一个字符。 #X:例如,20X 表删除光标所在位置的前面 20 个字符。 dd:删除光标所在行。超常用 #dd:例如,6dd 表删除从光标所在的该行往下数 6 行之文字。常用 (4) 复制 yw:将光标所在处到字尾的字符复制到缓冲区中。 (想在和#x、#X 的功能相反) p:将缓冲区内的字符粘贴到光标所在位置(指令yw与p 必须搭配使用) 。 yy:复制光标所在行。超常用p:复制单行到您想粘贴之处。 (指令yy与p必须搭配 使用) #yy:如:6yy 表示拷贝从光标所在的该行往下数 6 行之文字。常用 p:复制多行到您想粘贴之处。 (指令#yy与p必须搭配使用) ayy:将复制行放入 buffer a, vi 提供 buffer 功能,可将常用的数据存在 buffer ap:将放在 buffer a 的数据粘贴。 b3yy:将三行数据存入 buffer b。 b3p:将存在 buffer b 的资料粘贴 (5) 取代 r: 取代光标所在处的字符:常用 R:取代字符直到按 Esc 为止。 (6) 复原(undo)上一个指令 u:假如您误操作一个指令,可以马上按 u,回复到上一个操作。超常用 .: .可以重复执行上一次的指令。 (7) 更改 cw:更改光标所在处的字到字尾$处。 c#w:例如,c3w 代表更改 3 个字。 (8) 跳至指定行 Ctrl+G:列出光标所在行的行号。#G:例如,15G,表示移动光标至文章的第 15 行行首。常 用 命令行指令简介读者您要使用命令行指令之前, 请记得先按Esc键确定您已经处于Command mode 下后,再按冒号 “: ”或“/”或“?”三键的其中一键进入 Last line mode。 1列出行号 set nu: 输入“set nu”后,会在文章的每一行前面列出行号。 2跳到文章的某一行 #:井号代表一个数字,在 Last line mode 提示符号“: ”前输入数字,再按 Enter 就会跳到该行了,如:15Enter就会跳到文章的第 15 行。常用 3寻找字符串 /关键字:先按/,再输入您想寻找的字,如果第一次找的关键字不是您相尽可能的,可以一 直按 n 会往下寻找到您要的关键字为止。?关键字:先按?,再输入您想寻找的字,如果第一次 找的 关键字不是您想要的,可以按 n 会往前寻找到您要的关键字为止。 4取代字符串 1, $s/string/replae/g:在 last line mode 输入“1,$s/string/replace/g”会将全文的 string 字符串取代为 replace 字符串,其中 1,$s 就是指搜寻区间为文章从头至尾的意思,g 则 是 表示全部取代不必确认。%s/string/replace/c:同样会将全文的 string 字符串取代为 replace 字符串,和上面指令不同的地方是,%s 和 1,$s 是相同的功能,c 则是表示要替代之前必须 再次确认是否取代。 1,20s/string/replace/g:将 1 至 20 行间的 string 替代为 relpace 字符串。 5存文件 w:在命令行提示符号“: ”前按 w 即可将文件存起来。超常用 #,# w filename:如果您想摘取文章的某一段,存成另一个文件,可用这个指令#代表行号, 例如 30,50 w nice,将您正在编辑文章的第 3050 行存成 nice 这个文件。 6离开 q:按 q 就离开,有时如果无法离开 vi,可搭配“! :强置离开 vi,如“q! ” qw:一般建议离开时,搭配 w 一起使用,如此离开时还可存文件。 光标控制命令 命令光标移动 h 或h向左移一个字符 j 或j 或n向下移一行 k 或p向上移一行 l 或空格向右移一个字符 G移到文件的最后一行 nG移到文件的第 n 行 w移到下一个字的开头 W移到下一个字的开头,忽略标点符号 b移到前一个字的开头 B移到前一个字的开头,忽略标点符号 L移到屏幕的最后一行 M移到屏幕的中间一行 H移到屏幕的第一行 e移到下一个字的结尾 E移到下一个字的结尾,忽略标点符号 (移到句子的开头 )移到句子的结尾 移到段落的开头 移到下一个段落的开头 0 或|移到当前行的第一列 n|移到当前行的第 n 列 移到当前行的第一个非空字符 $移到当前行的最后一个字符 +或 return移到下一行的第一个字符 -移到前一行的第一个非空字符 在 vi 中添加文本 命令插入动作 a在光标后插入文本 A在当前行插入文本 i在光标前插入文本 I在当前行前插入文本 o在当前行的下边插入新行 O在当前行的上边插入新行 :r file读入文件 file 内容,并插在当前行后 :nr file读入文件 file 内容,并插在第 n 行后 escape回到命令模式 v char插入时忽略 char 的指定意义,这是为了插入特殊字符 在 vi 中删除文本 命令删除操作 x删除光标处的字符,可以在 x 前加上需要删除的字符数目 nx从当前光标处往后删除 n 个字符 X删除光标前的字符,可以在 X 前加上需要删除的字符数目 nX从当前光标处往前删除 n 个字符 dw删至下一个字的开头 ndw从当前光标处往后删除 n 个字 dG删除行,直到文件结束 dd删除整行 ndd从当前行开始往后删除 db删除光标前面的字 ndb从当前行开始往前删除 n 字 :n,md从第 m 行开始往前删除 n 行 d 或 d$从光标处删除到行尾 dcursor_command删除至光标命令处,如 dG 将从当产胆行删除至文件的末尾 h 或 backspace插入时,删除前面的字符 w插入时,删除前面的字 修改 vi 文本 每个命令前面的数字表示该命令重复的次数 命令替换操作 rchar用 char 替换当前字符 R text escape用 text 替换当前字符直到换下 Esc 键 stext escape用 text 代替当前字符 S 或 cctext escape用 text 代替整行 cwtext escape将当前字改为 text Ctext escape将当前行余下的改为 text cG escape修改至文件的末尾 ccursor_cmd text escape从当前位置处到光标命令位置处都改为 text 在 vi 中查找与替换 命令查找与替换操作 /text在文件中向前查找 text ?text在文件中向后查找 text n在同一方向重复查找 N在相反方向重复查找 ftext在当前行向前查找 text Ftext在当前行向后查找 text ttext在当前行向前查找 text,并将光标定位在 text 的第一个字符 Ttext在当前行向后查找 text,并将光标定位在 text 的第一个字符 :set ic查找时忽略大小写 :set noic查找时对大小写敏感 :s/oldtext/newtext用 newtext 替换 oldtext :m,ns/oldtext/newtext在 m 行通过 n,用 newtext 替换 oldtext 重复前面的 f、F、t 或 T 查找命令 np取回最后第 n 次的删除(缓冲区中存有一定次数的删除内容,一般为 9) n重复前面的/或?查找命令 N以相反方向重复前面的/或?命令 保存文本和退出 vi 命令保存和/或退出操作 :w保存文件但不退出 vi :w file将修改保存在 file 中但不退出 vi :wq 或 ZZ 或:x保存文件并退出 vi :q!不保存文件,退出 vi :e!放弃所有修改,从上次保存文件开始再编辑 vi 中的选项 选项作用 :set all打印所有选项 :set nooption关闭 option 选项 :set nu每行前打印行号 :set showmode显示是输入模式还是替换模式 :set noic查找时忽略大小写 :set list显示制表符(I)和行尾符号 :set ts=8为文本输入设置 tab stops :set window=n设置文本窗口显示 n 行 vi 的状态 选项作用 :.=打印当前行的行号 :=打印文件中的行数 g显示文件名、当前的行号、文件的总行数和文件位置的百分比 :l使用字母l来显示许多的特殊字符,如制表符和换行符 在文本中定位段落和放置标记 选项作用 在第一列插入来定义一个段落 回到段落的开头处 向前移到下一个段落的开头处 m(a-z)用一个字母来标记当前位置,如用 mz 表示标记 z (a-z)将光标移动到指定的标记,如用z 表示移动到 z 在 vi 中连接行 选项作用 J将下一行连接到当前行的末尾 nJ连接后面 n 行 光标放置与屏幕调整 选项作用 H将光标移动到屏幕的顶行 nH将光标移动到屏幕顶行下的第 n 行 M将光标移动到屏幕的中间 L将光标移动到屏幕的底行 nL将光标移动到屏幕底行上的第 n 行 e(ctrl+e)将屏幕上滚一行 y将屏幕下滚一行 u将屏幕上滚半页 d将屏幕下滚半页 b将屏幕上滚一页 f将屏幕下滚一页 l重绘屏幕 z-return将当前行置为屏幕的顶行 nz-return将当前行下的第 n 行置为屏幕的顶行 z.将当前行置为屏幕的中央 nz.将当前行上的第 n 行置为屏幕的中央 z-将当前行置为屏幕的底行 nz-将当前行上的第 n 行置为屏幕的底行 vi 中的 shell 转义命令 选项作用 :!command执行 shell 的 command 命令,如:!ls :!执行前一个 shell 命令 :r!command读取 command 命令的输入并插入,如:r!ls 会先执行 ls,然后读入内容 :w!command将当前已编辑文件作为 command 命令的标准输入并执行 command 命 令,如:w!grep all :cd directory将当前工作目录更改为 directory 所表示的目录 :sh将启动一个子 shell,使用d(ctrl+d)返回 vi :so file在 shell 程序 file 中读入和执行命令 vi 中的宏与缩写 (避免使用控制键和符号,不要使用字符 K、V、g、q、v、*、=和功能键) 选项作用 :map key command_seq定义一个键来运行 command_seq,如:map e ea,无论什么时候 都可以 e 移到一个字的末尾来追加文本 :map在状态行显示所有已定义的宏 :umap key删除该键的宏 :ab string1 string2定义一个缩写,使得当插入 string1 时,用 string2 替换 string1。当要插 入文本时,键入 string1 然后按 Esc 键,系统就插入了 string2 :ab显示所有缩写 :una string取消 string 的缩写 在 vi 中缩进文本 选项作用 i(ctrl+i)或 tab插入文本时,插入移动的宽度,移动宽度是事先定义好的 :set ai打开自动缩进 :set sw=n将移动宽度设置为 n 个字符 n使 n 行都向右移动一个宽度,例如 3就将接下来的三行每行都向右移动 一个移动宽度 vi 编辑器是所有 Unix 及 Linux 系统下标准的编辑器,它的强大不逊色于任何最新的文本编 辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对 Unix 及 Linux 系统的任 何版本,vi 编辑器是完全相同的,因此您可以在其他任何介绍 vi 的地方进一步了解它。Vi 也是 Linux 中最基本的文本编辑 器,学会它后,您将在 Linux 的世界里畅行无阻。 1、vi 的基本概念 基本上 vi 可以分为三种状态,分别是命令模式(command mode) 、插入模式(Insert mode) 和底行模式(last line mode) ,各模式的功能区分如下: 1) 命令行模式 command mode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入 Insert mode 下,或者 到 last line mode。 2) 插入模式(Insert mode) 只有在 Insert mode 下,才可以做文字输入,按ESC键可回到命令行模式。 3) 底行模式(last line mode) 将文件保存或退出 vi,也可以设置编辑环境,如寻找字符串、列出行号等。 不过一般我们在使用时把 vi 简化成两个模式,就是将底行模式(last line mode)也算入命令 行模式 command mode) 。 2、vi 的基本操作 a) 进入 vi 在系统提示符号输入 vi 及文件名称后,就进入 vi 全屏幕编辑画面: $ vi myfile 不过有一点要特别注意,就是您进入 vi 之后,是处于命令行模式(command mode) ,您 要切换到插入模式(Insert mode) 才能够输入文字。初次使用 vi 的人都会想先用上下左 右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入 vi 后,先不要乱动,转 换到 插入模式(Insert mode) 再说吧! b) 切换至插入模式(Insert mode)编辑文件 在 命令行模式 (command mode) 下按一下字母 i 就可以进入 插入模式 (Insert mode) , 这时候你就可以开始输入文字了。 c) Insert 的切换 您目前处于插入模式(Insert mode) ,您就只能一直输入文字,如果您发现输错了字!想 用光标键往回移动, 将该字删除, 就要先按一下 ESC 键转到 命令行模式 (command mode) 再删除文字。 d) 退出 vi 及保存文件 在命令行模式(command mode) 下,按一下: 冒号键进入Last line mode ,例如: : w filename (输入 w filename将文章以指定的文件名 filename 保存) : wq (输入wq ,存盘并退出 vi) : q! (输入 q!, 不存盘强制退出 vi) 3、命令行模式(command mode)功能键 1). 插入模式 按i切换进入插入模式insert mode ,按“i”进入插入模式后是从光标当前位置开始输 入文件; 按a进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字; 按o进入插入模式后,是插入新的一行,从行首开始输入文字。 2). 从插入模式切换为命令行模式 按ESC键。 3). 移动光标 vi 可以直接用键盘上的光标来上下左右移动,但正规的 vi 是用小写英文字母h 、 j 、 k 、 l ,分别控制光标左、下、上、右移一格。 按ctrl+b :屏幕往“后”移动一页。 按ctrl+f :屏幕往“前”移动一页。 按ctrl+u :屏幕往“后”移动半页。 按ctrl+d :屏幕往“前”移动半页。 按数字0 :移到文章的开头。 按G :移动到文章的最后。 按$ :移动到光标所在行的“行尾” 。 按 :移动到光标所在行的“行首” 按w :光标跳到下个字的开头 按e :光标跳到下个字的字尾 按b :光标回到上个字的开头 按#l :光标移到该行的第#个位置,如:5l,56l。 4). 删除文字 x :每按一次,删除光标所在位置的“后面”一个字符。 #x :例如, 6x表示删除光标所在位置的“后面”6 个字符。 X :大写的 X,每按一次,删除光标所在位置的“前面”一个字符。 #X :例如, 20X表示删除光标所在位置的“前面”20 个字符。 dd :删除光标所在行。 #dd :从光标所在行开始删除#行 5). 复制 yw :将光标所在之处到字尾的字符复制到缓冲区中。 #yw :复制#个字到缓冲区 yy :复制光标所在行到缓冲区。 #yy :例如, 6yy表示拷贝从光标所在的该行“往下数”6 行文字。 p :将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与 “p”配合才能完成复制与粘贴功能。 6). 替换 r :替换光标所在处的字符。 R :替换光标所到之处的字符,直到按下ESC键为止。 7). 回复上一次操作 u :如果您误执行一个命令,可以马上按下u ,回到上一个操作。按多次“u”可以执 行多次回复。 8). 更改 cw :更改光标所在处的字到字尾处 c#w :例如, c3w表示更改 3 个字 9). 跳至指定的行 ctrl+g列出光标所在行的行号。 #G :例如, 15G ,表示移动光标至文章的第 15 行行首。 4、Last line mode 下命令简介 在使用last line mode之前,请记住先按ESC键确定您已经处于command mode下 后,再按: 冒号即可进入last line mode 。 A) 列出行号 set nu :输入set nu后,会在文件中的每一行前面列出行号。 B) 跳到文件中的某一行 # : #号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入 数字 15,再回车,就会跳到文章的第 15 行。 C) 查找字符 /关键字 :先按/键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的, 可以一直按n会往后寻找到您要的关键字为止。 ?关键字 :先按?键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的, 可以一直按n会往前寻找到您要的关键字为止。 D) 保存文件 w :在冒号输入字母w就可以将文件保存起来。 E) 离开 vi q :按q就是退出,如果无法离开 vi,可以在q后跟一个!强制离开 vi。 wq :一般建议离开时,搭配w一起使用,这样在退出的时候还可以保存文件。 5、vi 命令列表 1、下表列出命令模式下的一些键的功能: h 左移光标一个字符 l 右移光标一个字符 k 光标上移一行 j 光标下移一行 光标移动至行首 0 数字“0” ,光标移至文章的开头 G 光标移至文章的最后 $ 光标移动至行尾 Ctrl+f 向前翻屏 Ctrl+b 向后翻屏 Ctrl+d 向前翻半屏 Ctrl+u 向后翻半屏 i 在光标位置前插入字符 a 在光标所在位置的后一个字符开始增加 o 插入新的一行,从行首开始输入 ESC 从输入状态退至命令状态 x 删除光标后面的字符 #x 删除光标后的个字符 X (大写 X),删除光标前面的字符 #X 删除光标前面的#个字符 dd 删除光标所在的行 #dd 删除从光标所在行数的#行 yw 复制光标所在位置的一个字 #yw 复制光标所在位置的#个字 yy 复制光标所在位置的一行 #yy 复制从光标所在行数的#行 p 粘贴 u 取消操作 cw 更改光标所在位置的一个字 #cw 更改光标所在位置的#个字 2、下表列出行命令模式下的一些指令 w filename 储存正在编辑的文件为 filename wq filename 储存正在编辑的文件为 filename,并退出 vi q! 放弃所有修改,退出 vi set nu 显示行号 /或? 查找,在/后输入要查找的内容 n 与/或?一起使用, 如果查找的内容不是想要找的关键字, 按 n 或向后 (与/联用) 或向前 (与? 联用)继续查找,直到找到为止。 对于第一次用 vi,有几点注意要提醒一下: 1、 用 vi 打开文件后, 是处于 命令行模式 (command mode) , 您要切换到 插入模式 (Insert mode) 才能够输入文字。切换方法:在命令行模式(command mode) 下按一下字母i 就可以进入插入模式(Insert mode) ,这时候你就可以开始输入文字了。 2、编辑好后,需从插入模式切换为命令行模式才能对文件进行保存,切换方法:按ESC 键。 3、保存并退出文件:在命令模式下输入:wq 即可! (别忘了 wq 前面的:) linux vi 命令简介 linux vi 命令是“Visual interface”的简称,它在 Linux 上的地位就仿佛 Edit 程序在 DOS 上一 样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己 的需要对其进行定制,这是其他编辑程序所没有的。 linux vi 命令不是一个排版程序,它不象 Word 或 WPS 那样可以对字体、格式、段落等其他 属性进行编排,它只是一个文本编辑程序。 linux vi 命令没有菜单,只有命令,且命令繁多。Vi 有三种基本工作模式:命令行模式、文 本输入模式和末行模式。 命令行模式 任何时候, 不管用户处于何种模式, 只要按一下键, 即可使 linux vi 命令行模式; 我们在 shell 环境(提示符为$)下输入启动 linux vi 命令,进入编辑器时,也是处于该模式下。 在该模式下,用户可以输入各种合法的 linux vi 命令,用于管理自己的文档。此时从键盘上 输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的 linux vi 命令,则 linux vi 命令在接受用户命令之后完成相应的动作。 但需注意的是, 所输入的命令并不在屏幕上显示 出来。若输入的字符不是 Vi 的合法命令,Vi 会响铃报警。 文本输入模式 在命令模式下输入插入命令 i、附加命令 a 、打开命令 o、修改命令 c、取代命令 r 或替换命 令 s 都可以进入文本输入模式。在该模式下,用户输入的任何字符都被 Vi 当做文件内容保 存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键即可。 末行模式 末行模式也称 ex 转义模式。 linux vi 命令和 Ex 编辑器的功能是相同的,二者主要区别是用户界面。在 Vi 中,命令通常是 单个键,例如 i、a、o 等;而在 Ex 中,命令是以按回车键结束的正文行。linux vi 命令有一 个专门的“转义”命令,可访问很多面向行的 Ex 命令。在命令模式下,用户按“:”键即可 进入末行模式下,此时 linux vi 命令会在显示窗口的最后一行(通常也是屏幕的最后一行) 显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模 式下执行的(如把编辑缓冲区的内容写到文件中等) 。末行命令执行完后,linux vi 命令自动 回到命令模式。例如: :1,$s / A / a / g 则从文件第一行至文件尾将大写 A 全部替换成小写 a。 若在末行模式下输入命令过程中改变了主意, 可按键, 或用退格键将输入的命令全部删除之 后,再按一下退格键,即可使 linux vi 命令回到命令模式下。 如果要从命令模式转换到编辑模式,可以键入命令 a 或者 i;如果需要从文本模式返回,则 按 Esc 键即可。在命令模式下输入“:”即可切换到末行模式,然后输入命令。 linux vi 命令的进入与退出 linux 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 ; k3 ; k+) add( ); add( ) static int x=0; x+ ; printf( “x = %dn”, x); “ example.c” New File 注意,在这里我们为了节省篇幅起见,屏幕只显示 15 行。事实上,初始的显示行数与用户 所用终端有关,一般的 CRT 终端可显示 25 行。在窗口系统中,显示行数与运行 linux vi 命令 的那个窗口有关。然而我们可以对显示行数进行设置。例如,在能显示 25 行的 CRT 终端上, 让 Vi 只显示 15 行。设置的方法将在本节后面介绍。 当用 linux vi 命令建立一个新文件时,在进入 linux vi 命令中也可以不给出文件名,当编辑完 文件需要保存数据时,再由用户指定文件名。 进入 linux vi 命令时,用户不仅可以指定一个待编辑的文件名,而且还有许多附加操作。 如果希望在进入 linux vi 命令之后,光标处于文件中特定的某行上,可在 linux vi 命令后加上 任选项+n,其中 n 为指定的行数。 例 3 键入命令: $ vi +5 example1.c 后,屏幕显示如下: #include main ( ) int k ; for ( k=0 ; k3 ; k+) add( ); add( ) static int x=0; x+ ; printf( “x = %dn”, x); “ example.c” 12 lines, 125 characters 光标将位于文件 example1.c 中的第 5 行上。 如果希望在进入 linux vi 命令之后光标处于文件最末行,则只需把命令中附加项“+”后面的 数字 n 省略掉即可。 在进入 linux vi 命令时,除了可以指定一个光标起始行号之外,还可以在命令中指定一个模 式串,此时在进入 linux vi 命令后,光标就处于文件中第一个与指定模式串相匹配的那行上。 例 4 键入命令: $ vi +/int example1.c 屏幕显示如下: #include main ( ) int k ; for ( k=0 ; k3 ; k+) add( ); add( ) static int x=0; x+ ; printf( “x = %dn”, x); “ example.c” 12 lines, 125 characters 光标将位于文件 example1.c 中的第 3 行上。 使用 linux vi 命令可以同时编辑多个文件,只要在进入 linux vi 命令的命令中写入所要操作的 文件即可,还可以使用通配符。 例 5 键入命令: $ vi *.cat 就可以编辑所有后缀为 cat 的文件了。当然,您还可以使用 shell 中内置的模式匹配来装载 文件,这样会更富技巧性。一旦您在命令行中包含了所有的待编辑文件名,就可以在 linux vi 命令中方便地移来移去。 退出 Vi 当编辑完文件,准备退出 Vi 返回到 shell 时,可以使用以下几种方法之一。 在命令模式中,连按两次大写字母 Z,若当前编辑的文件曾被修改过,则 Vi 保存该文件后退 出,返回到 shell;若当前编辑的文件没被修改过,则 Vi 直接退出, 返回到 shell。 在末行模式下,输入命令:w linux vi 命令保存当前编辑文件,但并不退出,而是继续等待用户输入命令。在使用 w 命令 时,可以再给编辑文件起一个新的文件名。 例 6 :w newfile 此时 Vi 将把当前文件的内容保存到指定的 newfile 中,而原有文件保持不变。若 newfile 是 一个已存在的文件,则 Vi 在显示窗口的状态行给出提示信息: File exists (use ! to override) 此时,若用户真的希望用文件的当前内容替换 newfile 中原有内容,可使用命令 :w! newfile 否则可选择另外的文件名来保存当前文件。 在末行模式下,输入命令:q 系统退出 linux vi 命令返回到 shell。若在用此命令退出 Vi 时,编辑文件没有被保存,则 Vi 在显示窗口的最末行显示如下信息: No write since last change (use ! to overrides) 提示用户该文件被修改后没有保存,然后 linux vi 命令并不退出,继续等待用户命令。若用 户就是不想保存被修改后的文件而要强行退出 linux vi 命令时,可使用命令:q! linux vi 命令放弃所作修改而直接退到 shell 下。 在末行模式下,输入命令:wq linux vi 命令将先保存文件,然后退出 linux vi 命令返回到 shell。 在末行模式下,输入命令:x 该命令的功能同命令模式下的 ZZ 命令功能相同。 linux vi 命令中的行号 linux vi 命令中的许多命令都要用到行号及行数等数值。若编辑的文件较大时,自己去数是 非常不方便的。为此 linux vi 命令提供了给文本加行号的功能。这些行号显示在屏幕的左边, 而相应行的内容则显示在行号之后。 使用的命令为:在末行方式下输入命令: :set number 需要说明的是,这里加的行号只是显示给用户看的,它们并不是文件内容的一部分。 linux vi 命令一览表 2009 年 08 月 31 日 星期一 22:52 进入 vi 的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第 n 行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与 pattern 匹配的串处 vi -r filename :在上次正用 vi 编辑时发生系统崩溃,恢复 filename vi filename.filename :打开多个文件,依次进行编辑 移动光标类命令/b h :光标左移一个字符 l :光标右移一个字符 space:光标右移一个字符 Backspace:光标左移一个字符 k 或 Ctrl+p:光标上移一行 j 或 Ctrl+n :光标下移一行 Enter :光标下移一行 w 或 W :光标右移一个字至字首 b 或 B :光标左移一个字至字首 e 或 E :光标右移一个字至字尾 ) :光标移至句尾 ( :光标移至句首 :光标移至段落开头 :光标移至段落结尾 nG:光标移至第 n 行首 n+:光标下移 n 行 n-:光标上移 n 行 n$:光标移至第 n 行尾 H :光标移至屏幕顶行 M :光标移至屏幕中间行 L :光标移至屏幕最后行 0: (注意是数字零)光标移至当前行首 $:光标移至当前行尾 屏幕翻滚类命令 Ctrl+u:向文件首翻半屏 Ctrl+d:向文件尾翻半屏 Ctrl+f:向文件尾翻一屏 Ctrlb;向文件首翻一屏 nz:将第 n 行滚至屏幕顶部,不指定 n 时将当前行滚至屏幕顶部。 插入文本类命令 i :在光标前 I :在当前行首 a:光标后 A:在当前行尾 o:在当前行之下新开一行 O:在当前行之上新开一行 r:替换当前字符 R:替换当前字符及其后的字符,直至按 ESC 键 s:从当前光标位置处开始,以输入的文本替代指定数目的字符 S:删除指定数目的行,并以所输入文本代替之 ncw 或 nCW:修改指定数目的字 nCC:修改指定数目的行 删除命令 ndw 或 ndW:删除光标处开始及其后的 n-1 个字 do:删至行首 d$:删至行尾 ndd:删除当前行及其后 n-1 行 x 或 X:删除一个字符,x 删除光标后的,而 X 删除光标前的 Ctrl+u:删除输入方式下所输入的文本 搜索及替换命令 /pattern:从光标开始处向文件尾搜索 pattern ?pattern:从光标开始处向文件首搜索 pattern n:在同一方向重复上一次搜索命令 N:在反方向上重复上一次搜索命令 :s/p1/p2/g:将当前行中所有 p1 均用 p2 替代 :n1,n2s/p1/p2/g:将第 n1 至 n2 行中所有 p1 均用 p2 替代 :g/p1/s/p2/g:将文件中所有 p1 均用 p2 替换 选项设置 all:列出所有选项设置情况 term:设置终端类型 ignorance:在搜索中忽略大小写 list:显示制表位(Ctrl+I)和行尾标志($) number:显示行号 report:显示由面向行的命令修改过的数目 terse:显示简短的警告信息 warn:在转到别的文件时若没保存当前文件则显示 NO write 信息 nomagic:允许在搜索模式中,使用前面不带“”的特殊字符 nowrapscan:禁止 vi 在搜索到达文件两端时,又从另一端开始 mesg:允许 vi 显示其他用户用 write 写到自己终端上的信息 最后行方式命令 :n1,n2 co n3:将 n1 行到 n2 行之间的内容拷贝到第 n3 行下 :n1,n2 m n3:将 n1 行到 n2 行之间的内容移至到第 n3 行下 :n1,n2 d :将 n1 行到 n2 行之间的内容删除 :w :保存当前文件 :e filename:打开文件 filename 进行编辑 :x:保存当前文件并退出 :q:退出 vi :q!:不保存文件并退出 vi :!command:执行 shell 命令 command :n1,n2 w!command:将文件中 n1 行至 n2 行的内容作为 command 的输入并执行之, 若不指定 n1,n2,则表示将整个文件内容作为 command 的输入 :r!command:将命令 command 的输出结果放到当前行 寄存器操作 ?nyy:将当前行及其下 n 行的内容保存到寄存器?中,其中?为一个字母,n 为一个数 字 ?nyw:将当前行及其下 n 个字保存到寄存器?中,其中?为一个字母,n 为一个数字 ?nyl:将当前行及其下 n 个字符保存到寄存器?中,其中?为一个字母,n 为一个数字 ?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以 是一个数字 ndd:将当前行及其下共 n 行文本删除,并将所删内容放到 1 号删除寄存器中。 这是本人花了两天时间整理得来的, 一些最常用的地球人都知道的命令就省去啦! 最后提供 pdf 手册下载 1. 更改档案拥有者 命令 : chown -cfhvR -help -version user:group file. 功能 : 更改文件或者文件夹的拥有者 参数格式 : user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群体(group) -c : 若该档案拥有者确实已经更改,才显示其更改动作 -f : 若该档案拥有者无法被更改也不要显示错误讯息 -h : 只对于连结(link)进行变更,而非该 link 真正指向的档案 -v : 显示拥有者变更的详细资料 -R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方 式逐个变更) 例如:chown -R oracle:oinstall /oracle/u01/app/oracle 更改目录拥有者为 oracle 2. 修改权限 命令:chmod (change mode) 功能:改变文件的读写和执行权限。有符号法和八进制数字法。 选项:(1)符号法: 命令格式:chmod u|g|o|a+|-|=r|w|x filename u (user)表示用户本人。 g (group)表示同组用户。 o (oher)表示其他用户。 a (all)表示所有用户。 +用于给予指定用户的许可权限。 -用于取消指定用户的许可权限。 =将所许可的权限赋给文件。 r (read)读许可,表示可以拷贝该文件或目录的内容。 w (write)写许可,表示可以修改该文件或目录的内容。 x (execute)执行许可,表示可以执行该文件或进入目录。 (2)八进制数字法: 命令格式:chmod abc file 其中 a,b,c 各为一个八进制数字,分别表示 User、Group、及 Other 的权限。 4 (100)表示可读。 2 (010)表示可写。 1 (001)表示可执行。 若要 rwx 属性则 4+2+1=7; 若要 rw-属性则 4+2=6; 若要 r-x 属性则 4+1=5。 例如:# chmod a+rx filename 让所有用户可以读和执行文件 filename。 # chmod go-rx filename 取消同组和其他用户的读和执行文件 filename 的权限。 # chmod 741 filename 让本人可读写执行、同组用户可读、其他用户可执行文件 filename。 # chmod -R 755 /home/oracle 递归更改目录权限,本人可读写执行、同组用户可读可执行、其他用户可读可执行 3. 修改文件日期 命令:touch 格式:touch filenae 功能:改变文件的日期,不对文件的内容做改动,若文件不存在则建立新文件。 例如:% touch file 4. 链接文件 命令:ln (link) 格式:ln option filename linkname ln option directory pathname 功能:为文件或目录建立一个链。其中,filename 和 directory 是源文件名和 源目录名;linkname 和 pathname 分别表示与源文件或源目录名相链接的 文件或目录。 选项:-s为文件或目录建立符号链接。不加-s 表示为文件或目录建立硬链接 注释:链接的目地在于,对一个文件或目录赋予两个以上的名字,使其可以出 现在不同的目录中,既可以使文件或目录共享,又可以节省磁盘空间。 例如:% ln -s filename linkname 5. 显示日期 命令:date 例如:% date 6. 显示日历 命令:cal (calendar) 格式:cal month year 功能:显示某年内指定的日历 例如:% cal 1998 7. 显示文件头部 命令:head 格式:head option filename 功能:显示文件的头部 选项:缺省显示文件的头 10 行。 -i显示文件的开始 i 行。 例如:% head filename 8. 显示文件尾部 命令:tail 格式:tail option filename 功能:显示文件的尾部 选项:缺省显示文件的末 10 行。 -i显示文件最后 i 行。 +i从文件的第 i 行开始显示。 例如:% tail filename 9. 显示用户标识 命令:id 格式:id option user 功能:显示用户标识及用户所属的所有组。 选项:-a 显示用户名、用户标识及用户所属的所有组 注释: 例如:% id username 10. 查看当前登录的用户 命令:users 11. 显示都谁登录到机器上 命令:who 格式:who 功能:显示当前正在系统中的所有用户名字,使用终端设备号,注册时间。 例如:% who 12. 显示当前终端上的用户名 命令:whoami 格式:whoami 功能:显示出当前终端上使用的用户。 例如:% whoami 13. 寻找文件 命令:find 格式:find pathname option expression 功能:在所给的路经名下寻找符合表达式相匹配的文件。 选项:-name表示文件名 -user用户名,选取该用户所属的文件 -size按大小查找,以 block 为单位,一个 block 是 512B -mtime n按最后一次修改时间查找,选取 n 天内被修改的文件 -perm按权限查找 -type按文件类型查找 -atime按最后一次访问时间查找 例如:% find ./ -name *abc* -print 14. 搜索文件中匹配符 命令:grep 格式:grep option pattern filenames 功能:逐行搜索所指定的文件或标准输入,并显示匹配模式的每一行。 选项:-i匹配时忽略大小写 -v 找出模式失配的行 例如:% grep -i java* ./test/run.sh 15. 统计文件字数 命令:wc option filenam
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 膜材料生产线项目节能评估报告
- 幕墙施工组织设计-玻璃铝塑板幕墙
- 广德市2024-2025学年第一学期五年级语文期末学业评价试题及答案
- 广告服务合同
- 商品混凝土运输车辆管理与维护方案
- 大宗固废土壤修复与废弃物处理技术
- 婚姻终止后子女户籍迁移与财产分配执行协议
- 2025年防雷安装工考试题及答案
- 离婚协议书:子女监护权与财产分割综合协议
- 政府投资项目合同审查与行政决策优化
- 2025年小学部分国防教育知识竞赛答案
- 2025秋部编版(2024)八年级上册语文上课课件 第三单元 阅读综合实践
- 借车给他人免责协议书
- 任务一切中断时的接发列车办法授课颜保凡课件
- 情侣合伙开店合同范例
- 山东大学工程流体力学(杜广生)课件第5章 粘性流体的一维流动
- 橡胶沥青应力吸收层技术建议书
- 800 稳定大底
- 金属结构制造与安装-第七章平板钢闸门的安装ppt课件
- 保护性约束技术操作流程
- 制药工程导论-化学制药技术与工程
评论
0/150
提交评论