<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[日常脚本习惯，关于rm操作的总结]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Wed, 25 Aug 2010 02:07:39 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	日常脚本习惯：<br/><br/>（1）所有字符串用引号引起来。比如grep abc&gt; run.log，类似含有“&gt;”等特殊符号的命令，如果不加引号，在执行时可能会带来不可预料的后果。 建议在输入参数时，先输入一对双引号，再返回来输入参数值，这样出错的可能性就小很多了。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;shell中各种引号的区别：<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;1）双引号，也称为弱引号，如果参数是用双引号括起的话，Shell解释器会先扩展双引号里面元字符引导的变量，字符代表的意义。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER=&quot;selen&quot;;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;$USER is my name.&quot;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selen is my name.<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;2）单引号,也称为强引号，在单引号里面的所有字符，包括元字符，都会当成没有特殊意义的字符。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER=&quot;selen&quot;;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;$USER is my name.&quot;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$USER is my name.<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;3）反引号，将两个反引号之前的字符串作为命令执行，并在当前位置输出命令的标准输出。和 $()有相同的功能。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lst=`pwd`<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $lst<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/usr/local/smsmt/sh<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;4）一些例子<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#如何输出一个单引号<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;&quot;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &#92;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#如何输出一个双引号<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;&quot;&quot;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#单引号中如何输出变量的值,即单引号中如果还有一层单引号，可以开启变量的替换。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USER=&quot;selen&quot;;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $USER is my name.<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selen is my name.<br/><br/>（2）所有命令的参数数指定，尽量不要用默认，而是明确指出。比如使用ls -lrht想取到文件的修改时间，如果不指定时间格式的话，会使用本机默认的时间格式，在不同的机器，甚至不同的用户下不会不同的执行结果；最好加上如--time-style=&quot;full-iso&quot;之类的格式限定参数。<br/><br/><br/>关于rm操作的总结：<br/>运维人员经常需要定期在后台删除一些东西，如日志、过期的数据等，这些都涉及到rm操作；<br/>&nbsp;&nbsp;&nbsp;&nbsp;进行rm操作有很强的风险，一定要慎之又慎，否则会造成很严重的后果，比如需要删除某个目录下的某些数据，<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;你输入了rm /<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;此时你手一抖或者无意识地敲到了回车，完了。。。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;更杯具的是，你是用root用户登陆的。。。<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;为了降低风险，在rm操作时采用以下步骤：<br/>&nbsp;&nbsp;&nbsp;&nbsp;a、先用ls命令列出你所要删除的文件；<br/>&nbsp;&nbsp;&nbsp;&nbsp;b、再确认一遍所列文件是否全是需要删除的文件；<br/>&nbsp;&nbsp;&nbsp;&nbsp;c、确认完毕后，将命令的ls修改为rm，然后回车，完成删除操作；<br/>&nbsp;&nbsp;&nbsp;&nbsp;d、多输入几次ls命令，防止无意中按到向上箭头+回车，又一次杯具的上演；<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;ps：在日常的运维工作中，一定不要先输入rm然后再输入路径，这样很容易造成误操作，切记；人不在，记得锁屏，并且主窗口<br/><br/>不要是O-secureCrt，否则也有出错的风险；能脚本例行化的，采用脚本例行化，以尽量规避认为操作的风险。<br/><br/>
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] 日常脚本习惯，关于rm操作的总结]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>