<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>陈志伟博客 &#187; 默认分类</title>
	<atom:link href="http://chenzhiwei.net/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://chenzhiwei.net</link>
	<description>善始者实繁，克终者盖寡。</description>
	<lastBuildDate>Sat, 17 Mar 2012 04:16:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>云游僧人看破红尘的秘密</title>
		<link>http://chenzhiwei.net/2012/03/view-of-social-progress/</link>
		<comments>http://chenzhiwei.net/2012/03/view-of-social-progress/#comments</comments>
		<pubDate>Sun, 04 Mar 2012 05:58:26 +0000</pubDate>
		<dc:creator>zhiwei</dc:creator>
				<category><![CDATA[默认分类]]></category>
		<category><![CDATA[互联网]]></category>
		<category><![CDATA[历史]]></category>
		<category><![CDATA[社会进步]]></category>
		<category><![CDATA[财富]]></category>

		<guid isPermaLink="false">http://chenzhiwei.net/?p=30451</guid>
		<description><![CDATA[最近，组织了一个饭局，席间僧俗两界展开了一场关于中国权力走向的无遮讨论。话题的起因在于很多人对当前的权力中心感到失望，认为这十年来，中国政治改革停滞不前，许多方面呈现倒退跟他们的无所作为有很大关系。应该说，这样的想法代表很多知识分子的看法，再加上去年“五不搞”的宣言，很多人对此都非常不满。一位党史教授就曾愤怒的表示：这帮人连向忠发都不如。然而，一个四处云游的出家人却与大家有着不同的看法。 朝廷自我约束促使社会进步 法师认为：如果以儒家成王成圣的眼光看，权力越大，责任应该越大，王爷不能做到治国平天下便是失败；而如果从道家无为而治的角度出发，无为才能无所不为，权力中心的不思进取恰恰给了整个社会一个自我孕育的空间。 纵观这十年，没有一个领导人把自己的私货塞进宪法，让全民奉承吹捧，既终结了个人崇拜的传统，也瓦解了意识形态凌驾国家法律的惯例；高层权力内斗逐渐公开化，团结胜利的假象一去不复返，　温总多次发表讲话，力主政治体制改革，宣扬民主、自由、法治、人权观念，直接与“五不搞”形成正面对撞；分税制的弊端日益显现，地方与中央的各种博弈将会更加激烈，包括重庆、广东在内的省市各有不同的地方模式；官僚体系则出现复杂异动，王立军的出走让黑打黑神话破产的同时，也让所有中层官员开始反思自己的前途，老鼠会的模式除了自己分了一些不义之财外，让自己得到了什么？ 正是权力中心的去光荣化、去正确化，我们看到这十年中，民间自我成长开始有了成熟的特征。互联网逐渐成为社会主流声音，人民日报不得不开始揣摩人民的心思；独立候选人勇敢参选，所体现出来的公民觉悟、现代意识已经是站在新的历史高度；乌坎的成功，一举打碎89之后官方的强势维稳思路，也让所有的中国人看到，基层通过自我立宪的方式实现自治将从这里开始。 朝廷自我约束对于国民来说是一种幸福 相比江朱时代，权力中心一直在弱化。法师认为，如果单纯讲胡温时期的表现，或许有一叶障目的可能，那么对比历史的不同时期，我们可以发现中国的确已经从谋财害命阶段走到了谋财不害命阶段，这不能不说是很大的进步。 1949到1979，数以亿计的中国人死于各种整人运动，远远超过日本人8年侵华时期；1979以后，也有许多人被体制清理出来，其毁灭程度跟之前相比已经是天壤之别；1992到2002，底下的捕快迫害了一些人；而从2002到2012，没有阶级斗争，没有出现乱杀人现象，不同政见者也获得了相对宽容的待遇。即便中间出现了一些维稳事件，尤其是去年发生的一系列敏感问题，反而促成了民间的启蒙。 无论宗教还是世俗，人的生命都是最为重要的。从谋财害命到谋财不害命，是执政者科学发展向以人为本进行的转变，也是权力中心一步步弱化朝正常状态回归的表现。以人文本意味着大家都要把人当人看，国民不是畜生，领导人也不是超人。全国集中在北京，北京集中在朝廷，朝廷集中在个别人手上的做法，实际上对于所有人来说都是非常危险的事情。世界是平的，没有了伟大领袖，没有了设计师，也就没有了生灵涂炭。 财富实际上是在不断的扩散 有人认为这十年里国家呈现国进民退的状况，而财富被既得利益集团所垄断。这种说法有正确的一面，但是也有不对的地方。贫富相对差距在扩大是事实，这一点从基尼指数就可以看出来。佛法讲因果，今天的果必须跟昨天的因一起看，才能看到真理实相。 49年建政之后，中国推行的社会主义改造实际上是一场抢劫运动，结果56年之后中国把资本家、地主、私有财产权全都消灭，土地和工厂却没与分到农民和工人手中。名义上是公有制，实际上是把所有的权力与财富都集中于毛一人手中，在长达27年的时间里，建立起来的伟大领袖所有制，让毛控制了中国土地上的财富、女人、权力乃至生命，从北朝鲜的今天我们就可以清楚的发现所谓的社会主义公有制不过是金家所有制而已。改革开放之后，中国的财富从毛那里转移出来，逐步被500个家族所瓜分，如果500个家族，每个家族辐射1万人，有500万人可以来分一杯羹。中国的政治体制从一人独裁转为寡头执政，当年老百姓非常不满的官倒和价格双轨制其实就是权贵瓜分中国财富的开始。 中国目前超发了14万亿人民币，这些超发的货币洗劫了国民的财富，与此同时，公务员、国企、军人的待遇却没有受到通货膨胀的影响，原因在于他们分到了更多的货币，而普通老百姓却没有分到足以抵消物价上涨的多余货币；基本上每一个公务员都在房价大涨的年代分到了房子，房子在这十年中至少翻了四翻，意味着每一个分到房子的人都参与到了分割国民财富的运动之中。这些情况表明中国已经从五百家族所有制过渡到了公务员军人所有制。执政基础扩大，国家实际上的股东越来越多，分红的人越多说明财富也在扩散，权力也进一步分散。 另外，个别人在政治体制改革上的止步不前，是改革开放之后规定的一种延续，只有私有化不进行民主化，必然会导致掌握权力的人有能力分得更多的国家财产，萧规曹随，哪一群人来执政其结果必定如此，除非他能革掉自己的命；包括分税制、货币化分房，公安凌驾法院检察院的做法都是江朱时代所确立的，现在的恶果早在当时已经种下了。 王爷威武百姓遭殃 如果我们再从权力关系来分析，对于在位者来说，其权力不是由国民赋予的，而是由权贵赋予的，因此，他们的所作所为只会向权贵负责，而不是向国民负责。这决定了在位的个别人其努力的方向绝不会与普通人、知识分子的期望保持一致。当权力没有监督可以在牢笼外面肆虐之时，盼望这些人励精图治，按照自己的所想前行无疑是一种可爱的幻想；一旦他们真的有所作为，为害的可能性远远大过为善的可能性。因此，只有少一份作为，便少一分作恶。 80年代民间和执政者的理念空前一致，创造了建政之后的黄金时期是由历史机缘所致，强求不来。之后，民间和执政者便开始分道扬镳，服从者被收买，独立思考者被排斥，大学彻底沦为帮凶，民间在很长的时间里失去了声音，随着互联网的推广，而今民间掌握的话语优势已是不可逆转，完全有能力参与到各种博弈中间去。 注：该文章转载自“一五一十部落”，作者：信力建 原文地址： http://www.my1510.cn/article.php?id=73394 &#169; 2012, chenzhiwei.net. 版权所有. 本文永久链接：http://chenzhiwei.net/2012/03/view-of-social-progress/相关日志互联网与我互联网和我]]></description>
			<content:encoded><![CDATA[<p>最近，组织了一个饭局，席间僧俗两界展开了一场关于中国权力走向的无遮讨论。话题的起因在于很多人对当前的权力中心感到失望，认为这十年来，中国政治改革停滞不前，许多方面呈现倒退跟他们的无所作为有很大关系。应该说，这样的想法代表很多知识分子的看法，再加上去年“五不搞”的宣言，很多人对此都非常不满。一位党史教授就曾愤怒的表示：这帮人连向忠发都不如。然而，一个四处云游的出家人却与大家有着不同的看法。<span id="more-30451"></span></p>
<p><strong>朝廷自我约束促使社会进步</strong></p>
<p>法师认为：如果以儒家成王成圣的眼光看，权力越大，责任应该越大，王爷不能做到治国平天下便是失败；而如果从道家无为而治的角度出发，无为才能无所不为，权力中心的不思进取恰恰给了整个社会一个自我孕育的空间。</p>
<p>纵观这十年，没有一个领导人把自己的私货塞进宪法，让全民奉承吹捧，既终结了个人崇拜的传统，也瓦解了意识形态凌驾国家法律的惯例；高层权力内斗逐渐公开化，团结胜利的假象一去不复返，　温总多次发表讲话，力主政治体制改革，宣扬民主、自由、法治、人权观念，直接与“五不搞”形成正面对撞；分税制的弊端日益显现，地方与中央的各种博弈将会更加激烈，包括重庆、广东在内的省市各有不同的地方模式；官僚体系则出现复杂异动，王立军的出走让黑打黑神话破产的同时，也让所有中层官员开始反思自己的前途，老鼠会的模式除了自己分了一些不义之财外，让自己得到了什么？</p>
<p>正是权力中心的去光荣化、去正确化，我们看到这十年中，民间自我成长开始有了成熟的特征。互联网逐渐成为社会主流声音，人民日报不得不开始揣摩人民的心思；独立候选人勇敢参选，所体现出来的公民觉悟、现代意识已经是站在新的历史高度；乌坎的成功，一举打碎89之后官方的强势维稳思路，也让所有的中国人看到，基层通过自我立宪的方式实现自治将从这里开始。</p>
<p><strong>朝廷自我约束对于国民来说是一种幸福</strong></p>
<p>相比江朱时代，权力中心一直在弱化。法师认为，如果单纯讲胡温时期的表现，或许有一叶障目的可能，那么对比历史的不同时期，我们可以发现中国的确已经从谋财害命阶段走到了谋财不害命阶段，这不能不说是很大的进步。</p>
<p>1949到1979，数以亿计的中国人死于各种整人运动，远远超过日本人8年侵华时期；1979以后，也有许多人被体制清理出来，其毁灭程度跟之前相比已经是天壤之别；1992到2002，底下的捕快迫害了一些人；而从2002到2012，没有阶级斗争，没有出现乱杀人现象，不同政见者也获得了相对宽容的待遇。即便中间出现了一些维稳事件，尤其是去年发生的一系列敏感问题，反而促成了民间的启蒙。</p>
<p>无论宗教还是世俗，人的生命都是最为重要的。从谋财害命到谋财不害命，是执政者科学发展向以人为本进行的转变，也是权力中心一步步弱化朝正常状态回归的表现。以人文本意味着大家都要把人当人看，国民不是畜生，领导人也不是超人。全国集中在北京，北京集中在朝廷，朝廷集中在个别人手上的做法，实际上对于所有人来说都是非常危险的事情。世界是平的，没有了伟大领袖，没有了设计师，也就没有了生灵涂炭。</p>
<p><strong>财富实际上是在不断的扩散</strong></p>
<p>有人认为这十年里国家呈现国进民退的状况，而财富被既得利益集团所垄断。这种说法有正确的一面，但是也有不对的地方。贫富相对差距在扩大是事实，这一点从基尼指数就可以看出来。佛法讲因果，今天的果必须跟昨天的因一起看，才能看到真理实相。</p>
<p>49年建政之后，中国推行的社会主义改造实际上是一场抢劫运动，结果56年之后中国把资本家、地主、私有财产权全都消灭，土地和工厂却没与分到农民和工人手中。名义上是公有制，实际上是把所有的权力与财富都集中于毛一人手中，在长达27年的时间里，建立起来的伟大领袖所有制，让毛控制了中国土地上的财富、女人、权力乃至生命，从北朝鲜的今天我们就可以清楚的发现所谓的社会主义公有制不过是金家所有制而已。改革开放之后，中国的财富从毛那里转移出来，逐步被500个家族所瓜分，如果500个家族，每个家族辐射1万人，有500万人可以来分一杯羹。中国的政治体制从一人独裁转为寡头执政，当年老百姓非常不满的官倒和价格双轨制其实就是权贵瓜分中国财富的开始。</p>
<p>中国目前超发了14万亿人民币，这些超发的货币洗劫了国民的财富，与此同时，公务员、国企、军人的待遇却没有受到通货膨胀的影响，原因在于他们分到了更多的货币，而普通老百姓却没有分到足以抵消物价上涨的多余货币；基本上每一个公务员都在房价大涨的年代分到了房子，房子在这十年中至少翻了四翻，意味着每一个分到房子的人都参与到了分割国民财富的运动之中。这些情况表明中国已经从五百家族所有制过渡到了公务员军人所有制。执政基础扩大，国家实际上的股东越来越多，分红的人越多说明财富也在扩散，权力也进一步分散。</p>
<p>另外，个别人在政治体制改革上的止步不前，是改革开放之后规定的一种延续，只有私有化不进行民主化，必然会导致掌握权力的人有能力分得更多的国家财产，萧规曹随，哪一群人来执政其结果必定如此，除非他能革掉自己的命；包括分税制、货币化分房，公安凌驾法院检察院的做法都是江朱时代所确立的，现在的恶果早在当时已经种下了。</p>
<p><strong>王爷威武百姓遭殃</strong></p>
<p>如果我们再从权力关系来分析，对于在位者来说，其权力不是由国民赋予的，而是由权贵赋予的，因此，他们的所作所为只会向权贵负责，而不是向国民负责。这决定了在位的个别人其努力的方向绝不会与普通人、知识分子的期望保持一致。当权力没有监督可以在牢笼外面肆虐之时，盼望这些人励精图治，按照自己的所想前行无疑是一种可爱的幻想；一旦他们真的有所作为，为害的可能性远远大过为善的可能性。因此，只有少一份作为，便少一分作恶。</p>
<p>80年代民间和执政者的理念空前一致，创造了建政之后的黄金时期是由历史机缘所致，强求不来。之后，民间和执政者便开始分道扬镳，服从者被收买，独立思考者被排斥，大学彻底沦为帮凶，民间在很长的时间里失去了声音，随着互联网的推广，而今民间掌握的话语优势已是不可逆转，完全有能力参与到各种博弈中间去。</p>
<p>注：该文章转载自“<a href="http://www.my1510.cn/" target="_blank">一五一十部落</a>”，作者：信力建<br />
原文地址： <a href="http://www.my1510.cn/article.php?id=73394">http://www.my1510.cn/article.php?id=73394</a></p>
<p style="font-weight: bold;">&copy; 2012, <a href="http://chenzhiwei.net">chenzhiwei.net</a>. 版权所有.  <br />本文永久链接：<a title="云游僧人看破红尘的秘密" href="http://chenzhiwei.net/2012/03/view-of-social-progress/">http://chenzhiwei.net/2012/03/view-of-social-progress/</a></p><hr /><div  class="related_post_title">相关日志</div><ul class="related_post"><li><a href="http://chenzhiwei.net/2009/07/the-internet-and-i/" title="互联网与我">互联网与我</a></li><li><a href="http://chenzhiwei.net/2009/04/internet-and-me/" title="互联网和我">互联网和我</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://chenzhiwei.net/2012/03/view-of-social-progress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>写博客获80童年大礼包</title>
		<link>http://chenzhiwei.net/2011/12/blog-hongluotuo-act/</link>
		<comments>http://chenzhiwei.net/2011/12/blog-hongluotuo-act/#comments</comments>
		<pubDate>Sun, 18 Dec 2011 05:36:07 +0000</pubDate>
		<dc:creator>zhiwei</dc:creator>
				<category><![CDATA[默认分类]]></category>
		<category><![CDATA[80]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[活动]]></category>

		<guid isPermaLink="false">http://chenzhiwei.net/?p=30448</guid>
		<description><![CDATA[今天邮箱中收到了一封标题为“邀请您参加写博客获80童年大礼包 ”的邮件，最近两年很少接到此类活动邮件了。随着微博的兴起，很多博主的博客几乎都不再更新了，在08年时认识的很多博主的博客现在都已经不存在了，我博客最近一年更新也非常少了，但是我不会关闭自己的博客。我是一个怀旧的人，我想用博客记录下来自己的一些事情，等到某年某月某日再回首查看。 简单介绍一下红骆驼网 红骆驼网成立于2010年10月，我们是一群怀有梦想的80后，如今的80后已经步入社会，成为社会中流砥柱，红骆驼网将为80后提供一份特别的礼物，童真。回想童年，会因为一块糖果，一个铁皮青蛙而玩得不亦乐乎。成年的80后，更需要一份童真支持他们走得更好，更远，为社会做出更多的贡献。 活动介绍： 只要您有一个博客，符合我们活动要求，就可以免费拿到红骆驼提供价值109元怀旧大礼包一份，不需要任何费用。 此次活动红骆驼希望可以为更多的80后，带来一份纯洁的童真。希望80后无论在生活中、工作中遇到困难了，没关系，红骆驼网的一件铁皮小青蛙、一块糖果为你带来一丝童真、一丝喜悦，让80后朋友带着童真继续前进。 活动时间： 2011年12月14日 ～ 12月26日，2012年1月3日统一发奖品。 活动规则： 中文博客用户，有无独立域名不限。 有至少1年以上的写博客历史，最后一次更新在本次活动前60天内。 有固定读者，读者数量不限。 对红骆驼产品有兴趣，愿意在博客上为红骆驼的产品或服务写一篇评价文章。 活动详情：http://blog.hongluotuo.com/?p=145 &#169; 2011, chenzhiwei.net. 版权所有. 本文永久链接：http://chenzhiwei.net/2011/12/blog-hongluotuo-act/相关日志博客最近的更新]]></description>
			<content:encoded><![CDATA[<p>今天邮箱中收到了一封标题为“邀请您参加写博客获80童年大礼包 ”的邮件，最近两年很少接到此类活动邮件了。随着微博的兴起，很多博主的博客几乎都不再更新了，在08年时认识的很多博主的博客现在都已经不存在了，我博客最近一年更新也非常少了，但是我不会关闭自己的博客。我是一个怀旧的人，我想用博客记录下来自己的一些事情，等到某年某月某日再回首查看。<img title="更多..." src="http://chenzhiwei.net/wordpress/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /><span id="more-30448"></span></p>
<p><strong>简单介绍一下红骆驼网</strong></p>
<p><a href="http://www.hongluotuo.com/" target="_blank">红骆驼网</a>成立于2010年10月，我们是一群怀有梦想的80后，如今的80后已经步入社会，成为社会中流砥柱，红骆驼网将为80后提供一份特别的礼物，童真。回想童年，会因为一块糖果，一个铁皮青蛙而玩得不亦乐乎。成年的80后，更需要一份童真支持他们走得更好，更远，为社会做出更多的贡献。</p>
<h3>活动介绍：</h3>
<p>只要您有一个博客，符合我们活动要求，就可以免费拿到红骆驼提供价值109元怀旧大礼包一份，不需要任何费用。</p>
<p>此次活动红骆驼希望可以为更多的80后，带来一份纯洁的童真。希望80后无论在生活中、工作中遇到困难了，没关系，红骆驼网的一件铁皮小青蛙、一块糖果为你带来一丝童真、一丝喜悦，让80后朋友带着童真继续前进。</p>
<p><img title="hongluotuo" src="http://blog.hongluotuo.com/wp-content/uploads/2011/12/blog.jpg" alt="" width="600" height="250" /><br />
<strong>活动时间：</strong><br />
2011年12月14日 ～ 12月26日，2012年1月3日统一发奖品。<br />
<strong>活动规则：</strong></p>
<ol>
<li>中文博客用户，有无独立域名不限。</li>
<li>有至少1年以上的写博客历史，最后一次更新在本次活动前60天内。</li>
<li>有固定读者，读者数量不限。</li>
<li>对红骆驼产品有兴趣，愿意在博客上为红骆驼的产品或服务写一篇评价文章。</li>
</ol>
<p><strong>活动详情：</strong><a href="http://blog.hongluotuo.com/?p=145">http://blog.hongluotuo.com/?p=145</a></p>
<p style="font-weight: bold;">&copy; 2011, <a href="http://chenzhiwei.net">chenzhiwei.net</a>. 版权所有.  <br />本文永久链接：<a title="写博客获80童年大礼包" href="http://chenzhiwei.net/2011/12/blog-hongluotuo-act/">http://chenzhiwei.net/2011/12/blog-hongluotuo-act/</a></p><hr /><div  class="related_post_title">相关日志</div><ul class="related_post"><li><a href="http://chenzhiwei.net/2011/01/recently-blog-update/" title="博客最近的更新">博客最近的更新</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://chenzhiwei.net/2011/12/blog-hongluotuo-act/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>内网IP和公网IP的区别</title>
		<link>http://chenzhiwei.net/2010/09/intranet-ip-and-public-ip-networks/</link>
		<comments>http://chenzhiwei.net/2010/09/intranet-ip-and-public-ip-networks/#comments</comments>
		<pubDate>Sat, 18 Sep 2010 07:51:15 +0000</pubDate>
		<dc:creator>zhiwei</dc:creator>
				<category><![CDATA[互联网络]]></category>
		<category><![CDATA[默认分类]]></category>
		<category><![CDATA[IP]]></category>
		<category><![CDATA[IPv4]]></category>
		<category><![CDATA[NAT]]></category>

		<guid isPermaLink="false">http://chenzhiwei.net/?p=30375</guid>
		<description><![CDATA[什么是内网IP： 一些小型企业或者学校，通常都是申请一个固定的IP地址，然后通过IP共享（IP Sharing），使用整个公司或学校的机器都能够访问互联网。而这些企业或学校的机器使用的IP地址就是内网IP，内网IP是在规划IPv4协议时，考虑到IP地址资源可能不足，就专门为内部网设计私有IP地址（或称之为保留地址），一般常用内网IP地址都是这种形式的：10.X.X.X、172.16.X.X-172.31.X.X、192.168.X.X等。需要注意的是，内网的计算机可向Internet上的其他计算机发送连接请求，但Internet上其他的计算机无法向内网的计算机发送连接请求。我们平时可能在内网机器上搭建过网站或者FTP服务器，而在外网是不能访问该网站和FTP服务器的，原因就在于此。 什么是公网IP（外网IP）： 公网IP就是除了保留IP地址以外的IP地址，可以与Internet上的其他计算机随意互相访问。我们通常所说的IP地址，其实就是指的公网IP。互联网上的每台计算机都有一个独立的IP地址，该IP地址唯一确定互联网上的一台计算机。这里的IP地址就是指的公网IP地址。 怎样理解互联网上的每台计算机都有一个唯一的IP地址： 其实，互联网上的计算机是通过“公网IP＋内网IP”来唯一确定的，就像很多大楼都是201房间一样，房间号可能一样，但是大楼肯定是唯一的。公网IP地址和内网IP地址也是同样，不同企业或学校的机器可能有相同的内网IP地址，但是他们的公网IP地址肯定不同。那么这些企业或学校的计算机是怎样IP地址共享的呢？这就需要使用NAT（Network Address Translation,网络地址转换）功能。当内部计算机要连接互联网时，首先需要通过NAT技术，将内部计算机数据包中有关IP地址的设置都设成NAT主机的公共IP地址，然后再传送到Internet，虽然内部计算机使用的是私有IP地址，但在连接Internet时，就可以通过NAT主机的NAT技术，将内网我IP地址修改为公网IP地址，如此一来，内网计算机就可以向Internet请求数据了。 什么是NAT（Network Address Translation,网络地址转换）： 网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。原因很简单，NAT不仅完美地解决了lP地址不足的问题，而且还能够有效地避免来自网络外部的攻击，隐藏并保护网络内部的计算机。 虽然NAT可以借助于某些代理服务器来实现，但考虑到运算成本和网络性能，很多时候都是在路由器上来实现的。 随着接入Internet的计算机数量的不断猛增，IP地址资源也就愈加显得捉襟见肘。事实 上，除了中国教育和科研计算机网(CERNET)外，一般用户几乎申请不到整段的C类IP地址。在其他ISP那里，即使是拥有几百台计算机的大型局域网用户，当他们申请IP地址时，所分配的地址也不过只有几个或十几个IP地址。显然，这样少的IP地址根本无法满足网络用户的需求，于是也就产生了NAT技 术。 参考资料： 1. 《鸟哥的Linux私房菜》 2. 百度百科词条：http://baike.baidu.com/view/16102.htm &#169; 2010, chenzhiwei.net. 版权所有. 本文永久链接：http://chenzhiwei.net/2010/09/intranet-ip-and-public-ip-networks/相关日志TCP/IP协议简介]]></description>
			<content:encoded><![CDATA[<p><strong>什么是内网IP：</strong></p>
<p>一些小型企业或者学校，通常都是申请一个固定的IP地址，然后通过IP共享（IP Sharing），使用整个公司或学校的机器都能够访问互联网。而这些企业或学校的机器使用的IP地址就是内网IP，内网IP是在规划IPv4协议时，考虑到IP地址资源可能不足，就专门为内部网设计私有IP地址（或称之为保留地址），一般常用内网IP地址都是这种形式的：10.X.X.X、172.16.X.X-172.31.X.X、192.168.X.X等。需要注意的是，内网的计算机可向Internet上的其他计算机发送连接请求，但Internet上其他的计算机无法向内网的计算机发送连接请求。我们平时可能在内网机器上搭建过网站或者FTP服务器，而在外网是不能访问该网站和FTP服务器的，原因就在于此。<span id="more-30375"></span></p>
<p><strong>什么是公网IP（外网IP）：</strong></p>
<p>公网IP就是除了保留IP地址以外的IP地址，可以与Internet上的其他计算机随意互相访问。我们通常所说的IP地址，其实就是指的公网IP。互联网上的每台计算机都有一个独立的IP地址，该IP地址唯一确定互联网上的一台计算机。这里的IP地址就是指的公网IP地址。</p>
<p><strong>怎样理解互联网上的每台计算机都有一个唯一的IP地址：</strong></p>
<p>其实，互联网上的计算机是通过“公网IP＋内网IP”来唯一确定的，就像很多大楼都是201房间一样，房间号可能一样，但是大楼肯定是唯一的。公网IP地址和内网IP地址也是同样，不同企业或学校的机器可能有相同的内网IP地址，但是他们的公网IP地址肯定不同。那么这些企业或学校的计算机是怎样IP地址共享的呢？这就需要使用NAT（Network Address Translation,网络地址转换）功能。当内部计算机要连接互联网时，首先需要通过NAT技术，将内部计算机数据包中有关IP地址的设置都设成NAT主机的公共IP地址，然后再传送到Internet，虽然内部计算机使用的是私有IP地址，但在连接Internet时，就可以通过NAT主机的NAT技术，将内网我IP地址修改为公网IP地址，如此一来，内网计算机就可以向Internet请求数据了。</p>
<p><strong>什么是NAT（Network Address Translation,网络地址转换）：</strong></p>
<p>网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。原因很简单，NAT不仅完美地解决了lP地址不足的问题，而且还能够有效地避免来自网络外部的攻击，隐藏并保护网络内部的计算机。</p>
<p>虽然NAT可以借助于某些代理服务器来实现，但考虑到运算成本和网络性能，很多时候都是在路由器上来实现的。</p>
<p>随着接入Internet的计算机数量的不断猛增，IP地址资源也就愈加显得捉襟见肘。事实 上，除了中国教育和科研计算机网(CERNET)外，一般用户几乎申请不到整段的C类IP地址。在其他ISP那里，即使是拥有几百台计算机的大型局域网用户，当他们申请IP地址时，所分配的地址也不过只有几个或十几个IP地址。显然，这样少的IP地址根本无法满足网络用户的需求，于是也就产生了NAT技 术。</p>
<p>参考资料：</p>
<p>1. 《鸟哥的Linux私房菜》</p>
<p>2. 百度百科词条：<a href="http://baike.baidu.com/view/16102.htm" target="_blank">http://baike.baidu.com/view/16102.htm</a></p>
<p style="font-weight: bold;">&copy; 2010, <a href="http://chenzhiwei.net">chenzhiwei.net</a>. 版权所有.  <br />本文永久链接：<a title="内网IP和公网IP的区别" href="http://chenzhiwei.net/2010/09/intranet-ip-and-public-ip-networks/">http://chenzhiwei.net/2010/09/intranet-ip-and-public-ip-networks/</a></p><hr /><div  class="related_post_title">相关日志</div><ul class="related_post"><li><a href="http://chenzhiwei.net/2011/01/tcp-and-ip-protocol/" title="TCP/IP协议简介">TCP/IP协议简介</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://chenzhiwei.net/2010/09/intranet-ip-and-public-ip-networks/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>我所认识的android</title>
		<link>http://chenzhiwei.net/2010/08/google-android-operating-system/</link>
		<comments>http://chenzhiwei.net/2010/08/google-android-operating-system/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 12:55:39 +0000</pubDate>
		<dc:creator>zhiwei</dc:creator>
				<category><![CDATA[默认分类]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[OS]]></category>

		<guid isPermaLink="false">http://chenzhiwei.net/?p=30336</guid>
		<description><![CDATA[android（维基词条）是机器人的意思，也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称，该平台由操作系统、中间件、用户界面和应用软件组成，号称是首个为移动终端打造的真正开放和完整的移动软件。 今年3月份和4月份，有一段时间我在学习android手机应用开发，当时也写了一篇文章“android初体验-HelloGallery实例详解”，当时自己刚刚开始学习，也没有教材，只能一点点的阅读英文文档，按照文档上面写的例子一个个的练习，也在网上的一些关于android的论坛（如机锋网、eoeandroid）上看别人发的帖子。因为我对java和eclipse很熟悉，所以学习起来很轻松。 我从来没用过android手机，但是在我学习android应用开发的这段时间，我感受到了android系统的强大，在众多开发者的努力下，android系统正在变的越来越牛，在android系统上面甚至可以编写php，这不得不让人感到惊奇。借助于android模拟器，我感觉到了android系统界面的友好和功能操作的便利。 就目前来看，我还是觉得android手机有点贵，一般的学生都用不起，在我周围还没有发现用android手机的同学呢，很多同学都是用的摩托罗拉和诺基亚，而更多的同学用的是山寨机，包括我在内。去年年初，我看到一篇文章，说国产山寨机安装android操作系统只需要500-800元就可以买下了，可渐渐的我发现，这纯粹是乱说，根本不是这回事，从谷奥Android站点建立开始，我一直都在订阅，一直在关注android系统的消息，感觉android手机离500-800元还有很长很长的一段路要走，也许永远都不可能实现。 就目前来看，android发展前景应该相当不错，有不作恶的google来提供支持及广大android爱好者来开发应用程序，相信用不了多久，就能超越某果的封闭式手机。我没有用过，也没有见过某果的封闭式手机，虽然在网上很多人都对此评价很高，但是我是不会使用它的，不为别的，就因为它不开放，不开源。 PS:这也是之前写的一篇博客，没有写完，今天我又补充了一点内容，但是仍然感觉标题和内容有些出入，但我还是把它发表出来了。现在，我的博客草稿箱里面已经空了，没有什么草稿文章了。。。 &#169; 2010, chenzhiwei.net. 版权所有. 本文永久链接：http://chenzhiwei.net/2010/08/google-android-operating-system/相关日志Linux内核基本结构哥的CN域名注册的Google Apps悲剧了关于操作系统Chrome Web Store正式上线Linux内核代码中的Makefile文件]]></description>
			<content:encoded><![CDATA[<p>android（<a href="http://zh.wikipedia.org/zh-cn/Android" target="_blank">维基词条</a>）是机器人的意思，也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称，该平台由操作系统、中间件、用户界面和应用软件组成，号称是首个为移动终端打造的真正开放和完整的移动软件。</p>
<p>今年3月份和4月份，有一段时间我在学习android手机应用开发，当时也写了一篇文章“<a href="http://chenzhiwei.net/2010/03/android-hellogallery-app/" target="_blank">android初体验-HelloGallery实例详解</a>”，当时自己刚刚开始学习，也没有教材，只能一点点的阅读英文文档，按照文档上面写的例子一个个的练习，也在网上的一些关于android的论坛（如<a href="http://bbs.gfan.com/" target="_blank">机锋网</a>、<a href="http://www.eoeandroid.com/" target="_blank">eoeandroid</a>）上看别人发的帖子。因为我对java和eclipse很熟悉，所以学习起来很轻松。<span id="more-30336"></span></p>
<p>我从来没用过android手机，但是在我学习android应用开发的这段时间，我感受到了android系统的强大，在众多开发者的努力下，android系统正在变的越来越牛，在android系统上面甚至可以<a href="http://android.google.org.cn/posts/php-for-android-install-it-and-start-testing.html" target="_blank">编写php</a>，这不得不让人感到惊奇。借助于android模拟器，我感觉到了android系统界面的友好和功能操作的便利。</p>
<p>就目前来看，我还是觉得android手机有点贵，一般的学生都用不起，在我周围还没有发现用android手机的同学呢，很多同学都是用的摩托罗拉和诺基亚，而更多的同学用的是山寨机，包括我在内。去年年初，我看到一篇文章，说国产山寨机安装android操作系统只需要500-800元就可以买下了，可渐渐的我发现，这纯粹是乱说，根本不是这回事，从<a href="http://android.google.org.cn/" target="_blank">谷奥Android站点</a>建立开始，我一直都在订阅，一直在关注android系统的消息，感觉android手机离500-800元还有很长很长的一段路要走，也许永远都不可能实现。</p>
<p>就目前来看，android发展前景应该相当不错，有不作恶的google来提供支持及广大android爱好者来开发应用程序，相信用不了多久，就能超越某果的封闭式手机。我没有用过，也没有见过某果的封闭式手机，虽然在网上很多人都对此评价很高，但是我是不会使用它的，不为别的，就因为它不开放，不开源。</p>
<p>PS:这也是之前写的一篇博客，没有写完，今天我又补充了一点内容，但是仍然感觉标题和内容有些出入，但我还是把它发表出来了。现在，我的博客草稿箱里面已经空了，没有什么草稿文章了。。。</p>
<p style="font-weight: bold;">&copy; 2010, <a href="http://chenzhiwei.net">chenzhiwei.net</a>. 版权所有.  <br />本文永久链接：<a title="我所认识的android" href="http://chenzhiwei.net/2010/08/google-android-operating-system/">http://chenzhiwei.net/2010/08/google-android-operating-system/</a></p><hr /><div  class="related_post_title">相关日志</div><ul class="related_post"><li><a href="http://chenzhiwei.net/2010/12/the-basic-structure-of-linux-kernel/" title="Linux内核基本结构">Linux内核基本结构</a></li><li><a href="http://chenzhiwei.net/2010/12/google-apps-will-delete-dot-cn-apps/" title="哥的CN域名注册的Google Apps悲剧了">哥的CN域名注册的Google Apps悲剧了</a></li><li><a href="http://chenzhiwei.net/2010/12/about-operating-system/" title="关于操作系统">关于操作系统</a></li><li><a href="http://chenzhiwei.net/2010/12/chrome-web-store-is-now-launched/" title="Chrome Web Store正式上线">Chrome Web Store正式上线</a></li><li><a href="http://chenzhiwei.net/2010/12/makefile-in-linux-kernel/" title="Linux内核代码中的Makefile文件">Linux内核代码中的Makefile文件</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://chenzhiwei.net/2010/08/google-android-operating-system/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>linux shell 学习笔记(四)</title>
		<link>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-4/</link>
		<comments>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-4/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 08:09:46 +0000</pubDate>
		<dc:creator>zhiwei</dc:creator>
				<category><![CDATA[编程相关]]></category>
		<category><![CDATA[默认分类]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://chenzhiwei.net/?p=30329</guid>
		<description><![CDATA[九、linux中的函数 函数代表一种模块化的设计思想，可以将一些常用的、内聚度高的操作封装成函数，在需要时进行调用。 1. 函数原型 1 2 3 4 function 函数名() { 语句 } 在此，function可以不显示指定。函数应先定义后使用，在调用时只需指定函数名即可，不用写()。 示例： 1 2 3 4 5 6 #!/bin/bash function printAddress() { echo &#34;your address is: beijing&#34; } printAddress 2. 函数的参数和返回值 在shell函数中，有两种方法使用参数：一种是变量直接传递法，另一种采用位置参数。 变量直接传递法是通过直接在外部声明变量，在函数体里面通过操作这些变量，达到向函数传递参数的目的。 例如： 1 2 3 4 5 6 7 8 9 10 #!/bin/bash address=&#34;beijing&#34; function printAddress() { echo &#34;your address_1 [...]]]></description>
			<content:encoded><![CDATA[<p>九、linux中的函数</p>
<p>函数代表一种模块化的设计思想，可以将一些常用的、内聚度高的操作封装成函数，在需要时进行调用。<br />
<span id="more-30329"></span><br />
1. 函数原型</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">function 函数名()
{
	语句
}</pre></td></tr></table></div>

<p>在此，function可以不显示指定。函数应先定义后使用，在调用时只需指定函数名即可，不用写()。</p>
<p>示例：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">#!/bin/bash
function printAddress()
{
	echo &quot;your address is: beijing&quot;
}
printAddress</pre></td></tr></table></div>

<p>2. 函数的参数和返回值</p>
<p>在shell函数中，有两种方法使用参数：一种是变量直接传递法，另一种采用位置参数。</p>
<p>变量直接传递法是通过直接在外部声明变量，在函数体里面通过操作这些变量，达到向函数传递参数的目的。</p>
<p>例如：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">#!/bin/bash
address=&quot;beijing&quot;
function printAddress()
{
	echo &quot;your address_1 is: &quot;$address
	address=&quot;shanghai&quot;
	echo &quot;your address_2 is: &quot;$address
}
printAddress
echo &quot;your address_3 is: &quot;$address</pre></td></tr></table></div>

<p>由此可见，函数中进行变量修改也作全局使用，所以可以通过在函数中修改参数变量来达到函数返回目的，将这些参数作为返回值。</p>
<p>通过下面的例子可以更好的了解位置参数：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">#!/bin/bash
function printAddress()
{
	echo $1
	echo $2
}
printAddress &quot;beijing&quot; &quot;shanghai&quot;</pre></td></tr></table></div>

<p>注：以前学习shell时写的笔记，没有拿到电脑前练习过。这次写在博客上的这些都是我在电脑上(ubuntu8.04)练习通过后贴出来的，单引号和双引号类似于php中的单引号和双引号的用法，在用echo进行标准输出时，如果不涉及变量的话双引号、单引号都是可有可无的，还有那个数组赋值与遍历也是让我琢磨不透，所以这些细微差别还是日后慢慢的在实践中掌握比较好。</p>
<p style="font-weight: bold;">&copy; 2010, <a href="http://chenzhiwei.net">chenzhiwei.net</a>. 版权所有.  <br />本文永久链接：<a title="linux shell 学习笔记(四)" href="http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-4/">http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-4/</a></p><hr /><div  class="related_post_title">相关日志</div><ul class="related_post"><li><a href="http://chenzhiwei.net/2011/08/shell-io-redirection/" title="Shell I/O重定向">Shell I/O重定向</a></li><li><a href="http://chenzhiwei.net/2010/11/shell-script-study-notes-shell/" title="几个简单的shell脚本">几个简单的shell脚本</a></li><li><a href="http://chenzhiwei.net/2010/11/shell-script-study-notes-2/" title="shell 脚本学习之判断条件">shell 脚本学习之判断条件</a></li><li><a href="http://chenzhiwei.net/2010/11/shell-script-study-notes/" title="shell脚本学习">shell脚本学习</a></li><li><a href="http://chenzhiwei.net/2010/10/linux-shell-study-notes-part-5/" title="Linux Shell学习笔记（五）">Linux Shell学习笔记（五）</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-4/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>linux shell 学习笔记(三)</title>
		<link>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-3/</link>
		<comments>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-3/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 07:31:58 +0000</pubDate>
		<dc:creator>zhiwei</dc:creator>
				<category><![CDATA[编程相关]]></category>
		<category><![CDATA[默认分类]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://chenzhiwei.net/?p=30324</guid>
		<description><![CDATA[八、shell中的循环语句 shell中的循环语句有for循环语句、while循环语句和until循环语句。 1. for循环语句 原型一： 1 2 3 4 5 for 变量 in 取值集合 for 变量 in 取值集合 do 语句 done 原型二： 1 2 3 4 for 变量 in 文件正则表达式 do 语句 done 原型三： 1 2 3 4 for 变量 in $* do 语句 done 例： 1 2 3 4 5 6 #!/bin/bash address=(beijing tianjin [...]]]></description>
			<content:encoded><![CDATA[<p>八、shell中的循环语句</p>
<p>shell中的循环语句有for循环语句、while循环语句和until循环语句。<br />
<span id="more-30324"></span><br />
1. for循环语句</p>
<p>原型一：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">for 变量 in 取值集合
for 变量 in 取值集合
do
	语句
done</pre></td></tr></table></div>

<p>原型二：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">for 变量 in 文件正则表达式
do
	语句
done</pre></td></tr></table></div>

<p>原型三：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">for 变量 in $*
do
	语句
done</pre></td></tr></table></div>

<p>例：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">#!/bin/bash
address=(beijing tianjin shandong)
for i in ${address[*]}
do
	echo $i
done</pre></td></tr></table></div>

<p>说明：<br />
循环输出数组中的值。</p>
<p>2. while循环语句</p>
<p>原型：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">while 条件测试语句
do
	语句
done</pre></td></tr></table></div>

<p>while语句的执行过程是：先测试测试语句是否为真，若为真则执行循环体，当执行完当前命令后，再进行条件测试，直到条件结果为假，循环结束。条件测试语句既可以是test语句也可以是运行命令的返回值，若返回值大于0，则表示条件为真，否则条件为假。</p>
<p>例：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">#!/bin/bash
str=&quot;&quot;
echo &quot;input a str:&quot;
read str
while [ $str != &quot;quit&quot; ]
do
	echo &quot;your input is :&quot;$str
	echo &quot;input your str:&quot;
	read str
done</pre></td></tr></table></div>

<p>说明：</p>
<p>3. until循环语句</p>
<p>until语句是while语句的一种变形，原型如下：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">until 条件测试语句
do
	语句
done</pre></td></tr></table></div>

<p>如果条件为假则执行，否则不执行。</p>
<p>另外还有以下语句和循环语句合用。</p>
<p>①、break语句</p>
<p>break语句是一个退出循环的命令，主要用于多层循环的嵌套退出，一般用法如下：</p>
<p>break [n]</p>
<p>其中，n用来表示跳出几层循环，默认值为1，即退出本次循环。</p>
<p>②、continue语句</p>
<p>continue语句与break语句有相同之处，都用于终止本次循环，区别在于，bread语句是退出整个循环而continue语句只是退出本次循环，继续执行下一循环体。continue语句原型如下：</p>
<p>continue [n]</p>
<p>其中，n用来表示跳出几层循环，默认值为1，即退出本次循环。</p>
<p>③exit语句</p>
<p>exit语句是退出正在执行的shell脚本，可以主动指定返回值，其原型如下：</p>
<p>exit [n]</p>
<p>其中，n是主动设定的返回值。如果未显示给定n的值，则该值默认为最后一次命令的执行状态作为返回值。</p>
<p style="font-weight: bold;">&copy; 2010, <a href="http://chenzhiwei.net">chenzhiwei.net</a>. 版权所有.  <br />本文永久链接：<a title="linux shell 学习笔记(三)" href="http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-3/">http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-3/</a></p><hr /><div  class="related_post_title">相关日志</div><ul class="related_post"><li><a href="http://chenzhiwei.net/2011/08/shell-io-redirection/" title="Shell I/O重定向">Shell I/O重定向</a></li><li><a href="http://chenzhiwei.net/2010/11/shell-script-study-notes-shell/" title="几个简单的shell脚本">几个简单的shell脚本</a></li><li><a href="http://chenzhiwei.net/2010/11/shell-script-study-notes-2/" title="shell 脚本学习之判断条件">shell 脚本学习之判断条件</a></li><li><a href="http://chenzhiwei.net/2010/11/shell-script-study-notes/" title="shell脚本学习">shell脚本学习</a></li><li><a href="http://chenzhiwei.net/2010/10/linux-shell-study-notes-part-5/" title="Linux Shell学习笔记（五）">Linux Shell学习笔记（五）</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>linux shell学习笔记(二)</title>
		<link>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-2/</link>
		<comments>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-2/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 10:32:00 +0000</pubDate>
		<dc:creator>zhiwei</dc:creator>
				<category><![CDATA[编程相关]]></category>
		<category><![CDATA[默认分类]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://chenzhiwei.net/?p=30318</guid>
		<description><![CDATA[接上篇日志：linux shell学习笔记(一) 这篇日志主要写shell中的控制语句，有两种判断语句，if语句和case语句，学过C语言的同学一定不会陌生，很简单的用法。 七、shell中的控制判断语句 1. if语句 原型一 1 2 3 if 测试条件 then 语句1 fi 原型二 1 2 3 4 if 测试条件 then 语句1 else 语句2 fi 原型三 1 2 3 4 5 6 if 测试条件1 then 语句1 elif 测试条件2 then 语句2 else 语句3 fi 在if语句中一个重要的环节是编写测试条件，也就是程序执行的判断条件。if语句中可以将命令执行结果当作测试条件。例如：若命令正常结束，则表示测试成功，其返回值为0，条件测试为真；否则条件测试为假。测试条件编写一般有以下3种形式： （1）. 用test命令 （2）. 用方括号把测试条件括起来。 （3）. 采用[[条件表达式]]方式，条件表达式用来测试文件的属性和进行字符串比较。 test命令原型如下： test 表达式 [...]]]></description>
			<content:encoded><![CDATA[<p>接上篇日志：<a href="http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-1/" target="_blank">linux shell学习笔记(一)</a></p>
<p>这篇日志主要写shell中的控制语句，有两种判断语句，if语句和case语句，学过C语言的同学一定不会陌生，很简单的用法。<span id="more-30318"></span></p>
<p><strong>七、shell中的控制判断语句</strong></p>
<p>1. if语句</p>
<p>原型一</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">if 测试条件
then 语句1
fi</pre></td></tr></table></div>

<p>原型二</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">if 测试条件
then 语句1
else 语句2
fi</pre></td></tr></table></div>

<p>原型三</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">if 测试条件1
then 语句1
elif 测试条件2
then 语句2
else 语句3
fi</pre></td></tr></table></div>

<p>在if语句中一个重要的环节是编写测试条件，也就是程序执行的判断条件。if语句中可以将命令执行结果当作测试条件。例如：若命令正常结束，则表示测试成功，其返回值为0，条件测试为真；否则条件测试为假。测试条件编写一般有以下3种形式：</p>
<p>（1）. 用test命令</p>
<p>（2）. 用方括号把测试条件括起来。</p>
<p>（3）. 采用[[条件表达式]]方式，条件表达式用来测试文件的属性和进行字符串比较。</p>
<p>test命令原型如下：</p>
<p>test 表达式</p>
<p>test一般与系统运算搭配起来使用，它可以与如下四类运算符共同使用。</p>
<p>第一类：字符测试运算符</p>
<p>字符测试运算符的作用是用于测试字符串操作的返回值，具体参数如下：</p>
<p>-z str1 ：如果字符串str1的长度为0，则测试条件为真<br />
-n str1 ：如果字符串str1的长度大于0，则测试条件为真<br />
str1       ：如果字符串str1不是空串，则测试条件为真<br />
str1 = str2 ：如果字符串str1等于字符串str2，则测试条件为真<br />
str1 != str2 ：如果字符串str1不等于字符串str2，则测试条件为真<br />
str1 &gt; str2 ：如果按字典顺序字符串str1排在str2之后，则测试条件为真<br />
str1 &lt; str2 ：如果按字典顺序字符串str1排在str2之前，则测试条件为真</p>
<p>注：=、!=、&lt;、&gt;，这些符号在使用时两边要加空格</p>
<p>例：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">#!/bin/bash
echo &quot;input your address:&quot;
read address
if address
then
	echo &quot;your address is: &quot;$address
else
	echo &quot;your address is null&quot;
fi</pre></td></tr></table></div>

<p>以上程序意思是用户输入一字符串，如果输入字符串长度大于0，则输出用户输入的字符串，否则输出空。</p>
<p>第二类：数值测试运算符</p>
<p>数值测试运算符主要用于数值运算时的判断，具体参数如下：</p>
<p>num1 -eq num2 ：如果整数num1等于num2，则测试条件为真<br />
num1 -ne num2 ：如果整数num1不等于num2，则测试条件为真<br />
num1 -lt num2 ：如果整数num1小于num2，则测试条件为真<br />
num1 -le num2 ：如果整数num1小于或等于num2，则测试条件为真<br />
num1 -gt num2 ：如果整数num1大于num2，则测试条件为真<br />
num1 -ge num2 ：如果整数num1大于或等于num2，则测试条件为真</p>
<p>第三类：逻辑运算符</p>
<p>逻辑运算符用于逻辑语句的判断，常用的逻辑运算符如下：</p>
<p>! ：逻辑“非”，放在任意逻辑表达式的前面，全原来为真的表达式为假，原来为假的表达式为真<br />
-a ：逻辑“与”，放在两个逻辑表达式之间，表示只有两个表达式都为真时，结果才为真<br />
-o ：逻辑“或”，放在两个逻辑表达式之间，表示只有两个表达式都为假时，结果才为假<br />
() ：圆括号可以把逻辑表达式括起来，使用之成为一个整体，优先进行运算</p>
<p>注：逻辑表达式中运算符的优先关系如下：”()”&gt;”!”&gt;”-a”&gt;”-o”。</p>
<p>第四类：文件运算符</p>
<p>文件运算符用于测试文件或目录的操作，常用文件运算符如下：</p>
<p>-r 文件名：若文件存在并且是用户可读的，则测试条件为真<br />
-w 文件名：若文件存在并且是用户可写的，则测试条件为真<br />
-x 文件名：若文件存在并且是用户可执行的，则测试条件为真<br />
-f  文件名：若文件存在并且是普通文件，则测试条件为真<br />
-d 文件名：若文件存在并且是目录文件，则测试条件为真<br />
-p 文件名：若文件存在并且是命名的FIFO文件，则测试条件为真<br />
-b 文件名：若文件存在并且是块设备文件，则测试条件为真<br />
-c 文件名：若文件存在并且是字符设备文件，则测试条件为真<br />
-s 文件名：若文件存在并且长度大于0，则测试条件为真<br />
-t 文件描述字：若文件被打开并且文件描述字是与终端设备相关的，则测试条件为真，默认的文件描述字是1。</p>
<p>2. case语句</p>
<p>case语句是一种多重判断语句，类似于多个if elif语句，其原型如下：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">case 字符串 in
	模式表达式1) 语句1;;
	模式表达式2) 语句2;;
	模式表达式3) 语句3;;
	...
esac</pre></td></tr></table></div>

<p>case语句执行原理是将字符串与各个模式串顺次匹配，若满足则执行，否则继续查找，如果没有匹配成功的，则不执行任何语句，直接退出。</p>
<p>注：每个模式处理语句是以”;;”两个分号结束的，模式表达式应该唯一，一个模式表达式可以含有多个模式串，但它们之间要用”|”隔开。</p>
<p>例：</p>
<p style="font-weight: bold;">&copy; 2010, <a href="http://chenzhiwei.net">chenzhiwei.net</a>. 版权所有.  <br />本文永久链接：<a title="linux shell学习笔记(二)" href="http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-2/">http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-2/</a></p><hr /><div  class="related_post_title">相关日志</div><ul class="related_post"><li><a href="http://chenzhiwei.net/2011/08/shell-io-redirection/" title="Shell I/O重定向">Shell I/O重定向</a></li><li><a href="http://chenzhiwei.net/2010/11/shell-script-study-notes-shell/" title="几个简单的shell脚本">几个简单的shell脚本</a></li><li><a href="http://chenzhiwei.net/2010/11/shell-script-study-notes-2/" title="shell 脚本学习之判断条件">shell 脚本学习之判断条件</a></li><li><a href="http://chenzhiwei.net/2010/11/shell-script-study-notes/" title="shell脚本学习">shell脚本学习</a></li><li><a href="http://chenzhiwei.net/2010/10/linux-shell-study-notes-part-5/" title="Linux Shell学习笔记（五）">Linux Shell学习笔记（五）</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>linux shell学习笔记(一)</title>
		<link>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-1/</link>
		<comments>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-1/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 01:32:43 +0000</pubDate>
		<dc:creator>zhiwei</dc:creator>
				<category><![CDATA[默认分类]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://chenzhiwei.net/?p=30311</guid>
		<description><![CDATA[昨天逛dengmin同学的博客，发现他把自己的php学习笔记都放在的博客上，我想了一下，感觉还是将我学习shell时做的笔记写在博客上吧，虽然很简单，但是毕竟写在纸上不如放在博客上，写在博客上自己随时都可以查看。 在计算机科学中，Shell俗称壳（用来区别于核），是指“提供使用者使用界面”的软件（命令解析器）。它类似于DOS下的command.com。它接收用户命令，然后调用相应的应用程序。同时它又是一种程序设计语言。作为命令语言，它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令；作为程序设计语言，它定义了各种变量和参数，并提供了许多在高阶语言中才具有的控制结构，包括循环和分支。shell是一种解释型编程语言，这些都不重要，重要的是怎么使用它。 一、 执行shell脚本的方法 1. 输入重定向到shell脚本，具体来讲是利用输入重定向机制，让shell解释器顺序读取每一行脚本命令，进行执行，使用原型为bash&#62;脚本文件名，例如：bash&#62;test.sh。 2. 类似于方法1，不过它是以脚本文件名为参数来执行的，原型：bash test.sh 。 3. 将脚本文件设置成可执行文件，直接调用执行，./test.sh 。(用chmod +x test.sh将脚本文件加上可执行权限) 二、shell的基本语法 赋值一般采用以下形式：变量名=字符串 1. “=”号两边是不能有空格的，不然会出错的。 2. 若赋值语句中，“=”后面没有任何内容，则该变量为一个空字符串，若只声明而没赋值，则该变量默认也是一个空字符串。 3. 若一个变量中含有空格、制表符、换行符，则要用双引号括起来，不然会出错。 4. 在shell程序文件中，如果想引用已经定义的变量，一般要在变量名前加“$”符号，这个符号含义是告诉shell，后面是一个变量。 5. 单引号(&#8216;&#8230;&#8217;)：单引号也称为强引用，引用所有内容。在单引号中，没有字符拥有特殊含义。 6. 双引号(“&#8230;”)：双引号也称为弱引用，除了3个元字符$(美元符号)、`(反引号)和\(反斜线)外引用所有内容。在双引号中，这3个字符还保留它们各自的特殊含义。 7. 反引号(`&#8230;`)：命令替换，命令替换允许在一条命令中嵌入一条命令。shell首先执行嵌入的命令，并且用输出替换该命令。然后shell再执行整个命令。 8. 在shell变量引用中，一个变量与一个长字符串的组合，如果当前变量处在字符串的最后，可以利用直接引用的方式；如果处在中间或开头的位置，则可以用花括号将变量名包含起来。如下： 程序： 1 2 3 4 5 #!/bin/bash address=beijing echo $address echo ${address}test echo test$address 输出： 1 2 3 beijing beijingtest testbeijing 三、shell中的通配符(用于模式匹配) [...]]]></description>
			<content:encoded><![CDATA[<p>昨天逛<a href="http://www.iyouf.info/" target="_blank">dengmin</a>同学的博客，发现他把自己的php学习笔记都放在的博客上，我想了一下，感觉还是将我学习shell时做的笔记写在博客上吧，虽然很简单，但是毕竟写在纸上不如放在博客上，写在博客上自己随时都可以查看。</p>
<p>在计算机科学中，Shell俗称壳（用来区别于核），是指“提供使用者使用界面”的软件（命令解析器）。它类似于DOS下的command.com。它接收用户命令，然后调用相应的应用程序。同时它又是一种程序设计语言。作为命令语言，它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令；作为程序设计语言，它定义了各种变量和参数，并提供了许多在高阶语言中才具有的控制结构，包括循环和分支。shell是一种解释型编程语言，这些都不重要，重要的是怎么使用它。<br />
<span id="more-30311"></span><br />
<strong>一、 执行shell脚本的方法</strong></p>
<p>1.<del datetime="2010-07-25T00:01:18+00:00"> 输入重定向到shell脚本，具体来讲是利用输入重定向机制，让shell解释器顺序读取每一行脚本命令，进行执行，使用原型为bash&gt;脚本文件名，例如：bash&gt;test.sh</del>。</p>
<p>2. 类似于方法1，不过它是以脚本文件名为参数来执行的，原型：bash test.sh 。</p>
<p>3. 将脚本文件设置成可执行文件，直接调用执行，./test.sh 。(用chmod +x test.sh将脚本文件加上可执行权限)</p>
<p><strong>二、shell的基本语法</strong></p>
<p>赋值一般采用以下形式：变量名=字符串</p>
<p>1. “=”号两边是不能有空格的，不然会出错的。</p>
<p>2. 若赋值语句中，“=”后面没有任何内容，则该变量为一个空字符串，若只声明而没赋值，则该变量默认也是一个空字符串。</p>
<p>3. 若一个变量中含有空格、制表符、换行符，则要用双引号括起来，不然会出错。</p>
<p>4. 在shell程序文件中，如果想引用已经定义的变量，一般要在变量名前加“$”符号，这个符号含义是告诉shell，后面是一个变量。</p>
<p>5. 单引号(&#8216;&#8230;&#8217;)：单引号也称为强引用，引用所有内容。在单引号中，没有字符拥有特殊含义。</p>
<p>6. 双引号(“&#8230;”)：双引号也称为弱引用，除了3个元字符$(美元符号)、`(反引号)和\(反斜线)外引用所有内容。在双引号中，这3个字符还保留它们各自的特殊含义。</p>
<p>7. 反引号(`&#8230;`)：命令替换，命令替换允许在一条命令中嵌入一条命令。shell首先执行嵌入的命令，并且用输出替换该命令。然后shell再执行整个命令。</p>
<p>8. 在shell变量引用中，一个变量与一个长字符串的组合，如果当前变量处在字符串的最后，可以利用直接引用的方式；如果处在中间或开头的位置，则可以用花括号将变量名包含起来。如下：<br />
程序：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">#!/bin/bash
address=beijing
echo $address
echo ${address}test
echo test$address</pre></td></tr></table></div>

<p>输出：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">beijing
beijingtest
testbeijing</pre></td></tr></table></div>

<p><strong>三、shell中的通配符(用于模式匹配)</strong></p>
<p>1. “*”符号</p>
<p>“*”符号用于匹配字符串中0次或多次出现的字符，如：s*可以匹配shell、shanghai等。在使用“*”符号时要注意一点，在匹配文件名与路径名时，“.”符号与“\”必须显示匹配，如：*test不能匹配“.httest”文件，而要用“.*test”来匹配，同时“/home/test”需要用”/*/test”来匹配。</p>
<p>2. “?”符号</p>
<p>“?”符号仅匹配对应位置的一个字符。如：m?ke可匹配”mike”、”make”等，但不能匹配”mooke”。</p>
<p>3. “[]“符号</p>
<p>“[]“称号的作用是匹配该字符组所限定范围内的任何一个字符，方括号中的字符可以由直接级出的字符组成，如：[adehk]；也可以由表示限定范围的起始字符和终止字符及中间的连接字符”-”组成。如：[a-zA-H]、[0-9]等。</p>
<p>4. “!”符号</p>
<p>“!”符号是与”[]“符号配合使用的，”!”的作用是匹配不在方括号中列出的字符。例如：t[!a-h]st，则可表示tyst、t9st，但不能表示test。</p>
<p><strong>四、shell中的输入</strong></p>
<p>shell中输入是由函数read实现，原型为：read 变量1 [变量2]</p>
<p>利用read函数可以交互地为变量赋值，当然也可以通过制表符或空格为多变量赋值，说明如下：</p>
<p>1. 如果变量个数多于输入串中字符串个数，则依次赋值，剩下变量取空值。</p>
<p>2. 如果变量个数等于输入串中字符串个数，则一一对应赋值。</p>
<p>3. 如果变量个数少于输入串中字符串个数，刚除依次赋值外，最后一个变量接纳剩下的字符串。</p>
<p>例如：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">#!/bin/bash
echo &quot;input your name and age:&quot;
read name age
echo &quot;your name is: &quot;$name
echo &quot;your age is: &quot;$age</pre></td></tr></table></div>

<p>如果你输入Jim 15 则输出：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">input your name and age:
your name is: Jim
your age is: 15</pre></td></tr></table></div>

<p><strong>五、shell中的输出</strong></p>
<p>shell中输出是由echo函数实现的，echo可直接输出其后面所跟变量的值或直接输出其后面的字符串。echo函数后面以空格隔开，以换行符终止。如果数据之间要保留多个空格，则要用双引号把它们括起来以便shell对它们进行正确的操作。另：echo函数还定义了一组转义字符，在使用转义字符时要加入”-e”选项。其转义字符如下：</p>
<p>“\a” ：响铃报警，”\b” ：后退一字符，”\f” ：换页，”\n” ：显示换行，”\t” ：制表符，”\v” ：垂直制表符，”\r” ：回车符，”\\” ：反斜线。<br />
例如：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">#!/bin/bash
echo -e hello,'\n'world!
echo hello,'\n'world!
echo '-e' hello,'\n'world!
echo -e hello,&quot;\n&quot;world!
echo -e hello,\nworld!
echo hello,\nworld!</pre></td></tr></table></div>

<p>输出：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">hello,
world!
hello,\nworld!
hello,
world!
hello,
world!
hello,nworld!
hello,nworld!</pre></td></tr></table></div>

<p><strong>六、shell中的数组</strong></p>
<p>shell支持一维数组，但并不限定数组大小，数组下标从0开始。</p>
<p>在操作数组时，取值方式是：${数组名[下标]} ；赋值方式是：数组名[下标]=值 (为单个数组元素赋值)；如果要对整个数组的所有元素赋值，可以采用：数组名=(值1，值2，值3，&#8230;)，值与值之间要用空格隔开。</p>
<p>遍历数组除用循环外还可用：“数组名[*]”或“数组名[@]”，例如：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">#!/bin/bash
array1[0]=beijing
array1[1]=shanghai
array2=(guangzhou,shenzhen,chengdu)
echo &quot;\${array1[0]} = &quot; ${array1[0]}
echo &quot;\$array1[1] = &quot;$array1[1]
echo &quot;\${array1[*]} = &quot;${array1[*]}
echo &quot;\$array1 = &quot;$array1
echo &quot;\${array2[*]} = &quot;${array2[*]}
echo &quot;\${array2[@]} = &quot;${array2[@]}
echo &quot;\$array2 = &quot;$array2
echo &quot;\$array2[1] = &quot;$array2[1]</pre></td></tr></table></div>

<p>输出：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">${array1[0]} =  beijing
$array1[1] = beijing[1]
${array1[*]} = beijing shanghai
$array1 = beijing
${array2[*]} = guangzhou,shenzhen,chengdu
${array2[@]} = guangzhou,shenzhen,chengdu
$array2 = guangzhou,shenzhen,chengdu
$array2[1] = guangzhou,shenzhen,chengdu[1]</pre></td></tr></table></div>

<p>注：数组的赋值与输出有点麻烦。<br />
对于数组修改操作，可以再对其重新赋值；但如果要删除一个已经赋值后的元素则需要借助一个外部命令：unset，如：unset array[0]可清空下标为0的元素，此时数组大小减一；unset array[@]可以清空整个数组元素所有元素。例如：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">#!/bin/bash
address=(beijing,shanghai,shandong)
address[0]=nanjing
echo ${address[*]}
unset address[0]
echo ${address[*]}</pre></td></tr></table></div>

<p>输出：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="shell" style="font-family:monospace;">beijing shanghai shandong
shanghai shandong</pre></td></tr></table></div>

<p>注：关于数组输入与输出规则比较多，得多练习掌握。</p>
<p style="font-weight: bold;">&copy; 2010, <a href="http://chenzhiwei.net">chenzhiwei.net</a>. 版权所有.  <br />本文永久链接：<a title="linux shell学习笔记(一)" href="http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-1/">http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-1/</a></p><hr /><div  class="related_post_title">相关日志</div><ul class="related_post"><li><a href="http://chenzhiwei.net/2011/08/shell-io-redirection/" title="Shell I/O重定向">Shell I/O重定向</a></li><li><a href="http://chenzhiwei.net/2010/11/shell-script-study-notes-shell/" title="几个简单的shell脚本">几个简单的shell脚本</a></li><li><a href="http://chenzhiwei.net/2010/11/shell-script-study-notes-2/" title="shell 脚本学习之判断条件">shell 脚本学习之判断条件</a></li><li><a href="http://chenzhiwei.net/2010/11/shell-script-study-notes/" title="shell脚本学习">shell脚本学习</a></li><li><a href="http://chenzhiwei.net/2010/10/linux-shell-study-notes-part-5/" title="Linux Shell学习笔记（五）">Linux Shell学习笔记（五）</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-1/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>wordpress主题常用的代码</title>
		<link>http://chenzhiwei.net/2010/07/wordpress-useful-code/</link>
		<comments>http://chenzhiwei.net/2010/07/wordpress-useful-code/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 09:54:49 +0000</pubDate>
		<dc:creator>zhiwei</dc:creator>
				<category><![CDATA[建站相关]]></category>
		<category><![CDATA[默认分类]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[博客]]></category>

		<guid isPermaLink="false">http://chenzhiwei.net/?p=30304</guid>
		<description><![CDATA[很多同学的wordpress博客主题侧边栏都有最新文章、随机文章、最新评论等等内容，而单篇文章下方也会加上版权信息，我之前添加版权信息就是在写每篇文章时，在最后加上，但是这样太麻烦，自己在网上搜索一下，然后又仿照一些知名博客的相应设置自己也在博客文章页面加上了版权信息，由于最近比较忙，一直没空写出来，今天就把它写出来与大家分享一下。 1. 最新/随机文章 1 2 3 4 5 6 7 global $post; $myposts = get_posts('numberposts=9&#38;offset=1&#38;orderby=rand'); foreach($myposts as $post) : setup_postdata($post); ?&#62; &#60;li&#62;&#60;a href=&#34;&#60;?php the_permalink&#40;&#41;; ?&#62;&#34; title=&#34;&#60;?php the_title&#40;&#41;; ?&#62;&#34;&#62;&#60;?php the_title&#40;&#41;; ?&#62;&#60;/a&#62;&#60;/li&#62; &#60;?php endforeach; 最新/随机文章用的是wordpress现成的函数调用，上述代码中的numberposts=9是指显示9篇文章，orderby=rand意思是随机显示，如果是orderby=date就是最新文章了，当然还得order=desc，意思是按日期降序排列，懂sql语言的同学很容易就能看明白，这里有更详细的官方介绍，不过是英文的。这个地方是获得最新文章的另一种方法。 2. 最新评论 1 2 3 4 5 6 7 $comments = get_comments('number=9&#38;$status=approve&#38;offset=1'); foreach($comments as $comm) : $comm-&#62;comment_content=mb_substr($comm-&#62;comment_content,0,20); ?&#62; &#60;li&#62;&#60;a href=&#34;&#60;?php echo&#40;get_permalink&#40;$comm-&#62;comment_post_ID&#41;&#41;; ?&#62;#comment-&#60;?php [...]]]></description>
			<content:encoded><![CDATA[<p>很多同学的wordpress博客主题侧边栏都有最新文章、随机文章、最新评论等等内容，而单篇文章下方也会加上版权信息，我之前添加版权信息就是在写每篇文章时，在最后加上，但是这样太麻烦，自己在网上搜索一下，然后又仿照一些知名博客的相应设置自己也在博客文章页面加上了版权信息，由于最近比较忙，一直没空写出来，今天就把它写出来与大家分享一下。<br />
<span id="more-30304"></span><br />
<strong>1. 最新/随机文章</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">global $post;
	 $myposts = get_posts('numberposts=9&amp;offset=1&amp;orderby=rand');
	 foreach($myposts as $post) :
	   setup_postdata($post);
	 ?&gt;
		&lt;li&gt;&lt;a href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; title=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_title<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_title<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/a&gt;&lt;/li&gt;
	 <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endforeach</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>最新/随机文章用的是wordpress现成的函数调用，上述代码中的numberposts=9是指显示9篇文章，orderby=rand意思是随机显示，如果是orderby=date就是最新文章了，当然还得order=desc，意思是按日期降序排列，懂sql语言的同学很容易就能看明白，<a href="http://codex.wordpress.org/Function_Reference/get_posts" target="_blank">这里</a>有更详细的官方介绍，不过是英文的。这个<a href="http://codex.wordpress.org/Function_Reference/wp_get_recent_posts" target="_blank">地方</a>是获得最新文章的另一种方法。</p>
<p><strong>2. 最新评论</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">$comments = get_comments('number=9&amp;$status=approve&amp;offset=1');
		  foreach($comments as $comm) :
			$comm-&gt;comment_content=mb_substr($comm-&gt;comment_content,0,20);
		?&gt;
		  &lt;li&gt;&lt;a href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span>get_permalink<span style="color: #009900;">&#40;</span><span style="color: #000088;">$comm</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">comment_post_ID</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>#comment-<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$comm</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">comment_ID</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; title=&quot;view the entire comment by <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$comm</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">comment_author</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$comm</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">comment_content</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/a&gt;&lt;/li&gt;
		<span style="color: #000000; font-weight: bold;">&lt;?php</span>
		  <span style="color: #b1b100;">endforeach</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>最新评论这个代码用了我很长时间才写好，一般网上的方法都是直接去查询数据库，写一大堆代码，太麻烦了，我在<a href="http://codex.wordpress.org/Function_Reference/get_comments" target="_blank">wordpress官方文档</a>上找到了这个方法，很好用，不过总是最后一条评论显示不出来，目前也没有找到原因。代码说明我就不写了，很简单的。</p>
<p><strong>3. 版权信息</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> insertNote<span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>is_single<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">||</span>is_feed<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$content</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">'&lt;p style=&quot;font-weight: bold;&quot;&gt;&amp;copy; '</span><span style="color: #339933;">.</span> get_the_time<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Y'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">', &lt;a href=&quot;http://chenzhiwei.net&quot;&gt;chenzhiwei.net&lt;/a&gt;. 版权所有.  &lt;br /&gt;'</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$content</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$content</span><span style="color: #339933;">.=</span> <span style="color: #0000ff;">'本文永久链接：&lt;a title=&quot;'</span><span style="color: #339933;">.</span>get_the_title<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot; href=&quot;'</span><span style="color: #339933;">.</span>get_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot;&gt;'</span><span style="color: #339933;">.</span>get_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/a&gt;&lt;/p&gt;'</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>is_feed<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$content</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">&quot;&lt;hr /&gt;&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #000088;">$content</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
add_filter <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'the_content'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'insertNote'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>版权信息是在主题支持函数里写一个函数，就可以了。也可以将feed里也加入版权信息。以上代码就是我博客里的用，可以参考一下。相关图片如下：</p>
<p><img class="alignnone" title="feed 版权信息" src="http://farm5.static.flickr.com/4119/4811292687_0da7d9b079_b.jpg" alt="single" width="590" height="280" /></p>
<p><img class="alignnone" title="single page 版权信息" src="http://farm5.static.flickr.com/4122/4811292695_8c31c8ac67_b.jpg" alt="single" width="563" height="145" /></p>
<p><strong>4. 存档页面</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">&lt;div class=&quot;archive&quot;&gt;
&nbsp;
	&lt;strong&gt;by page:&lt;/strong&gt;
		&lt;ul&gt;
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> wp_list_pages<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'title_li='</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;/ul&gt;
&nbsp;
	&lt;strong&gt;by month:&lt;/strong&gt;
		&lt;ul&gt;
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> wp_get_archives<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'type=monthly'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;/ul&gt;
&nbsp;
	&lt;strong&gt;by category:&lt;/strong&gt;
		&lt;ul&gt;
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> wp_list_categories<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'sort_column=name&amp;title_li='</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
		&lt;/ul&gt;
&nbsp;
&lt;/div&gt;
&nbsp;
&lt;div class=&quot;archive&quot;&gt;
&nbsp;
	&lt;strong&gt;by post:&lt;/strong&gt;
		&lt;ul&gt;
			<span style="color: #000000; font-weight: bold;">&lt;?php</span> wp_get_archives<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'type=postbypost&amp;limit=100'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> 
		&lt;/ul&gt;
&lt;/div&gt;</pre></td></tr></table></div>

<p>有些同学一直在用插件实现文档存档，不过，我认为博客里最好还是少用插件，这样可以减轻服务器负担，也减少了升级插件的麻烦，下面就是我存档页面用的代码。</p>
<p>以上就是我博客里用到的一些代码，以后再用其他代码时，我会及时补充上来。</p>
<p style="font-weight: bold;">&copy; 2010, <a href="http://chenzhiwei.net">chenzhiwei.net</a>. 版权所有.  <br />本文永久链接：<a title="wordpress主题常用的代码" href="http://chenzhiwei.net/2010/07/wordpress-useful-code/">http://chenzhiwei.net/2010/07/wordpress-useful-code/</a></p><hr /><div  class="related_post_title">相关日志</div><ul class="related_post"><li><a href="http://chenzhiwei.net/2011/01/recently-blog-update/" title="博客最近的更新">博客最近的更新</a></li><li><a href="http://chenzhiwei.net/2009/11/move-blog-again/" title="博客又一次搬家">博客又一次搬家</a></li><li><a href="http://chenzhiwei.net/2009/04/cannot-modify-header-information/" title="Cannot modify header information的问题">Cannot modify header information的问题</a></li><li><a href="http://chenzhiwei.net/2011/11/old-version-php-support-json/" title="让旧版本的PHP支持json">让旧版本的PHP支持json</a></li><li><a href="http://chenzhiwei.net/2011/10/write-write/" title="随写">随写</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://chenzhiwei.net/2010/07/wordpress-useful-code/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>博客更换主题</title>
		<link>http://chenzhiwei.net/2010/02/change-blog-theme/</link>
		<comments>http://chenzhiwei.net/2010/02/change-blog-theme/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 14:52:51 +0000</pubDate>
		<dc:creator>zhiwei</dc:creator>
				<category><![CDATA[默认分类]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.chenzhiwei.cn/?p=30149</guid>
		<description><![CDATA[在放假前我紧张的将studiopress.com的church主题修改了一下就换上了，感觉这个主题很不错，整洁不失个性。我就喜欢这样的主题。 我去掉了主题上自带的首页，自己又制作了个博客页面外加一个single页面，总体上对自己的修改还算满意。该主题使用了三个插件：相关文章、分页插件和语法高亮插件。我觉得相关文章和分页插件不管在哪个主题里都是必不可少的，这是来实现一个博客的基本功能，而语法高亮插件对于普通博客是不必要的。 主题边栏全为自定义代码，哪天有时间了我会专门写一篇文章来介绍我博客上的插件的以及主题边栏自定义代码。 我比较喜欢这种整齐简洁的主题，于是自己断断续续花了很长时间才改成现在的样子，自我感觉很满意。 主题下载地址： http://themes.wopus.org/themes/english-lanuage/1062.html &#169; 2010, chenzhiwei.net. 版权所有. 本文永久链接：http://chenzhiwei.net/2010/02/change-blog-theme/相关日志不用插件实现wordpress分页导航的方法博客最近的更新wordpress主题常用的代码几款不错的在线HTML编辑器博客又一次搬家]]></description>
			<content:encoded><![CDATA[<p>在放假前我紧张的将studiopress.com的church主题修改了一下就换上了，感觉这个主题很不错，整洁不失个性。我就喜欢这样的主题。</p>
<p>我去掉了主题上自带的首页，自己又制作了个博客页面外加一个single页面，总体上对自己的修改还算满意。该主题使用了三个插件：相关文章、分页插件和语法高亮插件。我觉得相关文章和分页插件不管在哪个主题里都是必不可少的，这是来实现一个博客的基本功能，而语法高亮插件对于普通博客是不必要的。<span id="more-30149"></span></p>
<p>主题边栏全为自定义代码，哪天有时间了我会专门写一篇文章来介绍我博客上的插件的以及主题边栏自定义代码。</p>
<p>我比较喜欢这种整齐简洁的主题，于是自己断断续续花了很长时间才改成现在的样子，自我感觉很满意。</p>
<p>主题下载地址： <a href="http://themes.wopus.org/themes/english-lanuage/1062.html" target="_blank">http://themes.wopus.org/themes/english-lanuage/1062.html</a></p>
<p style="font-weight: bold;">&copy; 2010, <a href="http://chenzhiwei.net">chenzhiwei.net</a>. 版权所有.  <br />本文永久链接：<a title="博客更换主题" href="http://chenzhiwei.net/2010/02/change-blog-theme/">http://chenzhiwei.net/2010/02/change-blog-theme/</a></p><hr /><div  class="related_post_title">相关日志</div><ul class="related_post"><li><a href="http://chenzhiwei.net/2010/12/display-pagination-without-plugin/" title="不用插件实现wordpress分页导航的方法">不用插件实现wordpress分页导航的方法</a></li><li><a href="http://chenzhiwei.net/2011/01/recently-blog-update/" title="博客最近的更新">博客最近的更新</a></li><li><a href="http://chenzhiwei.net/2010/07/wordpress-useful-code/" title="wordpress主题常用的代码">wordpress主题常用的代码</a></li><li><a href="http://chenzhiwei.net/2009/11/several-html-online-editor/" title="几款不错的在线HTML编辑器">几款不错的在线HTML编辑器</a></li><li><a href="http://chenzhiwei.net/2009/11/move-blog-again/" title="博客又一次搬家">博客又一次搬家</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://chenzhiwei.net/2010/02/change-blog-theme/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

