﻿<?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-Java天空 任我翱翔-随笔分类-Linux</title><link>http://www.blogjava.net/persister/category/46311.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 12 Sep 2010 17:08:14 GMT</lastBuildDate><pubDate>Sun, 12 Sep 2010 17:08:14 GMT</pubDate><ttl>60</ttl><item><title>unzip命令</title><link>http://www.blogjava.net/persister/archive/2009/04/21/266782.html</link><dc:creator>persister</dc:creator><author>persister</author><pubDate>Tue, 21 Apr 2009 08:38:00 GMT</pubDate><guid>http://www.blogjava.net/persister/archive/2009/04/21/266782.html</guid><wfw:comment>http://www.blogjava.net/persister/comments/266782.html</wfw:comment><comments>http://www.blogjava.net/persister/archive/2009/04/21/266782.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/persister/comments/commentRss/266782.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/persister/services/trackbacks/266782.html</trackback:ping><description><![CDATA[Windows下面的Winrar压缩工具，将文件压缩成后缀问.zip文件可以在Linux解压缩。解压缩命令是unzip命令，使用如下：<br />
<br />
Linux----UnZip命令 <br />
功能说明：解压缩zip文件 <br />
语 法：unzip [-cflptuvz][-agCjLMnoqsVX][-P &lt;密码&gt;][.zip文件][文件][-d &lt;目录&gt;][-x &lt;文件&gt;] 或 unzip [-Z] <br />
补充说明：unzip为.zip压缩文件的解压缩程序。 <br />
参 数： <br />
-c 将解压缩的结果显示到屏幕上，并对字符做适当的转换。 <br />
-f 更新现有的文件。 <br />
-l 显示压缩文件内所包含的文件。 <br />
-p 与-c参数类似，会将解压缩的结果显示到屏幕上，但不会执行任何的转换。 <br />
-t 检查压缩文件是否正确。 <br />
-u 与-f参数类似，但是除了更新现有的文件外，也会将压缩文件中的其他文件解压缩到目录中。 <br />
-v 执行是时显示详细的信息。 <br />
-z 仅显示压缩文件的备注文字。 <br />
-a 对文本文件进行必要的字符转换。 <br />
-b 不要对文本文件进行字符转换。 <br />
-C 压缩文件中的文件名称区分大小写。 <br />
-j 不处理压缩文件中原有的目录路径。 <br />
-L 将压缩文件中的全部文件名改为小写。 <br />
-M 将输出结果送到more程序处理。 <br />
-n 解压缩时不要覆盖原有的文件。 <br />
-o 不必先询问用户，unzip执行后覆盖原有文件。 <br />
-P&lt;密码&gt; 使用zip的密码选项。 <br />
-q 执行时不显示任何信息。 <br />
-s 将文件名中的空白字符转换为底线字符。 <br />
-V 保留VMS的文件版本信息。 <br />
-X 解压缩时同时回存文件原来的UID/GID。 <br />
[.zip文件] 指定.zip压缩文件。 <br />
[文件] 指定要处理.zip压缩文件中的哪些文件。 <br />
-d&lt;目录&gt; 指定文件解压缩后所要存储的目录。 <br />
-x&lt;文件&gt; 指定不要处理.zip压缩文件中的哪些文件。 <br />
-Z unzip -Z等于执行zipinfo指令。 <br />
<img src ="http://www.blogjava.net/persister/aggbug/266782.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/persister/" target="_blank">persister</a> 2009-04-21 16:38 <a href="http://www.blogjava.net/persister/archive/2009/04/21/266782.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>php安装</title><link>http://www.blogjava.net/persister/archive/2009/04/05/264025.html</link><dc:creator>persister</dc:creator><author>persister</author><pubDate>Sun, 05 Apr 2009 13:09:00 GMT</pubDate><guid>http://www.blogjava.net/persister/archive/2009/04/05/264025.html</guid><wfw:comment>http://www.blogjava.net/persister/comments/264025.html</wfw:comment><comments>http://www.blogjava.net/persister/archive/2009/04/05/264025.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/persister/comments/commentRss/264025.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/persister/services/trackbacks/264025.html</trackback:ping><description><![CDATA[<p>&nbsp;1. 安装zlib (安装libpng和gd前需要先安装zlib)，<br />
&nbsp;&nbsp;&nbsp; # tar zxvf zlib-1.2.3.tar.gz<br />
&nbsp;&nbsp;&nbsp; # cd zlib-1.2.3<br />
&nbsp;&nbsp;&nbsp; # ./configure<br />
&nbsp;&nbsp;&nbsp; # make;make install&nbsp;&nbsp;&nbsp; <br />
2. 安装libpng，<br />
&nbsp;&nbsp;&nbsp; # tar zxvf libpng-1.2.12.tar.gz<br />
&nbsp;&nbsp;&nbsp; # cd libpng-1.2.12<br />
&nbsp;&nbsp;&nbsp; # ./configure<br />
&nbsp;&nbsp;&nbsp; # make;make install&nbsp;&nbsp;&nbsp; <br />
3. 安装freetype，<br />
&nbsp;&nbsp;&nbsp; # tar zxvf freetype-2.2.1.tar.gz<br />
&nbsp;&nbsp;&nbsp; # cd freetype-2.1.10<br />
&nbsp;&nbsp;&nbsp; # ./configure --prefix=/usr/local/freetype<br />
&nbsp;&nbsp;&nbsp; # make;make install&nbsp;&nbsp;&nbsp; <br />
4. 安装jpeg，<br />
&nbsp;&nbsp;&nbsp; # tar zxvf jpegsrc.v6b.tar.gz<br />
&nbsp;&nbsp;&nbsp; # cd jpeg-6b<br />
&nbsp;&nbsp;&nbsp; # mkdir /usr/local/jpeg<br />
&nbsp;&nbsp;&nbsp; # mkdir /usr/local/jpeg/bin<br />
&nbsp;&nbsp;&nbsp; # mkdir /usr/local/jpeg/lib<br />
&nbsp;&nbsp;&nbsp; # mkdir /usr/local/jpeg/include<br />
&nbsp;&nbsp;&nbsp; # mkdir /usr/local/jpeg/man<br />
&nbsp;&nbsp;&nbsp; # mkdir /usr/local/jpeg/man/man1<br />
&nbsp;&nbsp;&nbsp; # ./configure --prefix=/usr/local/jpeg --enable-shared --enable-static<br />
&nbsp;&nbsp;&nbsp; # make;make install&nbsp;&nbsp;&nbsp; <br />
5. 安装gd，<br />
&nbsp;&nbsp;&nbsp; # tar zxvf gd-2.0.35.tar.gz<br />
&nbsp;&nbsp;&nbsp; # cd gd-2.0.35<br />
&nbsp;&nbsp;&nbsp; # ./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/jpeg --with-freetype=/usr/local/freetype --with-png --with-zlib<br />
&nbsp;&nbsp;&nbsp; //编译过程中会看到如下信息<br />
&nbsp;&nbsp;&nbsp; ** Configuration summary for gd 2.0.33:&nbsp;&nbsp;&nbsp; Support for PNG library: yes<br />
&nbsp;&nbsp;&nbsp; Support for JPEG library: yes<br />
&nbsp;&nbsp;&nbsp; Support for Freetype 2.x library: yes<br />
&nbsp;&nbsp;&nbsp; Support for Fontconfig library: no<br />
&nbsp;&nbsp;&nbsp; Support for Xpm library: no<br />
&nbsp;&nbsp;&nbsp; Support for pthreads: yes<br />
&nbsp;&nbsp;&nbsp; //可以看到png 、 jpeg 、 freetype都已经安装上了<br />
&nbsp;&nbsp;&nbsp; # make<br />
&nbsp;&nbsp;&nbsp; # make install&nbsp;&nbsp;&nbsp; <br />
6. 正式安装php<br />
&nbsp;&nbsp;&nbsp; # tar zxvf php-5.2.3.tar.gz<br />
&nbsp;&nbsp;&nbsp; # cd php-5.2.3<br />
&nbsp;&nbsp;&nbsp; #&nbsp; ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/lib/mysql --with-gd=/usr/local/gd --with-zlib-dir&nbsp; --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --enable-sockets --with-iconv --enable-mbstring --enable-force-cgi-redirect --with-config-file-path=/usr/local/php5/etc<br />
&nbsp;&nbsp;&nbsp; # make<br />
&nbsp;&nbsp;&nbsp; # make install&nbsp;&nbsp;&nbsp; <br />
<br />
7.整合php和apache<br />
&nbsp;&nbsp;&nbsp; cp php.ini-dist /usr/local/php5/etc/php.ini<br />
&nbsp;&nbsp;&nbsp; vi /usr/local/php5/etc/php.ini<br />
&nbsp;&nbsp;&nbsp; 将extension=php_mysql.dll前面的;去掉<br />
&nbsp;&nbsp;&nbsp; 注意在/usr/local/apache2/conf/httpd.conf加上下代码使apache执行PHP&nbsp;<br />
&nbsp;&nbsp;&nbsp; AddType application/x-httpd-php .php<br />
&nbsp;&nbsp;&nbsp; AddType application/x-httpd-php3 .php3<br />
&nbsp;&nbsp;&nbsp; AddType application/x-httpd-php4 .php4<br />
&nbsp;&nbsp;&nbsp; AddType application/x-httpd-php-source .phps&nbsp;&nbsp;&nbsp; <br />
<br />
8. 安装ZendOptimizer<br />
&nbsp;&nbsp;&nbsp; # tar zxvf ZendOptimizer-3.0.1-linux-glibc21-i386.tar.gz<br />
&nbsp;&nbsp;&nbsp; # cd ZendOptimizer-3.0.1-linux-glibc21-i386<br />
&nbsp;&nbsp;&nbsp; # ./install.sh&nbsp;&nbsp;&nbsp; 附:软件下载地址:&nbsp;&nbsp;&nbsp; apache 2.2.4 http://www.jtcyxx.com/down/2007/1030/down_5.html<br />
&nbsp;&nbsp; mysql 5.0.22: http://download.jcwcn.com/soft/server/2007-02-14/75.html#edown<br />
&nbsp;&nbsp; php 5.2.9: http://www.php.net/downloads.php#<br />
&nbsp;&nbsp; zlib 1.2.3: http://www.zlib.net/zlib-1.2.3.tar.gz&nbsp;&nbsp; libpng 1.2.23:http://jaist.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.23.tar.gz&nbsp;&nbsp; freetype 2.3.5:http://nchc.dl.sourceforge.net/sourceforge/freetype/freetype-2.3.5.tar.gz&nbsp;&nbsp; jpeg: http://www.ijg.org/files/jpegsrc.v6b.tar.gz<br />
&nbsp;&nbsp;&nbsp; gd 2.0.35: http://www.libgd.org/releases/gd-2.0.35.tar.gz</p>
<p>&nbsp;</p>
<p>===================================</p>
<p>重启apache <br />
# /usr/local/apache2/bin/apachectl restart <br />
在/usr/local/apache2/htdocs目录里建一内容为： &lt;?php phpinfo(); ?&gt; 的PHP文件,命名为index.php, 输入URL地址：http://localhost/index.php，查看PHP配置是否正确 </p>
<p>如果不正确，可以重启机子在试 <br />
<br />
------------------------------------------------------<br />
自定义文件目录，修改http.conf<br />
ServerName <a href="http://localhost:80">http://localhost:80</a><br />
</p>
<p>DocumentRoot /var/www<br />
<br />
#&lt;Directory "/usr/local/apache2/htdocs"&gt;<br />
&lt;Directory "var/www"&gt;<br />
（注意不要和perl的配置冲突）<br />
<br />
如果增加欢迎页面则：<br />
&lt;IfModule dir_module&gt;<br />
&nbsp;&nbsp;&nbsp; DirectoryIndex index.html index.php<br />
&lt;/IfModule&gt;<br />
这样只要输入<a href="http://localhost/">http://localhost/</a>即可得到index.php的页面<br />
<br />
------------------------------------------------------</p>
<img src ="http://www.blogjava.net/persister/aggbug/264025.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/persister/" target="_blank">persister</a> 2009-04-05 21:09 <a href="http://www.blogjava.net/persister/archive/2009/04/05/264025.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux档案特殊权限： SUID/SGID/Sticky Bit</title><link>http://www.blogjava.net/persister/archive/2009/03/22/261358.html</link><dc:creator>persister</dc:creator><author>persister</author><pubDate>Sun, 22 Mar 2009 13:28:00 GMT</pubDate><guid>http://www.blogjava.net/persister/archive/2009/03/22/261358.html</guid><wfw:comment>http://www.blogjava.net/persister/comments/261358.html</wfw:comment><comments>http://www.blogjava.net/persister/archive/2009/03/22/261358.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/persister/comments/commentRss/261358.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/persister/services/trackbacks/261358.html</trackback:ping><description><![CDATA[1.<span class="text_import1">Set UID</span>: 是为了<span class="text_import2">让一般使用者在执行某些程式的时候， 能够暂时的具有该程式拥有者的权限。一个应用场景就是：一些脚本，设置了它们的uid，这样指定的一些用户只要执行这些脚本就能够完成相应的工作，而无须以数据库管理员的身份登录，以免不小心破坏了数据库服务器。通过执行这些脚本，他们可以完成数据库备份及其他管理任务，但是在这些脚本运行结束之后，他们就又回复到他们作为普通用户的权限。<br />
<span class="text_import1">2.Set GID:
<ul><span class="text_import2">
    <li><strong>档案</strong>：如果 SGID 是设定在 binary file 上面，则不论使用者是谁，在执行该程式的时候， 他的有效群组 (effective group) 将会变成该程式的群组所有人 (group id)。<br />
    <br />
    </li>
    <li><strong>目录</strong>：如果 SGID 是设定在 A 目录上面，则在该 A 目录内所建立的档案或目录的 group ，将会是 此 A 目录的 group . </li>
    </span></ul>
    <p>3.<span class="text_import1">Sticky Bit: 目前只针对目录有效，对于档案已经没有效果了。 SBit 对于目录的作用是：&#8216;<span class="text_import2">在具有 SBit 的目录下，使用者若在该目录下具有 w 及 x 的权限， 则当使用者在该目录下建立档案或目录时，只有档案拥有者与 root 才有权力删除</span>&#8217;。换句话说：当甲这个使用者于 A 目录下是拥有 group 或者是 other 的项目，并且拥有 w 的权限， 这表示&#8216;甲使用者对该目录内任何人建立的目录或档案均可进行 "删除/更名/搬移" 等动作。&#8217; 不过，<span class="text_import2">如果将 A 目录加上了 Sticky bit 的权限项目时， 则甲只能够针对自己建立的档案或目录进行删除/更名/移动等动作</span></span></p>
    <p>4.<span class="text_import1">SUID/SGID/SBIT 权限设定: 如何开启档案使成为具有 SUID 与 SGID 的权限呢？！ 这就需要刚刚的数字更改权限的方法了！现在你应该已经知道数字型态个更改权限方式为&#8216;三个数字&#8217;的组合， 那么如果在这三个数字之前再加上一个数字的话，那最前的面数字就代表这几个属性了！ (<span class="text_vbird"> 注：通常我们使用 chmod xyz filename 的方式来设定 filename 的属性时，则是假设没有 SUID, SGID 及 Sticky bit 啦！ </span>) </span></p>
    <ul><span class="text_import2">
        <li>4 为 SUID
        </li>
        <li>2 为 SGID
        </li>
        <li>1 为 Sticky bit </li>
        </span></ul>
        <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[root@linux ~]# <span class="term_command">cd /tmp</span><br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[root@linux tmp]# <span class="term_command">touch test</span><br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[root@linux tmp]# <span class="term_command">chmod 4755 test; ls -l test</span><br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-rw<span class="term_write">s</span>r-xr-x&nbsp; 1 root root 0 Jul 20 11:27 test<br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[root@linux tmp]# <span class="term_command">chmod 6755 test; ls -l test</span><br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-rw<span class="term_write">s</span>r-<span class="term_write">s</span>r-x&nbsp; 1 root root 0 Jul 20 11:27 test<br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[root@linux tmp]# <span class="term_command">chmod 1755 test; ls -l test</span><br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-rwxr-xr-<span class="term_write">t</span>&nbsp; 1 root root 0 Jul 20 11:27 test<br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[root@linux tmp]# <span class="term_command">chmod 7666 test; ls -l test</span><br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-rw<span class="term_write">S</span>rw<span class="term_write">S</span>rw<span class="term_write">T</span>&nbsp; 1 root root 0 Jul 20 11:27 test<br />
        <span class="term_say">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 这个例子就要特别小心啦！怎么会出现大写的 S 与 T 呢？不都是小写的吗？<br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 因为 s 与 t 都是取代 x 这个参数的，但是你有没有发现阿，我们是下达&nbsp;<br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 7666 喔！也就是说， user, group 以及 others 都没有 x 这个可执行的标志&nbsp;<br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# ( 因为 666 嘛！ )，所以，这个 S, T 代表的就是&#8216;空的&#8217;啦！怎么说？&nbsp;<br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# SUID 是表示&#8216;该档案在执行的时候，具有档案拥有者的权限&#8217;，但是档案<br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 拥有者都无法执行了，哪里来的权限给其他人使用？当然就是空的</span><br />
        </p>
        </span></span>
<img src ="http://www.blogjava.net/persister/aggbug/261358.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/persister/" target="_blank">persister</a> 2009-03-22 21:28 <a href="http://www.blogjava.net/persister/archive/2009/03/22/261358.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RedHat Linux中的搜索命令总结</title><link>http://www.blogjava.net/persister/archive/2008/12/20/247560.html</link><dc:creator>persister</dc:creator><author>persister</author><pubDate>Sat, 20 Dec 2008 15:34:00 GMT</pubDate><guid>http://www.blogjava.net/persister/archive/2008/12/20/247560.html</guid><wfw:comment>http://www.blogjava.net/persister/comments/247560.html</wfw:comment><comments>http://www.blogjava.net/persister/archive/2008/12/20/247560.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/persister/comments/commentRss/247560.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/persister/services/trackbacks/247560.html</trackback:ping><description><![CDATA[<span class="text_import1">1、which </span>：只能查找可执行文件，而且不支持正则表达式，而且可以搜索全部的执行档；<br />
2、<span class="text_import1">whereis ：只能查找可执行文件，速度很快，不支持正则表达式；<br />
3、locate：可以查出所有的文件和目录，不支持正则表达式，但是查出的结果符合正则表达式的，如你查<br />
&nbsp;&nbsp; locate passwd 则*/*passwd*也即是所有文件名中含有passwd字符串的都能够被查找出来；<br />
4、find：此指令很强大。首先可以指定目录，第二可以按照用户权限属性等查询，第三支持正则表达式查询。<br />
5、grep：查询文本字符串的，与上面查询文档和目录不一样。<br />
</span>
<img src ="http://www.blogjava.net/persister/aggbug/247560.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/persister/" target="_blank">persister</a> 2008-12-20 23:34 <a href="http://www.blogjava.net/persister/archive/2008/12/20/247560.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RedHat Linux中的hard link和symbolic link</title><link>http://www.blogjava.net/persister/archive/2008/12/19/247309.html</link><dc:creator>persister</dc:creator><author>persister</author><pubDate>Fri, 19 Dec 2008 04:48:00 GMT</pubDate><guid>http://www.blogjava.net/persister/archive/2008/12/19/247309.html</guid><wfw:comment>http://www.blogjava.net/persister/comments/247309.html</wfw:comment><comments>http://www.blogjava.net/persister/archive/2008/12/19/247309.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/persister/comments/commentRss/247309.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/persister/services/trackbacks/247309.html</trackback:ping><description><![CDATA[&nbsp; hard link可以看作是copy，只是hard
link和target共同指向同一个inode.可以理解为copy了一个指针（所以它们有着相同的inode)。hard
link无法超越filesystem边界，不能link目录。直观的理解就是指针，无论vi的是link文件或者target文件，内容都发生了同样的改变，这点就是指针的概念了。如果删掉任何一个文件，另一个都不受影响<br />
<br />
&nbsp;symbolic link可以理解为创造了一个target的PATH的指针。symbolic link并不指向target直接的inode位置，而是指向target的PATH。由于是创造，所以symlink和target有着不同的
inode. symlink可以跨越filesystem, 可以link目录。如果target文件被删除，则在系统中symbolic link会报错，因为Path的文件不存在了。
<img src ="http://www.blogjava.net/persister/aggbug/247309.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/persister/" target="_blank">persister</a> 2008-12-19 12:48 <a href="http://www.blogjava.net/persister/archive/2008/12/19/247309.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RedHat Linux中的vi命令（这个比较全了）</title><link>http://www.blogjava.net/persister/archive/2008/12/18/247183.html</link><dc:creator>persister</dc:creator><author>persister</author><pubDate>Thu, 18 Dec 2008 09:57:00 GMT</pubDate><guid>http://www.blogjava.net/persister/archive/2008/12/18/247183.html</guid><wfw:comment>http://www.blogjava.net/persister/comments/247183.html</wfw:comment><comments>http://www.blogjava.net/persister/archive/2008/12/18/247183.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/persister/comments/commentRss/247183.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/persister/services/trackbacks/247183.html</trackback:ping><description><![CDATA[vi指令大全，可以参考http://www.gnulamp.com/网站<br />
<p><br />
进入vi的命令<br />
============<br />
vi filename: 打开或新建文件，并将光标置于第一行首<br />
vi +n filename: 打开文件，并将光标置于第n行首<br />
vi + filename: 打开文件，并将光标置于最后一行首<br />
vi +/pattern filename: 打开文件，并将光标置于第一个与pattern匹配的串处<br />
vi -r filename: 在上次正用vi编辑时发生系统崩溃，恢复filename<br />
vi filename....filename: 打开多个文件，依次进行编辑</p>
<p>移动光标类命令<br />
==============<br />
h: 光标左移一个字符<br />
l: 光标右移一个字符<br />
space: 光标右移一个字符<br />
Backspace: 光标左移一个字符<br />
k或Ctrl+p: 光标上移一行<br />
j或Ctrl+n: 光标下移一行<br />
Enter: 光标下移一行<br />
w或W : 光标右移一个字至字首(注意，字首是指一个word的第一个)<br />
b或B : 光标左移一个字至字首<br />
e或E : 光标右移一个字至字尾<br />
): 光标移至句尾<br />
(: 光标移至句首<br />
}: 光标移至段落开头(*****)<br />
{: 光标移至段落结尾(*****)<br />
nG: 光标移至第n行首(*****)<br />
n+: 光标下移n行(*****)<br />
n-: 光标上移n行(*****)<br />
n$: 光标移至第n行尾<br />
H: 光标移至屏幕顶行<br />
M: 光标移至屏幕中间行<br />
L: 光标移至屏幕最后行<br />
0: 光标移至当前行首<br />
$: 光标移至当前行尾(*****)</p>
<p>gg:移动光标到文档首行(*****)<br />
G: 移动光标到文档尾行(*****)</p>
<p>屏幕翻滚类命令<br />
==============<br />
Ctrl+u: 向文件首翻半屏<br />
Ctrl+d: 向文件尾翻半屏<br />
Ctrl+f: 向文件尾翻一屏(*****)<br />
Ctrl＋b: 向文件首翻一屏(*****)<br />
nz: 将第n行滚至屏幕顶部，不指定n时将当前行滚至屏幕顶部。</p>
<p>插入文本类命令<br />
==============<br />
i: 在光标前(*****)<br />
I: 在当前行首<br />
a: 光标后<br />
A: 在当前行尾<br />
o: 在当前行之下新开一行(*****)<br />
O: 在当前行之上新开一行<br />
r: 替换当前字符<br />
R: 替换当前字符及其后的字符，直至按ESC键<br />
s: 从当前光标位置处开始，以输入的文本替代指定数目的字符<br />
S: 删除指定数目的行，并以所输入文本代替之<br />
ncw或nCW: 修改指定数目的字<br />
nCC: 修改指定数目的行</p>
<p>删除命令<br />
========<br />
ndw或ndW: 删除光标处开始及其后的n-1个字<br />
do: 删至行首<br />
d$: 删至行尾<br />
ndd: 删除当前行及其后n-1行(*****)<br />
x或X: 删除一个字符，x删除光标后的，而X删除光标前的(*****)</p>
<p>搜索及替换命令<br />
==============<br />
/pattern: 从光标开始处向文件尾搜索pattern(*****)<br />
?pattern: 从光标开始处向文件首搜索pattern<br />
n: 在同一方向重复上一次搜索命令(*****)<br />
N: 在反方向上重复上一次搜索命令(*****)<br />
:s/p1/p2/g: 将当前行(只对一行产生效果)中所有p1均用p2替代(*****)<br />
:n1,n2s/p1/p2/g: 将第n1至n2行中所有p1均用p2替代(*****)<br />
:g/p1/s//p2/g: 将文件中所有p1均用p2替换(*****)</p>
<p>选项设置<br />
========<br />
all: 列出所有选项设置情况<br />
term: 设置终端类型<br />
ignorance: 在搜索中忽略大小写<br />
list: 显示制表位(Ctrl+I)和行尾标志($)<br />
number: 显示行号<br />
report: 显示由面向行的命令修改过的数目<br />
terse: 显示简短的警告信息<br />
warn: 在转到别的文件时若没保存当前文件则显示NO write信息<br />
nomagic: 允许在搜索模式中，使用前面不带&#8220;\&#8221;的特殊字符<br />
nowrapscan: 禁止vi在搜索到达文件两端时，又从另一端开始<br />
mesg: 允许vi显示其他用户用write写到自己终端上的信息</p>
<p>最后行方式命令<br />
==============<br />
:n1,n2 co n3: 将n1行到n2行之间的内容(包含n1,n2行本身)拷贝到第n3行下(*****)<br />
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下(*****)<br />
:n1,n2 d: 将 n1行到n2行之间的内容删除(*****)<br />
:w: 保存当前文件(*****)<br />
:e filename: 打开文件filename进行编辑<br />
:x: 保存当前文件并退出(*****)<br />
:q: 退出vi(*****)<br />
:q!: 不保存文件并退出vi(*****)<br />
:!command: 执行shell命令command<br />
:n1,n2 w!command: 将文件中n1行至n2行的内容作为command的输入并执行之，<br />
&nbsp;若不指定n1，n2，则表示将整个文件内容作为command的输入<br />
:r!command: 将命令command的输出结果放到当前行</p>
<p><br />
取消与重做命令<br />
-----------------------<br />
u: undo(*****)<br />
ctrl + r: redo(*****)</p>
<br />
补充：<br />
1、如何使vi默认就显示行号<br />
&nbsp;&nbsp; 1、cd ~ 回到当前用户home目录<br />
&nbsp;&nbsp; 2、执行 vi .vimrc 命令<br />
&nbsp;&nbsp; 3、在打开的文件中添加一行代码&nbsp;&nbsp;set number<br />
&nbsp;&nbsp; 4、 保存退出，OK
<img src ="http://www.blogjava.net/persister/aggbug/247183.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/persister/" target="_blank">persister</a> 2008-12-18 17:57 <a href="http://www.blogjava.net/persister/archive/2008/12/18/247183.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>