﻿<?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/jzone/category/42910.html</link><description>java web, java wap ..My laboratory..</description><language>zh-cn</language><lastBuildDate>Fri, 21 May 2010 02:14:32 GMT</lastBuildDate><pubDate>Fri, 21 May 2010 02:14:32 GMT</pubDate><ttl>60</ttl><item><title>Tomcat 6.X 内存设置</title><link>http://www.blogjava.net/jzone/articles/321517.html</link><dc:creator>Gavin.lee</dc:creator><author>Gavin.lee</author><pubDate>Fri, 21 May 2010 02:03:00 GMT</pubDate><guid>http://www.blogjava.net/jzone/articles/321517.html</guid><description><![CDATA[<span style="font-family: 宋体">原文：<a href="http://www.javaeye.com/topic/54663">http://www.javaeye.com/topic/54663</a>&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;程序启动时都会</span>JVM<span style="font-family: 宋体">都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会影响程序的性能。比如说在应用程序用到最大内存的时候，</span>JVM<span style="font-family: 宋体">是要先去做垃圾回收的动作，释放被占用的一些内存。</span>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 宋体">所以想调整</span>Tomcat<span style="font-family: 宋体">的启动时初始内存和最大内存就需要向</span>JVM<span style="font-family: 宋体">声明，一般的</span>JAVA<span style="font-family: 宋体">程序在运行都可以通过中</span>-Xms -Xmx<span style="font-family: 宋体">来调整应用程序的初始内存和最大内存</span>: </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 宋体">如：</span>java -Xms64m&nbsp;-Xmx128m&nbsp;xxxx.jar. </p>
<p>tomcat<span style="font-family: 宋体">的启动程序是包装过的，不能直接使用</span>java -X..... tomcat.*<span style="font-family: 宋体">来改变内存的设置。在</span>Tomcat<span style="font-family: 宋体">在改变这个设置</span> </p>
<p><span style="font-family: 宋体">有两种方法：</span> </p>
<p>1.<span style="font-family: 宋体">就需要在环境变量中加上</span>CATALINA_OPTS<span style="font-family: 宋体">属性，</span> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 宋体">如</span> SET&nbsp;CATALINA_OPTS= -Xms128m -Xmx512m; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ms<span style="font-family: 宋体">是最小的，</span>mx<span style="font-family: 宋体">是最大，</span>128m, 512m<span style="font-family: 宋体">分别是指内存的容量</span>. </p>
<p>2.<span style="font-family: 宋体">修改</span>Catalina.bat<span style="font-family: 宋体">文件</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 宋体">找到</span>"rem Execute Java with the applicable properties "<span style="font-family: 宋体">以下每行中的中的</span>%CATALINA_OPTS% <span style="font-family: 宋体">替换成</span>-Xms128m -Xmx512m </p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">rem&nbsp;Execute&nbsp;Java&nbsp;with&nbsp;the&nbsp;applicable&nbsp;properties<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />if&nbsp;not&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">%JPDA%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">&nbsp;goto&nbsp;doJpda<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />if&nbsp;not&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">%SECURITY_POLICY_FILE%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">&nbsp;goto&nbsp;doSecurity<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />%_EXECJAVA%&nbsp;%JAVA_OPTS%&nbsp;%CATALINA_OPTS%&nbsp;%DEBUG_OPTS%&nbsp;-Djava.endorsed.dirs</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">%JAVA_ENDORSED_DIRS%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-classpath&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">%CLASSPATH%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-Dcatalina.base</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">%CATALINA_BASE%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-Dcatalina.home</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">%CATALINA_HOME%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-Djava.io.tmpdir</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">%CATALINA_TMPDIR%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;%MAINCLASS%&nbsp;%CMD_LINE_ARGS%&nbsp;%ACTION%<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />goto&nbsp;end<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />:doSecurity<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />%_EXECJAVA%&nbsp;%JAVA_OPTS%&nbsp;%CATALINA_OPTS%&nbsp;%DEBUG_OPTS%&nbsp;-Djava.endorsed.dirs</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">%JAVA_ENDORSED_DIRS%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-classpath&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">%CLASSPATH%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-Djava.security.manager&nbsp;-Djava.security.policy</span><span style="color: #000000">==</span><span style="color: #000000">"</span><span style="color: #000000">%SECURITY_POLICY_FILE%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-Dcatalina.base</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">%CATALINA_BASE%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-Dcatalina.home</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">%CATALINA_HOME%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-Djava.io.tmpdir</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">%CATALINA_TMPDIR%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;%MAINCLASS%&nbsp;%CMD_LINE_ARGS%&nbsp;%ACTION%<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />goto&nbsp;end<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />:doJpda<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />if&nbsp;not&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">%SECURITY_POLICY_FILE%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">&nbsp;goto&nbsp;doSecurityJpda<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />%_EXECJAVA%&nbsp;%JAVA_OPTS%&nbsp;%CATALINA_OPTS%&nbsp;%JPDA_OPTS%&nbsp;%DEBUG_OPTS%&nbsp;-Djava.endorsed.dirs</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">%JAVA_ENDORSED_DIRS%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-classpath&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">%CLASSPATH%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-Dcatalina.base</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">%CATALINA_BASE%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-Dcatalina.home</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">%CATALINA_HOME%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-Djava.io.tmpdir</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">%CATALINA_TMPDIR%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;%MAINCLASS%&nbsp;%CMD_LINE_ARGS%&nbsp;%ACTION%<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />goto&nbsp;end<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />:doSecurityJpda<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />%_EXECJAVA%&nbsp;%JAVA_OPTS%&nbsp;%CATALINA_OPTS%&nbsp;%JPDA_OPTS%&nbsp;%DEBUG_OPTS%&nbsp;-Djava.endorsed.dirs</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">%JAVA_ENDORSED_DIRS%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-classpath&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">%CLASSPATH%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-Djava.security.manager&nbsp;-Djava.security.policy</span><span style="color: #000000">==</span><span style="color: #000000">"</span><span style="color: #000000">%SECURITY_POLICY_FILE%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-Dcatalina.base</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">%CATALINA_BASE%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-Dcatalina.home</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">%CATALINA_HOME%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;-Djava.io.tmpdir</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">%CATALINA_TMPDIR%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;%MAINCLASS%&nbsp;%CMD_LINE_ARGS%&nbsp;%ACTION%<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />goto&nbsp;end<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<img src ="http://www.blogjava.net/jzone/aggbug/321517.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jzone/" target="_blank">Gavin.lee</a> 2010-05-21 10:03 <a href="http://www.blogjava.net/jzone/articles/321517.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个好blog</title><link>http://www.blogjava.net/jzone/articles/304183.html</link><dc:creator>Gavin.lee</dc:creator><author>Gavin.lee</author><pubDate>Sun, 29 Nov 2009 16:28:00 GMT</pubDate><guid>http://www.blogjava.net/jzone/articles/304183.html</guid><description><![CDATA[<a href="http://blog.chinaunix.net/u3/93926/article_107573.html">http://blog.chinaunix.net/u3/93926/article_107573.html</a> 
<img src ="http://www.blogjava.net/jzone/aggbug/304183.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jzone/" target="_blank">Gavin.lee</a> 2009-11-30 00:28 <a href="http://www.blogjava.net/jzone/articles/304183.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>再谈引号……</title><link>http://www.blogjava.net/jzone/articles/304085.html</link><dc:creator>Gavin.lee</dc:creator><author>Gavin.lee</author><pubDate>Sun, 29 Nov 2009 04:01:00 GMT</pubDate><guid>http://www.blogjava.net/jzone/articles/304085.html</guid><description><![CDATA[<h3 class="type_original" title="原创"><a href="http://shihaiyang.javaeye.com/blog/439961"></a>&nbsp;</h3>
<div class="blog_content">引号 <br />
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Shell代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://shihaiyang.javaeye.com/blog/439961#"></a></div>
</div>
<ol class="dp-default">
    <li><span><span>/home/l/g/tomotoboy&nbsp;&gt;&nbsp;echo&nbsp;</span><span class="string">"*"</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>* &nbsp;&nbsp;</span></li>
    <li><span>/home/l/g/tomotoboy&nbsp;&gt;echo&nbsp;</span><span class="string">'*'</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>* &nbsp;&nbsp;</span></li>
    <li><span>/home/l/g/tomotoboy&nbsp;&gt;&nbsp;echo&nbsp;\* &nbsp;&nbsp;</span></li>
    <li><span>*&nbsp;&nbsp;</span></li>
</ol>
</div>
<pre class="shell" style="display: none" name="code">/home/l/g/tomotoboy &gt; echo "*"
*
/home/l/g/tomotoboy &gt;echo '*'
*
/home/l/g/tomotoboy &gt; echo \*
*</pre>
<br />
<br />
双引号 <br />
使用双引号可引用除字符$、`、\外的任意字符或字符串。这些特殊字符分别为美元符号，反引号和反斜线，对shell来说，它们有特殊意义。如果使用双引号将字符串赋给变量并反馈它，实际上与直接反馈变量并无差别。 <br />
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Shell代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://shihaiyang.javaeye.com/blog/439961#"></a></div>
</div>
<ol class="dp-default">
    <li><span><span>* &nbsp;&nbsp;</span></span></li>
    <li><span>/home/l/g/tomotoboy&nbsp;&gt;F=</span><span class="string">"HELLO"</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>/home/l/g/tomotoboy&nbsp;&gt;echo&nbsp;</span><span class="string">"$F"</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>HELLO &nbsp;&nbsp;</span></li>
    <li><span>/home/l/g/tomotoboy&nbsp;&gt;echo&nbsp;$F &nbsp;&nbsp;</span></li>
    <li><span>HELLO &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li><span>/home/l/g/tomotoboy&nbsp;&gt;F=</span><span class="string">"hello,&nbsp;china,^&nbsp;&amp;"</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>/home/l/g/tomotoboy&nbsp;&gt;echo&nbsp;$F &nbsp;&nbsp;</span></li>
    <li><span>hello,&nbsp;china,^&nbsp;&amp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li><span>/home/l/g/tomotoboy&nbsp;&gt;echo&nbsp;</span><span class="string">"The&nbsp;$F&nbsp;"</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>The&nbsp;hello,&nbsp;china,^&nbsp;&amp;&nbsp;&nbsp;</span></li>
</ol>
</div>
<pre class="shell" style="display: none" name="code">*
/home/l/g/tomotoboy &gt;F="HELLO"
/home/l/g/tomotoboy &gt;echo "$F"
HELLO
/home/l/g/tomotoboy &gt;echo $F
HELLO
/home/l/g/tomotoboy &gt;F="hello, china,^ &amp;"
/home/l/g/tomotoboy &gt;echo $F
hello, china,^ &amp;
/home/l/g/tomotoboy &gt;echo "The $F "
The hello, china,^ &amp;</pre>
<br />
单引号 <br />
单引号与双引号类似，不同的是shell会忽略任何引用值。换句话说，如果屏蔽了其特殊含义，会将引号里的所有字符，包括引号都作为一个字符串。使用上一个例子，结果如下： <br />
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Shell代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://shihaiyang.javaeye.com/blog/439961#"></a></div>
</div>
<ol class="dp-default">
    <li><span><span>/home/l/g/tomotoboy&nbsp;&gt;echo&nbsp;</span><span class="string">"The&nbsp;'$GIRL'&nbsp;did&nbsp;well"</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>The&nbsp;</span><span class="string">'girl'</span><span>&nbsp;did&nbsp;well &nbsp;&nbsp;</span></span></li>
    <li><span>/home/l/g/tomotoboy&nbsp;&gt;echo&nbsp;</span><span class="string">'The&nbsp;'</span><span>$GIRL</span><span class="string">'&nbsp;did&nbsp;well'</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>The&nbsp;girl&nbsp;did&nbsp;well &nbsp;&nbsp;</span></li>
    <li><span>/home/l/g/tomotoboy&nbsp;&gt;echo&nbsp;</span><span class="string">'The&nbsp;$GIRL&nbsp;did&nbsp;well'</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>The&nbsp;$GIRL&nbsp;did&nbsp;well&nbsp;&nbsp;</span></li>
</ol>
</div>
<pre class="shell" style="display: none" name="code">/home/l/g/tomotoboy &gt;echo "The '$GIRL' did well"
The 'girl' did well
/home/l/g/tomotoboy &gt;echo 'The '$GIRL' did well'
The girl did well
/home/l/g/tomotoboy &gt;echo 'The $GIRL did well'
The $GIRL did well</pre>
<br />
反引号 <br />
反引号用于设置系统命令的输出到变量。shell将反引号中的内容作为一个系统命令，并执行其内容。使用这种方法可以替换输出为一个变量。反引号可以与引号结合使用。下面将举例说明。 <br />
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Shell代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://shihaiyang.javaeye.com/blog/439961#"></a></div>
</div>
<ol class="dp-default">
    <li><span><span>/home/l/g/tomotoboy&nbsp;&gt;echo&nbsp;`who|&nbsp;wc&nbsp;-l` &nbsp;&nbsp;</span></span></li>
    <li><span class="number">13</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>/home/l/g/tomotoboy&nbsp;&gt;echo&nbsp;`date` &nbsp;&nbsp;</span></li>
    <li><span>Tue&nbsp;Aug&nbsp;</span><span class="number">4</span><span>&nbsp;</span><span class="number">15</span><span>:</span><span class="number">08</span><span>:</span><span class="number">47</span><span>&nbsp;CST&nbsp;</span><span class="number">2009</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<pre class="shell" style="display: none" name="code">/home/l/g/tomotoboy &gt;echo `who| wc -l`
13
/home/l/g/tomotoboy &gt;echo `date`
Tue Aug 4 15:08:47 CST 2009</pre>
<br />
反斜线 <br />
如果下一个字符有特殊含义，反斜线防止 shell误解其含义，即屏蔽其特殊含义。下述字符包含有特殊意义：&amp; * + ^ $ ` " | ?。假定echo命令加*，意即以串行顺序打印当前整个目录列表，而不是一个星号 *。 <br />
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Shell代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://shihaiyang.javaeye.com/blog/439961#"></a></div>
</div>
<ol class="dp-default">
    <li><span><span>/home/l/g/tomotoboy&nbsp;&gt;echo&nbsp;\* &nbsp;&nbsp;</span></span></li>
    <li><span>* &nbsp;&nbsp;</span></li>
    <li><span>/home/l/g/tomotoboy&nbsp;&gt;echo&nbsp;$$ &nbsp;&nbsp;</span></li>
    <li><span class="number">26421</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>/home/l/g/tomotoboy&nbsp;&gt;echo&nbsp;$! &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li><span>/home/l/g/tomotoboy&nbsp;&gt;echo&nbsp;$# &nbsp;&nbsp;</span></li>
    <li><span class="number">0</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>/home/l/g/tomotoboy&nbsp;&gt;echo&nbsp;\$$ &nbsp;&nbsp;</span></li>
    <li><span>$$ &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li><span>/home/l/g/tomotoboy&nbsp;&gt;echo&nbsp;</span><span class="number">12</span><span>*</span><span class="number">12</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span class="number">12</span><span>*</span><span class="number">12</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>/home/l/g/tomotoboy&nbsp;&gt;echo&nbsp;</span><span class="number">12</span><span>&nbsp;*&nbsp;</span><span class="number">12</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span class="number">12</span><span>&nbsp;a.out&nbsp;append.sed&nbsp;change.sed&nbsp;core.log&nbsp;diary.txt&nbsp;echo&nbsp;factorial&nbsp;factorial.c&nbsp;greeting.sh&nbsp;grepgrepstrings&nbsp;grepstr&nbsp;hdisk.txt&nbsp;hello&nbsp;hello.cpp&nbsp;main&nbsp;main.c&nbsp;nohup.out&nbsp;oops.txt&nbsp;plane.txt&nbsp;readme.sh&nbsp;seawolf&nbsp;sed.out&nbsp;sed.txt&nbsp;sort.txt&nbsp;stat.tmp&nbsp;test&nbsp;test.sh&nbsp;user.&nbsp;online&nbsp;</span><span class="number">12</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<pre class="shell" style="display: none" name="code">/home/l/g/tomotoboy &gt;echo \*
*
/home/l/g/tomotoboy &gt;echo $$
26421
/home/l/g/tomotoboy &gt;echo $!
/home/l/g/tomotoboy &gt;echo $#
0
/home/l/g/tomotoboy &gt;echo \$$
$$
/home/l/g/tomotoboy &gt;echo 12*12
12*12
/home/l/g/tomotoboy &gt;echo 12 * 12
12 a.out append.sed change.sed core.log diary.txt echo factorial factorial.c greeting.sh grepgrepstrings grepstr hdisk.txt hello hello.cpp main main.c nohup.out oops.txt plane.txt readme.sh seawolf sed.out sed.txt sort.txt stat.tmp test test.sh user. online 12</pre>
<br />
使用命令expr时,用*表示乘法会出现错误,在*前加上反斜线才会正确。 <br />
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Shell代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://shihaiyang.javaeye.com/blog/439961#"></a></div>
</div>
<ol class="dp-default">
    <li><span><span>/home/l/g/tomotoboy&nbsp;&gt;expr&nbsp;</span><span class="number">12</span><span>&nbsp;*&nbsp;</span><span class="number">12</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>expr:&nbsp;syntax&nbsp;error &nbsp;&nbsp;</span></li>
    <li><span>/home/l/g/tomotoboy&nbsp;&gt;expr&nbsp;</span><span class="number">12</span><span>&nbsp;\*&nbsp;</span><span class="number">12</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span class="number">144</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<pre class="shell" style="display: none" name="code">/home/l/g/tomotoboy &gt;expr 12 * 12
expr: syntax error
/home/l/g/tomotoboy &gt;expr 12 \* 12
144</pre>
<br />
在echo命令中加入元字符，必须用反斜线起屏蔽作用。下面的例子要显示价格 $129。其 <br />
中$屏蔽与不屏蔽将产生不同的结果。 <br />
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Shell代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://shihaiyang.javaeye.com/blog/439961#"></a></div>
</div>
<ol class="dp-default">
    <li><span><span>/home/l/g/tomotoboy&nbsp;&gt;echo&nbsp;$</span><span class="number">129</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span class="number">29</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>/home/l/g/tomotoboy&nbsp;&gt;echo&nbsp;\$</span><span class="number">129</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>$</span><span class="number">129</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<pre class="shell" style="display: none" name="code">/home/l/g/tomotoboy &gt;echo $129
29
/home/l/g/tomotoboy &gt;echo \$129
$129</pre>
<br />
</div>
 <img src ="http://www.blogjava.net/jzone/aggbug/304085.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jzone/" target="_blank">Gavin.lee</a> 2009-11-29 12:01 <a href="http://www.blogjava.net/jzone/articles/304085.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>命令执行顺序</title><link>http://www.blogjava.net/jzone/articles/304073.html</link><dc:creator>Gavin.lee</dc:creator><author>Gavin.lee</author><pubDate>Sun, 29 Nov 2009 03:48:00 GMT</pubDate><guid>http://www.blogjava.net/jzone/articles/304073.html</guid><description><![CDATA[在执行某个命令的时候，有时需要依赖于前一个命令是否执行成功。例如，假设你希望将一个目录中的文件全部拷贝到另外一个目录中后，然后删除源目录中的全部文件。在删除之前，你希望能够确信拷贝成功，否则就有可能丢失所有的文件。 <br />
如果希望在成功地执行一个命令之后再执行另一个命令，或者在一个命令失败后再执行另一个命令，&amp;&amp;和||可以完成这样的功能。相应的命令可以是系统命令或shell脚本。shell还提供了在当前shell或子shell中执行一组命令的方法，即使用（）和{ }。 <br />
<br />
1.使用&amp;&amp; <br />
使用&amp; &amp;的一般形式为： <br />
命令1 &amp;&amp; 命令2 <br />
这种命令执行方式相当地直接。&amp;&amp;左边的命令（命令1）返回真(即返回0，成功被执行）后，&amp;&amp;右边的命令（命令2）才能够被执行；换句话说， &#8220;如果这个命令执行成功 &amp; &amp;那么执 <br />
行这个命令&#8221;。 <br />
这里有一个使用&amp; &amp;的简单例子： <br />
$ cp file1 file2 &amp;&amp; echo "Success!" <br />
<br />
Success! <br />
<br />
2.使用|| <br />
使用||的一般形式为： <br />
命令1 || 命令2| |的作用有一些不同。如果 ||左边的命令（命令1）未执行成功，那么就执行 ||右边的命令（命令2）；或者换句话说，&#8220;如果这个命令执行失败了||那么就执行这个命令&#8221;。 <br />
这里有一个使用||的简单例子： <br />
$ cp file1 file2 || echo "Failed!" <br />
<br />
cp: file1 : No such file or directory <br />
Failed! <br /><img src ="http://www.blogjava.net/jzone/aggbug/304073.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jzone/" target="_blank">Gavin.lee</a> 2009-11-29 11:48 <a href="http://www.blogjava.net/jzone/articles/304073.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux 第一篇</title><link>http://www.blogjava.net/jzone/articles/290355.html</link><dc:creator>Gavin.lee</dc:creator><author>Gavin.lee</author><pubDate>Sat, 08 Aug 2009 09:46:00 GMT</pubDate><guid>http://www.blogjava.net/jzone/articles/290355.html</guid><description><![CDATA[<p>没系统的看过linux书籍，初步接触linux，只是通过SecureCRT远程操作，实施过程中常用的指令，罗列如下：<br />
<br />
Last login: Sun Jul 26 21:54:31 2009 from inter.boss.com<br />
[wap@centos5 ~]$ pwd<br />
/home/wap<br />
[wap@centos5 ~]$ ll<br />
总计 36104<br />
-rw-r--r--&nbsp; 1 wap wap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 07-28 09:37 1<br />
-rw-rw-r--&nbsp; 1 wap wap&nbsp; 1101851 2008-10-23 119.<br />
drwxrwxr-x 11 wap wap&nbsp;&nbsp;&nbsp;&nbsp; 4096 07-07 14:22 3gqqhtml<br />
drwxrwxr-x&nbsp; 2 wap wap&nbsp;&nbsp;&nbsp;&nbsp; 4096 2008-09-24 awstats<br />
drwxr-xr-x&nbsp; 5 wap wap&nbsp;&nbsp;&nbsp;&nbsp; 4096 2008-09-24 awstats-6.8<br />
-rw-rw-r--&nbsp; 1 wap wap&nbsp; 1101851 2008-09-24 awstats-6.8.tar.gz<br />
drwxrwxr-x&nbsp; 2 wap wap&nbsp;&nbsp;&nbsp;&nbsp; 4096 05-14 12:08 bin<br />
-rw-rw-r--&nbsp; 1 wap wap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 914 04-20 14:23 closetrade.jsp<br />
drwxrwxr-x 11 wap wap&nbsp;&nbsp;&nbsp;&nbsp; 4096 06-11 16:23 easouWAP<br />
drwxrwxr-x 14 wap wap&nbsp;&nbsp; 430080 06-25 14:35 html<br />
-rw-rw-r--&nbsp; 1 wap wap 33038020 2008-09-09 html.war<br />
drwxrwxr-x&nbsp; 3 wap wap&nbsp;&nbsp;&nbsp;&nbsp; 4096 2008-11-21 interfaceWAP<br />
-rw-rw-r--&nbsp; 1 wap wap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 97 05-22 10:01 jump.txt<br />
drwxr-xr-x&nbsp; 3 wap wap&nbsp;&nbsp;&nbsp;&nbsp; 4096 07-23 17:02 public_html<br />
lrwxrwxrwx&nbsp; 1 wap wap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 29 2008-09-08 resin -&gt; /usr/local/share/resin-3.1.0/<br />
-rw-rw-r--&nbsp; 1 wap wap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 891 2008-12-02 rsa_private_key.pem<br />
-rw-rw-r--&nbsp; 1 wap wap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 272 2008-12-02 rsa_public_key.pem<br />
drwxrwxr-x&nbsp; 2 wap wap&nbsp;&nbsp;&nbsp;&nbsp; 4096 2008-11-03 sessions<br />
-rw-r--r--&nbsp; 1 wap wap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 07-23 16:50 wap500wan2.0.zip<br />
-rw-rw-r--&nbsp; 1 wap wap&nbsp; 1101851 2008-10-23 yixuntk@119.147.16.9</p>
<p>重启resin<br />
[wap@centos5 ~]$ cd resin/bin/<br />
[wap@centos5 bin]$ ./httpd.sh stop<br />
Resin/3.1.0 stopped -server ''.<br />
[wap@centos5 bin]$ ./httpd.sh start<br />
Resin/3.1.0 started -server ''.<br />
[wap@centos5 bin]$ </p>
<p>----------------------------------------------------------------------<br />
可以用cat或者是more命令查看文件，要想编辑可以vi命令。</p>
<p>----------------------------------------------------------------------</p>
<p>清屏 clear 或ctrl+l <br />
----------------------------------------------------------------------</p>
<p>如何修改文件名：&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mv&nbsp;&nbsp;&nbsp;&nbsp; 老文件名&nbsp;&nbsp; 新文件名 </p>
<p>修改文件名：<br />
[wap@centos5 2009080409]$ ll<br />
总计 32<br />
-rw-rw-r-- 1 wap wap&nbsp; 43 08-04 09:41 200908040941484148.txt<br />
-rw-rw-r-- 1 wap wap 250 08-04 09:41 200908040941484148.xml<br />
-rw-rw-r-- 1 wap wap&nbsp; 43 08-04 09:54 200908040954375437.txt<br />
-rw-rw-r-- 1 wap wap 294 08-04 09:54 200908040954375437.xml<br />
[wap@centos5 2009080409]$ mv 200908040941484148.txt test.txt<br />
[wap@centos5 2009080409]$ ll<br />
总计 32<br />
-rw-rw-r-- 1 wap wap 250 08-04 09:41 200908040941484148.xml<br />
-rw-rw-r-- 1 wap wap&nbsp; 43 08-04 09:54 200908040954375437.txt<br />
-rw-rw-r-- 1 wap wap 294 08-04 09:54 200908040954375437.xml<br />
-rw-rw-r-- 1 wap wap&nbsp; 43 08-04 09:41 test.txt<br />
----------------------------------------------------------------------</p>
<p>修改文件</p>
<p>vi&nbsp;&nbsp; 你要打开的文件名&nbsp; </p>
<p>调到你要修改的那行<br />
按 A </p>
<p>修改好了后：<br />
esc<br />
shift+：<br />
在：后面输入x 保存，输入q！不保存</p>
<p>----------------------------------------------------------------------</p>
<p>rm 删除文件<br />
[wap@centos5 cpinfo]$ rm 11.xml <br />
drwxrwxr-x 3 wap wap 4096 08-05 13:48 BankCardOrder<br />
[wap@centos5 CZ]$ rm -r -f BankCardOrder<br />
----------------------------------------------------------------------</p>
<p>&nbsp;</p>
<p>查看resin日志<br />
[wap@centos5 ~]$ cd resin/log<br />
[wap@centos5 log]$ ll<br />
总计 106544<br />
-rw-rw-r-- 1 wap wap 108422579 08-05 15:38 jvm-default.log<br />
-rw-rw-r-- 1 wap wap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1449 2009-01-06 servicelog<br />
-rw-rw-r-- 1 wap wap&nbsp;&nbsp;&nbsp; 122923 2008-09-28 wapservicelog<br />
-rw-rw-r-- 1 wap wap&nbsp;&nbsp;&nbsp; 407041 08-05 11:52 watchdog-manager.log<br />
[wap@centos5 log]$ tail -500 jvm-default.log&nbsp;&nbsp;&nbsp; 注：查看500行</p>
<p>----------------------------------------------------------------------</p>
<p><br />
如果第一个字符是横线，表示是一个非目录的文件。如果是d，表示是一个目录。<br />
----------------------------------------------------------------------</p>
<p>1.查找文件<br />
[www@3g_longgang CCBOrder]$ find -name 200908071338363836.txt<br />
./200908/20090807/2009080713/200908071338363836.txt<br />
[www@3g_longgang CCBOrder]$ cat 200908/20090807/2009080713/200908071338363836.txt<br />
tp=200&amp;RequestPack=&lt;?xml version="1.0" encoding="GBK"?&gt;<br />
&lt;xml&gt;<br />
&lt;un&gt;esun_342&lt;/un&gt;<br />
&lt;pw&gt;18E2953CB3515AF89432E26817EB094D&lt;/pw&gt;<br />
&lt;mn&gt;1.00&lt;/mn&gt;<br />
&lt;bn&gt;1691&lt;/bn&gt;<br />
&lt;pc&gt;&lt;/pc&gt;<br />
&lt;at&gt;&lt;/at&gt;<br />
&lt;crc&gt;CE4FB445A7B7576585B09AF55294D72F&lt;/crc&gt;<br />
&lt;/xml&gt;</p>
<p>2.查询所有文件名中含有2009的文件（包括了文件夹）<br />
[www@3g_longgang CCBOrder]$ find -name '2009*'<br />
./200908<br />
./200908/20090807<br />
./200908/20090807/2009080713<br />
./200908/20090807/2009080713/200908071338363836.txt<br />
./200908/20090807/2009080713/200908071338363836.xml</p>
<p>3.<br />
ctrl + s 查找暂停<br />
ctrl + q 再次启动查找<br />
ctrl + z 退出</p>
<p>4.查找文件中含有指定字符串的一行<br />
[www@3g_longgang 2009080716]$ ll<br />
total 24<br />
-rw-rw-r-- 1 www www 221 Aug&nbsp; 7 16:01 2009080716010919.txt<br />
-rw-rw-r-- 1 www www 159 Aug&nbsp; 7 16:01 2009080716010919.xml<br />
-rw-rw-r-- 1 www www 220 Aug&nbsp; 7 16:25 200908071625332533.txt<br />
-rw-rw-r-- 1 www www 158 Aug&nbsp; 7 16:25 200908071625332533.xml<br />
-rw-rw-r-- 1 www www 218 Aug&nbsp; 7 16:49 200908071649414941.txt<br />
-rw-rw-r-- 1 www www 156 Aug&nbsp; 7 16:49 200908071649414941.xml<br />
[www@3g_longgang 2009080716]$ cat 2009080716010919.txt<br />
tp=200&amp;RequestPack=&lt;?xml version="1.0" encoding="GBK"?&gt;<br />
&lt;xml&gt;<br />
&lt;un&gt;esun_henry&lt;/un&gt;<br />
&lt;pw&gt;D3877117CB6EA400BF2A8F1DF2F10CB1&lt;/pw&gt;<br />
&lt;mn&gt;20&lt;/mn&gt;<br />
&lt;bn&gt;1747&lt;/bn&gt;<br />
&lt;pc&gt;&lt;/pc&gt;<br />
&lt;at&gt;&lt;/at&gt;<br />
&lt;crc&gt;CF03188B286B138265AAB3A7999DDE51&lt;/crc&gt;<br />
&lt;/xml&gt;<br />
[www@3g_longgang 2009080716]$ grep -i "esun_henry" 2009080716010919.txt<br />
&lt;un&gt;esun_henry&lt;/un&gt;<br />
[www@3g_longgang 2009080716]$ </p>
<p>从文件内容查找匹配指定字符串的行：<br />
$ grep "被查找的字符串" 文件名<br />
从文件内容查找与正则表达式匹配的行：<br />
$ grep &#8211;e &#8220;正则表达式&#8221; 文件名<br />
查找时不区分大小写：<br />
$ grep &#8211;i "被查找的字符串" 文件名<br />
查找匹配的行数：<br />
$ grep -c "被查找的字符串" 文件名<br />
从文件内容查找不匹配指定字符串的行：<br />
$ grep &#8211;v "被查找的字符串" 文件名<br />
从根目录开始查找所有扩展名为.log的文本文件，并找出包含&#8221;ERROR&#8221;的行<br />
find / -type f -name "*.log" | xargs grep "ERROR" </p>
<p>比如查找当前目录下面所有的php文件里面的内容<br />
find ./ -name "*.php" | xargs grep '要查找的内容'<br />
如果需要查找的内容包含特殊符号，比如$等等，grep要加参数<br />
find ./ -name "*.php" | xargs grep -F '要查找的内容'</p>
<p><br />
----------------------------------------------------------------------</p>
<p>1.Linux系统的文件组织型式是典型的层次结构，是一颗倒立的树，通常通过路径对系统中的某个文件或目录进行操作。请分别简述什么是绝对路径和相对路径？<br />
&nbsp;答：绝对路径以/开头；相对路径不以/开头，是相对与当前目录的位置</p>
<p>2.Linux系统中，文件有哪三种访问特权？对于目录文件来说，这三种访问特权的含义分别是什么？<br />
&nbsp;答：文件有可读，可写，可执行三种权限<br />
可读:对于目录对应的是有权读出这个目录<br />
可写:有权目录下建立或者删除一个目录项<br />
可执行:可以搜索这个目录</p>
<p>3.Linux系统终端，键入命令：ls &#8211;l /etc/passwd，回车后，显示如下信息：<br />
-rw-r--r--&nbsp;&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp; root&nbsp;&nbsp;&nbsp; 1363 10月 13 10:54 /etc/passwd<br />
&nbsp;请简述以上信息中&#8220;-rw-r--r--&nbsp;&nbsp;&nbsp; 1 root&nbsp;&nbsp;&nbsp;&nbsp; root&#8221; 各段的含义。<br />
&nbsp;答：-rw-r--r--表示拥有者具有可读可写权限，所在组具有可读权限，任何用户拥有可读权限，拥有者是root,在root组</p>
<p>4.Linux系统中，有几个常用的查看文件内容的命令：cat、more、less、head、tail等，请简述more和less以及head和tail之间的区别。<br />
&nbsp;答：more是分页察看文件内容，less与more的区别是less能灵活翻页，能向后翻页；head是查看文件的头部内容，tail是查看文件的末尾内容</p>
<p>5.以root身份登录系统，在终端做以下操作：<br />
（1）查看当前的工作目录；<br />
[wap@centos5 wap2.500wan.com]$ ls<br />
images&nbsp; logs&nbsp; META-INF&nbsp; page&nbsp; views&nbsp; waplogs&nbsp; WEB-INF<br />
（2）删除用户名为zhangsan的用户（假设该用户已经存在）；</p>
<p>（3）切换到lisi用户（假设该用户已经存在）；</p>
<p>（4）在lisi主目录下创建一个目录，目录名为dir。<br />
[wap@centos5 CZ]$ ll<br />
总计 0<br />
[wap@centos5 CZ]$ mkdir test<br />
[wap@centos5 CZ]$ ll<br />
总计 8<br />
drwxrwxr-x 2 wap wap 4096 08-05 20:17 test<br />
[wap@centos5 CZ]$ </p>
<p># ls<br />
# userdel zhangsan<br />
# login<br />
# lisi<br />
# cd ~lisi/<br />
# mkdir dir <br />
----------------------------------------------------------------------</p>
<p><br />
----------------------------------------------------------------------<br />
----------------------------------------------------------------------<br />
----------------------------------------------------------------------<br />
----------------------------------------------------------------------<br />
----------------------------------------------------------------------<br />
----------------------------------------------------------------------<br />
----------------------------------------------------------------------<br />
----------------------------------------------------------------------</p>
<p>&nbsp;</p>
 <img src ="http://www.blogjava.net/jzone/aggbug/290355.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jzone/" target="_blank">Gavin.lee</a> 2009-08-08 17:46 <a href="http://www.blogjava.net/jzone/articles/290355.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>