﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-heshuhua-随笔分类-DayLogJava</title><link>http://www.blogjava.net/heshuhua/category/11213.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 06:36:29 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 06:36:29 GMT</pubDate><ttl>60</ttl><item><title>Vi指令----从其他网站上摘录。</title><link>http://www.blogjava.net/heshuhua/archive/2006/06/15/53021.html</link><dc:creator>fanto</dc:creator><author>fanto</author><pubDate>Thu, 15 Jun 2006 08:10:00 GMT</pubDate><guid>http://www.blogjava.net/heshuhua/archive/2006/06/15/53021.html</guid><wfw:comment>http://www.blogjava.net/heshuhua/comments/53021.html</wfw:comment><comments>http://www.blogjava.net/heshuhua/archive/2006/06/15/53021.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heshuhua/comments/commentRss/53021.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heshuhua/services/trackbacks/53021.html</trackback:ping><description><![CDATA[一、Vi入门<br /><br />（一）、进入vi<br /><br />    在系统提示字符(如$、#)下敲入vi ＜档案名称＞，vi 可以自动帮你载入所要编辑的文件或是开启一个新文件（如果该文件不存在或缺少文件名）。进入 vi 后萤幕左方会出现波浪符号，凡是列首有该符号就代表此列目前是空的。<br /><br />(二)、两种模式<br /><br />    如上所述，vi存在两种模式：指令模式和输入模式。在指令模式下输入的按键将做为指令来处理：如输入<br />a，vi即认为是在当前位置插入字符。而在输入模式下，vi则把输入的按键当作插入的字符来处理。指令模式切换到输入模式只需键入相应的输入命令即可（如a,A），而要从输入模式切换到指令模式，则需在输入模式下键入ESC键，如果不晓得现在是处於什麽模式，可以多按几次 [ESC]，系统如发出哔哔声就表示已处于指令模式下了。<br />付：有指令模式进入输入模式的指令：<br />新增 (append)<br />a ：从光标所在位置後面开始新增资料，光标後的资料随新增资料向後移动。<br />A： 从光标所在列最後面的地方开始新增资料。<br />插入 (insert)<br />i： 从光标所在位置前面开始插入资料，光标後的资料随新增资料向後移动。<br />I ：从光标所在列的第一个非空白字元前面开始插入资料。<br />开始 (open)<br />o ：在光标所在列下新增一列并进入输入模式。<br />O: 在光标所在列上方新增一列并进入输入模式。<br /><br />（三）、退出vi<br /><br />在指令模式下键入:q,:q!,:wq或:x(注意:号)，就会退出vi。其中:wq和:x是存盘退出，而:q是直接退出，如果文件已有新的变化，vi会提示你保存文件而:q命令也会失效，这时你可以用:w命令保存文件后再用:q退出，或用:wq或:x命令退出，如果你不想保存改变后的文件，你就需要用:q!命令，这个命令将不保存文件而直接退出vi。<br /><br />（四）、基本编辑<br /><br />    配合一般键盘上的功能键，像是方向键、[Insert] 、[Delete] 等等，现在你应该已经可以利用 vi 来编辑文件了。当然 vi 还提供其他许许多多功能让文字的处理更为方便。何谓编辑？一般认为是文字的新增、修改以及删除，甚至包括文字区块的搬移、复制等等。先这里介绍 vi的如何做删除与修改。（注意：在 vi 的原始观念里，输入跟编辑是两码子事。编辑是在指令模式下操作的，先利用指令移动光标来定位要进行编辑的地方，然後才下指令做编辑。）<br />  删除与修改文件的命令：<br />x： 删除光标所在字符。<br />dd ：删除光标所在的列。<br /><br />r ：修改光标所在字元，r 後接著要修正的字符。<br />R： 进入取替换状态，新增文字会覆盖原先文字，直到按 [ESC] 回到指令模式下为止。<br /><br />s： 删除光标所在字元，并进入输入模式。<br />S： 删除光标所在的列，并进入输入模式。<br /><br />    其实呢，在PC上根本没有这麽麻烦！输入跟编辑都可以在输入模式下完成。例如要删除字元，直接按 [Delete] 不就得了。而插入状态与取代状态可以直接用 [Insert] 切换，犯不著用什麽指令模式的编辑指令。不过就如前面所提到的，这些指令几乎是每台终端机都能用，而不是仅仅在 PC 上。在指令模式下移动光标的基本指令是 h, j, k, l 。想来各位现在也应该能猜到只要直接用 PC 的方向键就可以了，而且无论在指令模式或输入模式下都可以。多容易不是。当然 PC 键盘也有不足之处。有个很好用的指令 u 可以恢复被删除的文字，而 U 指令则可以恢复光标所在列的所有改变。这与某些电脑上的 [Undo] 按键功能相同。<br />二、附件：vi详细指令表<br />（一）、基本编辑指令：<br />新增 (append)<br />a ：从光标所在位置後面开始新增资料，光标後的资料随新增资料向後移动。<br />A： 从光标所在列最後面的地方开始新增资料。<br /><br />插入 (insert)<br />i： 从光标所在位置前面开始插入资料，光标後的资料随新增资料向後移动。<br />I ：从光标所在列的第一个非空白字元前面开始插入资料。<br /><br />开始 (open)<br />o ：在光标所在列下新增一列并进入输入模式。<br />O: 在光标所在列上方新增一列并进入输入模式。<br /><br />x： 删除光标所在字符。<br />dd ：删除光标所在的列。<br /><br />r ：修改光标所在字元，r 後接著要修正的字符。<br />R： 进入取替换状态，新增文字会覆盖原先文字，直到按 [ESC] 回到指令模式下为止。<br /><br />s： 删除光标所在字元，并进入输入模式。<br />S： 删除光标所在的列，并进入输入模式。<br /><br />（二）、光标移动指令：<br />由於许多编辑工作是藉由光标来定位，所以 vi 提供许多移动光标的方式，这个我们列<br />几张简表来说明（这些当然是指令模式下的指令）：<br />指令    说明                          功能键    <br />0    移动到光标所在列的最前面      [Home]<br />$             移动到光标所在列的最後面    [End]<br />[CTRL][d]    向下半页                      [PageDown]<br />[CTRL][f]     向下一页     <br />[CTRL][u]    向上半页     <br />[CTRL][b]    向上一页                      [PageUp] <br /><br />指令    说明<br />H    移动到视窗的第一列<br />M    移动到视窗的中间列<br />L    移动到视窗的最後列                <br />b    移动到下个字的第一个字母<br />w    移动到上个字的第一个字母          <br />e    移动到下个字的最後一个字母<br />^    移动到光标所在列的第一个非空白字元<br />  <br />指令    说明                                  <br />n-    减号移动到上一列的第一个非空白字元前面加上数字可以指定移动到以上 n 列   <br />n+    加号移动到下一列的第一个非空白字元前面加上数字可以指定移动到以下 n 列<br />nG    直接用数字 n 加上大写 G 移动到第 n 列<br />指令    说明<br />fx    往右移动到 x 字元上           <br />Fx    往左移动到 x 字元上           <br />tx    往右移动到 x 字元前<br />Tx          往左移动到 x 字元前<br />;           配合 f&amp;t 使用，重复一次<br />,    配合 f&amp;t 使用，反方向重复一次<br />/string    往右移动到有 string 的地方<br />?string    往左移动到有 string 的地方<br />n           配合 /&amp;? 使用，重复一次       <br />N           配合 /&amp;? 使用，反方向重复一次 <br /> <br />指令    说明    备注<br />n(       左括号移动到句子的最前面句子是以前面加上数字可以指定往前移动 n 个句子    ! . ? 三种符号来界定<br />n)    右括号移动到下个句子的最前面前面加上数字可以指定往後移动 n 个句子    ! . ? 三种符号来界定<br />n{          左括弧移动到段落的最前面    段落是以段落间的空白列界定<br />n}    前面加上数字可以指定往前移动 n 个段落右括弧移动到下个段落的最前面前面加上数字可以指定往後移动 n 个段落    段落是以段落间的空白列界定<br /><br />（三）、更多的编辑指令<br />这些编辑指令非常有弹性，基本上可以说是由指令与范围所构成。例如 dw 是由删除指令 d 与范围 w 所<br />组成，代表删除一个字 d(elete) w(ord) 。<br />指令列表如下：<br />d 删除(delete)<br />y 复制(yank)<br />p 放置(put)<br />c 修改(change)<br />范围可以是下列几个：<br />e 光标所在位置到该字的最後一个字母<br />w 光标所在位置到下个字的第一个字母<br />b 光标所在位置到上个字的第一个字母<br />$ 光标所在位置到该列的最後一个字母<br />0 光标所在位置到该列的第一个字母<br />) 光标所在位置到下个句子的第一个字母<br />( 光标所在位置到该句子的第一个字母<br />} 光标所在位置到该段落的最後一个字母<br />{ 光标所在位置到该段落的第一个字母<br />说实在的，组合这些指令来编辑文件有一点点艺术气息。不管怎麽样，它们提供更多编辑文字的能力。值得<br />注意的一点是删除与复制都会将指定范围的内容放到暂存区里，然後就可以用指令 p 贴到其它地方去，这<br />是 vi 用来处理区段拷贝与搬移的办法。<br />某些 vi 版本，例如 Linux 所用的 elvis 可以大幅简化这一坨指令。如果稍微观察一下这些编辑指令<br />就会发现问题其实是定范围的方式有点杂，实际上只有四个指令罢了。指令 v 非常好用，只要按下 v 键，<br />光标所在的位置就会反白，然後就可以移动光标来设定范围，接著再直接下指令进行编辑即可。<br />对於整列操作， vi 另外提供了更方便的编辑指令。前面曾经提到过删除整列文字的指令 dd 就是其中一个<br />；cc 可以修改整列文字；而 yy 则是复制整列文字；指令 D 则可以删除光标到该列结束为止所有的文字。<br />（四）、文件操作指令<br />文件操作指令多以 : 开头，这跟编辑指令有点区别。<br />:q 结束编辑(quit)<br />:q! 不存档而要放弃编辑过的文件。<br />:w 保存文件(write)其後可加所要存档的档名。<br />:wq 即存档後离开。<br />zz 功能与 :wq 相同。<br />:x 与:wq相同<br /><br /><br />四、VI的常见使用技巧<br />     二:基本命令介绍：  <br /><br />      1) 光标命令  <br />      k,j,h,l---上下左右光标移动命令，虽然你可以在Linux中使用键盘右边的四个光标键， <br />      但是记住这四个命令还有非常有用的，也就是右手在键盘上放置的位置部分  <br />      nG ----n为行数，该命令立即使光标跳到指定行。  <br />      Ctrl+G-----光标所在位置的行数和列数报告  <br />      w,b------使光标向前或向后跳过一个单词  <br /><br />      2) 编辑命令  <br />      i,a,r -------在光标的前,后,上方插入字符命令(i=insert,a=append,r=replace)  <br />      cw,dw------ 改变(置换)/删除光标所在处的单词的命令 (c=change,d=delete)  <br />      x,d$,dd -----删除一个字符，光标所在处到行尾的所有字符，和整行的命令  <br /><br />      3) 查找命令  <br />      /string, ?string-----从光标所在处向后/向前查找相应的字符串的命令  <br /><br />      4)拷贝复制命令  <br />      yy,p -----拷贝一行到剪贴板/取出剪贴板中内容的命令  <br /><br />      三:常见问题及应用技巧  <br /><br />      1) 在一个新文件中读/etc/passwd中的内容，取出用户名部分  <br />      vi file  <br />      :r /etc/passwd 在打开的文件file中光标所在处读入/etc/passwd  <br />      :%s/:.*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分  <br />      :3r /etc/passwd 这是在指定的行号后面读入文件内容  <br /><br />      另外一种方法删掉文件中所有的空行及以#开始的注释行  <br />      #cat squid.conf.default | grep -v '^$' | grep -v '^#'  <br /><br /><br />      2) 在打开一个文件编辑后才知道登录的用户对该文件没有写权，不能存盘  <br />      vi file  <br />      :w /tmp/1 既然没法存盘，不想放弃所做的所有修改，先临时存到/tmp/1  <br />      :20,59w /tmp/1 或者仅仅把第20到59行之间的内容存盘成文件/tmp/1  <br /><br />      3) 用VI编辑一个文件，但需要删除大段大段的内容  <br />      vi file  <br />      Ctrl+G 把光标移到需要删除的行的处按ctrl+G显示行号，再到结尾处再按Ctrl+G.  <br />      :23,1045d 假定两次行号为23和1045，则把这几间的内容全删除  <br /><br />      也可以在开始和结束两行中用ma,mb命令标记后用:'a,'bd删除.  <br /><br />      4) 在整个文件或某几行中在行首或行尾加一些字符串  <br />      vi file  <br />      :3,$s/^/some string / 在文件的第一行至最后一行的行首前插入some string  <br />      :%s/$/ some string/g 在整个文件每一行的行尾添加 some string  <br /><br />      :%s/string1/string2/g 在整个文件中替换string1成string2  <br />      :3,7s/string1/string2/ 仅替换文件中的第三到七行中的string1成string2  <br /><br /><br />      Note: s为substitute,%表示所有行,g表示global  <br /><br />      5) 同时编辑两个文件,在两个文件中拷贝剪贴文本  <br />      vi file1 file2  <br />      yy 同时打开两个文件,在文件1的光标所在处拷贝所在行  <br />      :n 切换到文件2 (n=next)  <br />      p 在文件2的光标所在处粘贴所拷贝的行  <br />      :N 切换回文件1  <br /><br /><br />      6) 替换文件中的路径  <br /><br />     :%s#/usr/bin#/bin#g 把文件中所有路径/usr/bin换成/bin  <br />      或者用  <br />      :%s/\/usr\/bin/\/bin/g 在'/'前用\符号指出'/'是真的单个字符'/'  <br /><img src ="http://www.blogjava.net/heshuhua/aggbug/53021.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heshuhua/" target="_blank">fanto</a> 2006-06-15 16:10 <a href="http://www.blogjava.net/heshuhua/archive/2006/06/15/53021.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在linux上安装ibm websphere portal</title><link>http://www.blogjava.net/heshuhua/archive/2006/06/14/52786.html</link><dc:creator>fanto</dc:creator><author>fanto</author><pubDate>Wed, 14 Jun 2006 09:14:00 GMT</pubDate><guid>http://www.blogjava.net/heshuhua/archive/2006/06/14/52786.html</guid><wfw:comment>http://www.blogjava.net/heshuhua/comments/52786.html</wfw:comment><comments>http://www.blogjava.net/heshuhua/archive/2006/06/14/52786.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heshuhua/comments/commentRss/52786.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heshuhua/services/trackbacks/52786.html</trackback:ping><description><![CDATA[
		<p>在linux上安装portal的时候，以下需要注意：<br />1，setup目录是一个taz的文件，如果是在window下，使用 rar做的解压，然后在linux上安装的时候有有可能会碰到如下情况，install.sh 输出几个command not found.<br /><br />需要做的处理，是使用tar 来做解压。</p>
<img src ="http://www.blogjava.net/heshuhua/aggbug/52786.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heshuhua/" target="_blank">fanto</a> 2006-06-14 17:14 <a href="http://www.blogjava.net/heshuhua/archive/2006/06/14/52786.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>