<?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>生亦何欢，死亦何苦</title>
	<atom:link href="http://my.donews.com/firewood/feed/" rel="self" type="application/rss+xml" />
	<link>http://my.donews.com/firewood</link>
	<description>怜我世人，忧患实多</description>
	<lastBuildDate>Thu, 10 Jul 2008 02:59:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>我的2006</title>
		<link>http://my.donews.com/firewood/2006/12/31/my-year-2006/</link>
		<comments>http://my.donews.com/firewood/2006/12/31/my-year-2006/#comments</comments>
		<pubDate>Sun, 31 Dec 2006 07:16:21 +0000</pubDate>
		<dc:creator>火木</dc:creator>
				<category><![CDATA[Feelings]]></category>

		<guid isPermaLink="false">http://my.donews.com/firewood/2006/12/31/my-year-2006/</guid>
		<description><![CDATA[今天已经是2006的最后一天了，最近也看了不少年终总结的新闻如什么十大人物，十大语录，十大科技进步之类的。于是试着把自己的这一年总结一下，也算是对自己，对这个即将关闭的Blog有个交待。总结今年发生在我身上的一些事件如下：
1. 逝，略过不提。
2. 离，略过不提，too.
3. 卖，就是找到工作，算是今年唯一值得高兴的事了。从上大学到今年暑假，我都是坚定地要考研，虽然方向几经变动。可是，情绪的波动却让自己动摇了，于是不是很专心地踏入了找工作的行列。结果还真找到了，只是，要胜任工作，我还需不断的努力。一个直接的影响就是由于公司的日语培训，2月10日（Update:据今天上课的最新消息，提前到2月4日）后我才能回家。
4. 迁，5月的搬家。因与1时间上相距很近，根本不能归入让人高兴的事中。至于对新家的适应问题，又是另一回事。
5. 长，成长，度过了自己20岁的生日和生命中第三个十年内第一年的绝大部分日子。这一年里所有剩下的事大概都可以归于这一类吧。不断地学习，被迫地在苦难中磨炼自己，变得成熟。
6. 游，十一的峨嵋和十一月初的九寨。很遗憾没能写出游记，但终是饱览了大自然的美景，不知工作后还能不能抽出那么多时间出去游玩。
综观2006，我的所失远大于所得，痛苦远多于欢乐。不过，怨天尤人也没有任何意义，只能去面对。只能期望在接下来的2007，再没有让我心碎之事。
]]></description>
			<content:encoded><![CDATA[<p>今天已经是2006的最后一天了，最近也看了不少年终总结的新闻如什么十大人物，十大语录，十大科技进步之类的。于是试着把自己的这一年总结一下，也算是对自己，对这个即将关闭的Blog有个交待。总结今年发生在我身上的一些事件如下：</p>
<p><strong>1. 逝</strong>，略过不提。</p>
<p><strong>2. 离</strong>，略过不提，too.</p>
<p><strong>3. 卖</strong>，就是找到工作，算是今年唯一值得高兴的事了。从上大学到今年暑假，我都是坚定地要考研，虽然方向几经变动。可是，情绪的波动却让自己动摇了，于是不是很专心地踏入了找工作的行列。结果还真找到了，只是，要胜任工作，我还需不断的努力。一个直接的影响就是由于公司的日语培训，2月10日（Update:据今天上课的最新消息，提前到2月4日）后我才能回家。</p>
<p><strong>4. 迁</strong>，5月的搬家。因与1时间上相距很近，根本不能归入让人高兴的事中。至于对新家的适应问题，又是另一回事。</p>
<p><strong>5. 长</strong>，成长，度过了自己20岁的生日和生命中第三个十年内第一年的绝大部分日子。这一年里所有剩下的事大概都可以归于这一类吧。不断地学习，被迫地在苦难中磨炼自己，变得成熟。</p>
<p><strong>6. 游</strong>，十一的峨嵋和十一月初的九寨。很遗憾没能写出游记，但终是饱览了大自然的美景，不知工作后还能不能抽出那么多时间出去游玩。</p>
<p>综观2006，我的所失远大于所得，痛苦远多于欢乐。不过，怨天尤人也没有任何意义，只能去面对。只能期望在接下来的2007，再没有让我心碎之事。</p>
]]></content:encoded>
			<wfw:commentRss>http://my.donews.com/firewood/2006/12/31/my-year-2006/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>准备搬家</title>
		<link>http://my.donews.com/firewood/2006/12/20/ready-for-change-bsp/</link>
		<comments>http://my.donews.com/firewood/2006/12/20/ready-for-change-bsp/#comments</comments>
		<pubDate>Wed, 20 Dec 2006 15:18:52 +0000</pubDate>
		<dc:creator>火木</dc:creator>
				<category><![CDATA[日记]]></category>

		<guid isPermaLink="false">http://my.donews.com/firewood/2006/12/20/ready-for-change-bsp/</guid>
		<description><![CDATA[早就说过想搬到Blogger，后来因GFW而作罢。但Blogger很快又恢复了访问，更在今天结束了beta，完成了一次重大的升级。那么，没有任何理由拒绝Blogger了吧？（包括GFW，我们还有tor，还有代理，墙也不可能是密不透风的）Blogger上早就用Google账户注册了一个号，只是没有经营。从明年元旦起开始在上面bloging。写了段提示的js代码，很快就会用上。不过在 IE6 上表现得不是很完美（不知 IE7 如何，不过 IE7 支持 positon fixed，CSS的属性就可搞定。因为网银的缘故，我又换回了 IE6，鬼知道中国那些银行的网络部门都是干什么吃的。支持Firefox我从来都不奢望，但连IE7都不支持，还提示我“IE版本过低，请升级”，FT!）懒得管IE了，怎么那么多不支持的属性。哦，差点忘了，新Blog的地址是 http://icytriton.blogspot.com

平心而论，开源的 Wordpress 是个很优秀的 Blog 平台，但定制性没有Blogger高，而且太安全了，很多代码都不允许，要在文章中引用代码时很不方便。另一个重要原因是这个Blog诞生于我心情低落的时期，所以有这样一个名字。而今，我已基本从伤痛中走出，该有一个新的开始了，所以，废弃这个Blog也是一件使自己更轻松的事。
May me a warm farewell and a new nice start.
]]></description>
			<content:encoded><![CDATA[<p>早就说过想搬到Blogger，后来因GFW而作罢。但Blogger很快又恢复了访问，更在今天结束了beta，完成了一次重大的升级。那么，没有任何理由拒绝Blogger了吧？（包括GFW，我们还有tor，还有代理，墙也不可能是密不透风的）Blogger上早就用Google账户注册了一个号，只是没有经营。从明年元旦起开始在上面bloging。写了段提示的js代码，很快就会用上。不过在 IE6 上表现得不是很完美（不知 IE7 如何，不过 IE7 支持 positon fixed，CSS的属性就可搞定。因为网银的缘故，我又换回了 IE6，鬼知道中国那些银行的网络部门都是干什么吃的。支持Firefox我从来都不奢望，但连IE7都不支持，还提示我“IE版本过低，请升级”，FT!）懒得管IE了，怎么那么多不支持的属性。哦，差点忘了，新Blog的地址是 <strike><a href="http://icytriton.blogspot.com">http://icytriton.blogspot.com<br />
</a></strike></p>
<p>平心而论，开源的 Wordpress 是个很优秀的 Blog 平台，但定制性没有Blogger高，而且太安全了，很多代码都不允许，要在文章中引用代码时很不方便。另一个重要原因是这个Blog诞生于我心情低落的时期，所以有这样一个名字。而今，我已基本从伤痛中走出，该有一个新的开始了，所以，废弃这个Blog也是一件使自己更轻松的事。</p>
<p>May me a warm farewell and a new nice start.</p>
]]></content:encoded>
			<wfw:commentRss>http://my.donews.com/firewood/2006/12/20/ready-for-change-bsp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>把自己卖了</title>
		<link>http://my.donews.com/firewood/2006/11/29/hava-myself-sold/</link>
		<comments>http://my.donews.com/firewood/2006/11/29/hava-myself-sold/#comments</comments>
		<pubDate>Wed, 29 Nov 2006 14:23:56 +0000</pubDate>
		<dc:creator>火木</dc:creator>
				<category><![CDATA[日记]]></category>

		<guid isPermaLink="false">http://my.donews.com/firewood/2006/11/29/hava-myself-sold/</guid>
		<description><![CDATA[大公司效率就是高，周一面试的，今天上午就打电话让下午过去签offer。原则上地给家里打个电话告之后，就高高兴兴地跑过去签了。感觉自己抵抗力太弱了，听见了公司的名号，没作过多考虑，就在“卖身契”上签了字,2+1，还得留成都几年。只是这一签，可能这辈子的行业就这么定了，而我现在对大型机还基本处于一无所知的状态。12月开始培训，日语，说是要达到3级的水平，然后是大型机。3月开始实习，不出意外，估计也就是大型机开发了。
现在想起来，感觉人生的确是奇怪。开学时还坚定地要考研，结果这么快就把工作给找了。而且，我找工作也是不认真的，如果不是这份从零开始学习的工作，真不知能不能找到。好了，工作到此算是确定了，好好学习，争取进去后早点涨工资。
]]></description>
			<content:encoded><![CDATA[<p>大公司效率就是高，周一面试的，今天上午就打电话让下午过去签offer。原则上地给家里打个电话告之后，就高高兴兴地跑过去签了。感觉自己抵抗力太弱了，听见了公司的名号，没作过多考虑，就在“卖身契”上签了字,2+1，还得留成都几年。只是这一签，可能这辈子的行业就这么定了，而我现在对大型机还基本处于一无所知的状态。12月开始培训，日语，说是要达到3级的水平，然后是大型机。3月开始实习，不出意外，估计也就是大型机开发了。</p>
<p>现在想起来，感觉人生的确是奇怪。开学时还坚定地要考研，结果这么快就把工作给找了。而且，我找工作也是不认真的，如果不是这份从零开始学习的工作，真不知能不能找到。好了，工作到此算是确定了，好好学习，争取进去后早点涨工资。</p>
]]></content:encoded>
			<wfw:commentRss>http://my.donews.com/firewood/2006/11/29/hava-myself-sold/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>blessing</title>
		<link>http://my.donews.com/firewood/2006/11/26/blessing/</link>
		<comments>http://my.donews.com/firewood/2006/11/26/blessing/#comments</comments>
		<pubDate>Sun, 26 Nov 2006 15:52:11 +0000</pubDate>
		<dc:creator>火木</dc:creator>
				<category><![CDATA[Feelings]]></category>

		<guid isPermaLink="false">http://my.donews.com/firewood/2006/11/26/blessing/</guid>
		<description><![CDATA[明天上午又有个面试，是个很向往的公司。自昨天下午接到电话后开始准备，昨晚自习到12点，自己都挺佩服自己的，今天又准备了一天，自我感觉比上次是充分多了。Be confident,God blesses me!（最近星空上多了，到处都是这个词）
Update: 面完回了，太快了，十分钟就完了，害我昨天准备的大把问题，除了自我介绍，都没用上。看样子似乎有很多人面试，都排到下午六点了。这周出结果，blessing~~                           &#8211;11.27
]]></description>
			<content:encoded><![CDATA[<p>明天上午又有个面试，是个很向往的公司。自昨天下午接到电话后开始准备，昨晚自习到12点，自己都挺佩服自己的，今天又准备了一天，自我感觉比上次是充分多了。Be confident,God blesses me!（最近星空上多了，到处都是这个词）</p>
<p>Update: 面完回了，太快了，十分钟就完了，害我昨天准备的大把问题，除了自我介绍，都没用上。看样子似乎有很多人面试，都排到下午六点了。这周出结果，blessing~~                           &#8211;11.27</p>
]]></content:encoded>
			<wfw:commentRss>http://my.donews.com/firewood/2006/11/26/blessing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一年</title>
		<link>http://my.donews.com/firewood/2006/11/25/one-year/</link>
		<comments>http://my.donews.com/firewood/2006/11/25/one-year/#comments</comments>
		<pubDate>Fri, 24 Nov 2006 19:02:02 +0000</pubDate>
		<dc:creator>火木</dc:creator>
				<category><![CDATA[Feelings]]></category>

		<guid isPermaLink="false">http://my.donews.com/firewood/2006/11/25/one-year/</guid>
		<description><![CDATA[零点了，想写点东西，把去年这个时候写的东西翻出来看。不知什么时候养成这种习惯，在特定的时间，总爱怀旧，想起以前的日子，然后便是感慨时光的流逝，或是，很少地，感到欣喜。这次，却是深深地悲伤。仅仅过了一年而已，却感觉自己像经历了很长很长的时间。思维沿时空回溯，感觉好累，心似碎了。物是，鞋垫，围巾，人却非，黄土，缥缈。物是为了证明曾经的存在，还是凌迟情感的记忆的帮凶？只是，没有人，物又有何用？
脑子里突然冒出个科幻的想法，如果有时光机器，会怎样？我会选择回到什么时候呢，5月，4月或者更早？如果上帝不掷骰子呢，我会回去多少次后才放弃，甚至穷我的一生都在时光洪流中度过？如果不知道上帝是否掷骰子呢，我又会回去多少次？那么多的如果之后，才发现，自己真的很无助，想象力都挣不脱现实的缰索。
窗外雨声淅沥，是余光中笔下的鬼雨么？为什么我却听不到雨中的呼唤，如果真有魂灵，她应该急切着找我的啊。难道真如某个梦中，她已不认得我了？雨继续下着。天河决堤么，让我能看见另一个世界，或者，让我被另一个世界的人所看见？雨声依旧，似是不理睬我的疑问。
一年又一年，本该是54却止于53，呜呼，岂能不悲而涕泣？
]]></description>
			<content:encoded><![CDATA[<p>零点了，想写点东西，把去年这个时候写的东西翻出来看。不知什么时候养成这种习惯，在特定的时间，总爱怀旧，想起以前的日子，然后便是感慨时光的流逝，或是，很少地，感到欣喜。这次，却是深深地悲伤。仅仅过了一年而已，却感觉自己像经历了很长很长的时间。思维沿时空回溯，感觉好累，心似碎了。物是，鞋垫，围巾，人却非，黄土，缥缈。物是为了证明曾经的存在，还是凌迟情感的记忆的帮凶？只是，没有人，物又有何用？</p>
<p>脑子里突然冒出个科幻的想法，如果有时光机器，会怎样？我会选择回到什么时候呢，5月，4月或者更早？如果上帝不掷骰子呢，我会回去多少次后才放弃，甚至穷我的一生都在时光洪流中度过？如果不知道上帝是否掷骰子呢，我又会回去多少次？那么多的如果之后，才发现，自己真的很无助，想象力都挣不脱现实的缰索。</p>
<p>窗外雨声淅沥，是余光中笔下的鬼雨么？为什么我却听不到雨中的呼唤，如果真有魂灵，她应该急切着找我的啊。难道真如某个梦中，她已不认得我了？雨继续下着。天河决堤么，让我能看见另一个世界，或者，让我被另一个世界的人所看见？雨声依旧，似是不理睬我的疑问。</p>
<p>一年又一年，本该是54却止于53，呜呼，岂能不悲而涕泣？</p>
]]></content:encoded>
			<wfw:commentRss>http://my.donews.com/firewood/2006/11/25/one-year/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>面挂记</title>
		<link>http://my.donews.com/firewood/2006/11/24/failed-on-interview/</link>
		<comments>http://my.donews.com/firewood/2006/11/24/failed-on-interview/#comments</comments>
		<pubDate>Fri, 24 Nov 2006 15:32:52 +0000</pubDate>
		<dc:creator>火木</dc:creator>
				<category><![CDATA[日记]]></category>

		<guid isPermaLink="false">http://my.donews.com/firewood/2006/11/24/failed-on-interview/</guid>
		<description><![CDATA[参加了几场笔试，终于收到一次面试通知，结果竟然直接当面通知我挂了，郁闷，记之。
昨天下午接到通知今天下午五点去面试，上学校BBS的job版看了看，有已经面完了的却没有谁给点经验什么的，算了，靠自己了。看了下职位的要求，改了改简历，就算是准备了。其实平心而论，我还是挺重视这次面试的（指甲都剪了，太长了不像经常敲代码的），毕竟是第一次嘛，虽然网上对那家公司的评价并不好，而即使给了offer我也不一定会去。
三点多从学校出发，四点多到指定的地方。报道后竟然直接就开始了，被一个技术面试官领走了。首先是自我介绍，老问题了，不过大概是紧张，没说几句就说不下去了。然后就问因为是数学专业，是不是程序都是在业余时间写的，答不完全是，有些专业课的算法也需要自己写代码。于是让说目前所写自己认为最好的程序，有点晕，想了一会儿竟没有什么程序，照实回答。现在想来太失误了，就算是拿不出手的也应该说一个啊，因为我本就没有什么实习或项目经历供参考。问最擅长的语言，答Java。于是问写Java的东东，都很简单，因为我最近一直在看Thinking in Java，问题有方法前的修饰符及作用，什么是OO，什么是多态，Collection类。又问数据库，答略知皮毛，于是问索引，凭记忆答了，应该没错。然后问我有什么要问的，便问了培训计划，并装出认真倾听的样子，得到回答。问对公司了解多少，答知道一些，竟然让我向他介绍他们公司，晕，本就不是什么知名公司，平时谁关注啊？把能想起的招聘页面上的东东说了一下，冷场了。最后让用英语描述从准备到开始面试的过程，边想边说，也不知他有没有在听，只是在我每次以升调结尾时抬一下头，其余时间就对着大概是打分表之类的东东。然后对我说的问了两个问题，竟然没答好，本来还有过准备的。过了几分钟，告诉我，对不起，不能给offer，我竟然有一种轻松的感觉，嘴角竟有一丝笑容，都不需考虑是否要去了。于是让他指点哪些地方表现得不好，他说了三点。一就是虽然基础很扎实，但没有动手能力。（血的教训啊，以后说什么也要找几个程序证明自己会编程）二是什么，忘了，似乎跟三差不多。三是不善于自我表达，说对我也是最难的（果然是专业的，谢谢）出来，开机发现竟然还不到五点，可能就面了十多分钟，真是失败。
第一次的面试就这么挂了，真是悲惨。开发没有经验的确是不行啊，以后也学自然投系统管理好了，怎么说也对Linux基础比较熟了。
以此总结本次经验，再接再励。
]]></description>
			<content:encoded><![CDATA[<p>参加了几场笔试，终于收到一次面试通知，结果竟然直接当面通知我挂了，郁闷，记之。</p>
<p>昨天下午接到通知今天下午五点去面试，上学校BBS的job版看了看，有已经面完了的却没有谁给点经验什么的，算了，靠自己了。看了下职位的要求，改了改简历，就算是准备了。其实平心而论，我还是挺重视这次面试的（指甲都剪了，太长了不像经常敲代码的），毕竟是第一次嘛，虽然网上对那家公司的评价并不好，而即使给了offer我也不一定会去。</p>
<p>三点多从学校出发，四点多到指定的地方。报道后竟然直接就开始了，被一个技术面试官领走了。首先是自我介绍，老问题了，不过大概是紧张，没说几句就说不下去了。然后就问因为是数学专业，是不是程序都是在业余时间写的，答不完全是，有些专业课的算法也需要自己写代码。于是让说目前所写自己认为最好的程序，有点晕，想了一会儿竟没有什么程序，照实回答。现在想来太失误了，就算是拿不出手的也应该说一个啊，因为我本就没有什么实习或项目经历供参考。问最擅长的语言，答Java。于是问写Java的东东，都很简单，因为我最近一直在看<em>Thinking in Java</em>，问题有方法前的修饰符及作用，什么是OO，什么是多态，Collection类。又问数据库，答略知皮毛，于是问索引，凭记忆答了，应该没错。然后问我有什么要问的，便问了培训计划，并装出认真倾听的样子，得到回答。问对公司了解多少，答知道一些，竟然让我向他介绍他们公司，晕，本就不是什么知名公司，平时谁关注啊？把能想起的招聘页面上的东东说了一下，冷场了。最后让用英语描述从准备到开始面试的过程，边想边说，也不知他有没有在听，只是在我每次以升调结尾时抬一下头，其余时间就对着大概是打分表之类的东东。然后对我说的问了两个问题，竟然没答好，本来还有过准备的。过了几分钟，告诉我，对不起，不能给offer，我竟然有一种轻松的感觉，嘴角竟有一丝笑容，都不需考虑是否要去了。于是让他指点哪些地方表现得不好，他说了三点。一就是虽然基础很扎实，但没有动手能力。（血的教训啊，以后说什么也要找几个程序证明自己会编程）二是什么，忘了，似乎跟三差不多。三是不善于自我表达，说对我也是最难的（果然是专业的，谢谢）出来，开机发现竟然还不到五点，可能就面了十多分钟，真是失败。</p>
<p>第一次的面试就这么挂了，真是悲惨。开发没有经验的确是不行啊，以后也学自然投系统管理好了，怎么说也对Linux基础比较熟了。</p>
<p>以此总结本次经验，再接再励。</p>
]]></content:encoded>
			<wfw:commentRss>http://my.donews.com/firewood/2006/11/24/failed-on-interview/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>三星在天</title>
		<link>http://my.donews.com/firewood/2006/11/11/threestars-in-sky/</link>
		<comments>http://my.donews.com/firewood/2006/11/11/threestars-in-sky/#comments</comments>
		<pubDate>Fri, 10 Nov 2006 19:38:01 +0000</pubDate>
		<dc:creator>火木</dc:creator>
				<category><![CDATA[Feelings]]></category>

		<guid isPermaLink="false">http://my.donews.com/firewood/2006/11/11/threestars-in-sky/</guid>
		<description><![CDATA[刚才偶然望向窗外，竟看到了皎洁的下弦月。兴奋之下，跑上楼顶，果然可见数颗星。在月亮光华的照射下，还能看见周围薄薄的层云。这个时间，南方那闪烁的亮星该是天狼了，顺时针数之，南河三，北河三，五车二，毕宿一，参宿七，新年花环的六颗都到齐了，再加上中心的参宿四，这就是星空的主要内容了。最后，目光落在了天顶若隐若现的猎户腰带上。猛地想起一句诗：绸缪束薪，三星在天。回来又查了一下，完整的诗是这样的：
《诗经.唐风.绸缪》
绸缪束薪，三星在天。今夕何夕，见此良人？子兮子兮，如此良人何？绸缪束刍，三星在隅。今夕何夕，见此邂逅？子兮子兮，如此邂逅何？绸缪束楚，三星在户。今夕何夕，见此粲者？子兮子兮，如此粲者何？
很美的诗句，很美的邂逅，却不慎让我在今天看到了。11.11，极富网络无厘头气息的光棍节。不过，既然是节日，就还是得过，谁让咱是快乐的光棍呢？（啦啦啦，啦啦啦，我是快乐的光棍呀！）所以，我决定上一天自习（的确是很没创意，最近都是这么过的），正好到 Thinking in Java 的容器类(Collections)，什么Set啦，List啦，ArrayList啦，Map啦，看得头都大了，还能有什么闲心去想什么光棍节么，嘿嘿。
OK，睡觉。
PS：突然发现这篇文风很不统一，算了，想怎么写就怎么写，懒得改了。
]]></description>
			<content:encoded><![CDATA[<p>刚才偶然望向窗外，竟看到了皎洁的下弦月。兴奋之下，跑上楼顶，果然可见数颗星。在月亮光华的照射下，还能看见周围薄薄的层云。这个时间，南方那闪烁的亮星该是天狼了，顺时针数之，南河三，北河三，五车二，毕宿一，参宿七，新年花环的六颗都到齐了，再加上中心的参宿四，这就是星空的主要内容了。最后，目光落在了天顶若隐若现的猎户腰带上。猛地想起一句诗：绸缪束薪，三星在天。回来又查了一下，完整的诗是这样的：</p>
<p>《诗经.唐风.绸缪》</p>
<p>绸缪束薪，三星在天。今夕何夕，见此良人？子兮子兮，如此良人何？<br />绸缪束刍，三星在隅。今夕何夕，见此邂逅？子兮子兮，如此邂逅何？<br />绸缪束楚，三星在户。今夕何夕，见此粲者？子兮子兮，如此粲者何？</p>
<p>很美的诗句，很美的邂逅，却不慎让我在今天看到了。11.11，极富网络无厘头气息的光棍节。不过，既然是节日，就还是得过，谁让咱是快乐的光棍呢？（啦啦啦，啦啦啦，我是快乐的光棍呀！）所以，我决定上一天自习（的确是很没创意，最近都是这么过的），正好到<em> Thinking in Java </em>的容器类(Collections)，什么Set啦，List啦，ArrayList啦，Map啦，看得头都大了，还能有什么闲心去想什么光棍节么，嘿嘿。</p>
<p>OK，睡觉。</p>
<p>PS：突然发现这篇文风很不统一，算了，想怎么写就怎么写，懒得改了。</p>
]]></content:encoded>
			<wfw:commentRss>http://my.donews.com/firewood/2006/11/11/threestars-in-sky/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>杂谈，凑数</title>
		<link>http://my.donews.com/firewood/2006/10/26/mess/</link>
		<comments>http://my.donews.com/firewood/2006/10/26/mess/#comments</comments>
		<pubDate>Thu, 26 Oct 2006 15:59:10 +0000</pubDate>
		<dc:creator>火木</dc:creator>
				<category><![CDATA[日记]]></category>

		<guid isPermaLink="false">http://my.donews.com/firewood/2006/10/26/mess/</guid>
		<description><![CDATA[今天打开Blog页面，发现已经很久没有更新了，这个月才写了4篇，于是决定写点东西充充门面。
先说天气。经过几天的降温，终于开始感受到秋的萧索了。走在路上，看着枯黄的梧桐叶随风飘落又被风卷走，宋玉的“悲哉，秋之为气也”霎时涌上心头。秋，失心之愁也，或者说，愁，心上之秋也。在这万物凋零，草木含悲的季节里，怎能不感慨自己年华的逝去，生命的无成？“渥然丹者为槁木，黟然黑者为星星”，秋天，就这样带走了岁月。
再说自己。看LPI教程时不作笔记果然大大加快了速度，现在Exam 102只剩两个多Topic，11个Objective了，这周应该就能看完。郁闷的是要迎接教学评估，还必须去上课，幸好课不多，但这样就没法带电脑了，在课上开着电脑看其它的总是不太好。于是再启动一个“进程”，看Thinking in Java，速度还可以，今天就看了100页左右，对原来没有注意或不知道的地方也都作了笔记。但感觉时间还是不够用，很多知名企业都开始进校宣传招聘了，虽然也在网上投了几份简历，但自己都知道，简历没有任何亮点，很难引起关注。实习啊实习，经验啊经验，项目啊项目，都只能空着，没办法啊。本科生，尤其是数学院这种没有相应岗位的本科生，找工作就一个字：难啊！
最后说说最近在网上的见闻。前段时间IE7正式发布，第一时间装上（其实RC时就装上了），比IE6的确是有很大进步，推荐身边用IE的都更新了，不过，it doesn&#8217;t fit me。Firefox 2 也在前几天正式发布了（Beta2就开始使用了），客观的说，有点令人失望，并没有多少改进的地方。但现在的Firefox加上扩展也完全足够我使用了，so,I&#8217;ll always be on his side。Ubuntu 6.10 Edgy Eft 也在今天正式发布了，还在下载中，据说可以直接升级，改天有空试试，如果出问题就重装好了，正好检验一下最近学的东西。
还有件令人气愤的事，就是blogspot的被封。本来有搬到blogger beta的打算，结果GFW二话不说就给咔嚓了，靠！
PS：昨晚总算在熄灯之前点了“发表”，结果竟然打不开页面，后退，什么都没有，郁闷。早上起来，发现果然是路由接触不好，不甘，再敲一遍，手动将时间戳改到昨晚。
另：wordpress.com可以访问了，wikipedia的非中文页面也可以访问，据说blogspot昨晚某些时候也可以访问，实在搞不懂GFW在干什么。           －－10.27
]]></description>
			<content:encoded><![CDATA[<p>今天打开Blog页面，发现已经很久没有更新了，这个月才写了4篇，于是决定写点东西充充门面。</p>
<p>先说天气。经过几天的降温，终于开始感受到秋的萧索了。走在路上，看着枯黄的梧桐叶随风飘落又被风卷走，宋玉的“悲哉，秋之为气也”霎时涌上心头。秋，失心之愁也，或者说，愁，心上之秋也。在这万物凋零，草木含悲的季节里，怎能不感慨自己年华的逝去，生命的无成？“渥然丹者为槁木，黟然黑者为星星”，秋天，就这样带走了岁月。</p>
<p>再说自己。看LPI教程时不作笔记果然大大加快了速度，现在Exam 102只剩两个多Topic，11个Objective了，这周应该就能看完。郁闷的是要迎接教学评估，还必须去上课，幸好课不多，但这样就没法带电脑了，在课上开着电脑看其它的总是不太好。于是再启动一个“进程”，看<em>Thinking in Java</em>，速度还可以，今天就看了100页左右，对原来没有注意或不知道的地方也都作了笔记。但感觉时间还是不够用，很多知名企业都开始进校宣传招聘了，虽然也在网上投了几份简历，但自己都知道，简历没有任何亮点，很难引起关注。实习啊实习，经验啊经验，项目啊项目，都只能空着，没办法啊。本科生，尤其是数学院这种没有相应岗位的本科生，找工作就一个字：难啊！</p>
<p>最后说说最近在网上的见闻。前段时间IE7正式发布，第一时间装上（其实RC时就装上了），比IE6的确是有很大进步，推荐身边用IE的都更新了，不过，it doesn&#8217;t fit me。<a href="http://www.mozilla.com/en-US/">Firefox 2</a> 也在前几天正式发布了（Beta2就开始使用了），客观的说，有点令人失望，并没有多少改进的地方。但现在的Firefox加上扩展也完全足够我使用了，so,I&#8217;ll always be on his side。<a href="http://www.ubuntu.com/products/GetUbuntu/download#currentrelease">Ubuntu 6.10 Edgy Eft</a> 也在今天正式发布了，还在下载中，据说可以直接升级，改天有空试试，如果出问题就重装好了，正好检验一下最近学的东西。</p>
<p>还有件令人气愤的事，就是blogspot的被封。本来有搬到blogger beta的打算，结果GFW二话不说就给咔嚓了，靠！</p>
<p>PS：昨晚总算在熄灯之前点了“发表”，结果竟然打不开页面，后退，什么都没有，郁闷。早上起来，发现果然是路由接触不好，不甘，再敲一遍，手动将时间戳改到昨晚。</p>
<p>另：<a href="http://wordpress.com/">wordpress.com</a>可以访问了，<a href="http://wikipedia.org">wikipedia</a>的非中文页面也可以访问，据说blogspot昨晚某些时候也可以访问，实在搞不懂GFW在干什么。           －－10.27</p>
]]></content:encoded>
			<wfw:commentRss>http://my.donews.com/firewood/2006/10/26/mess/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LPI-笔记(2)</title>
		<link>http://my.donews.com/firewood/2006/10/17/lpi-notes-2/</link>
		<comments>http://my.donews.com/firewood/2006/10/17/lpi-notes-2/#comments</comments>
		<pubDate>Tue, 17 Oct 2006 15:07:09 +0000</pubDate>
		<dc:creator>火木</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://my.donews.com/firewood/2006/10/17/lpi-notes-2/</guid>
		<description><![CDATA[Topic 1.103：GNU和UNIX命令
Objective 1：使用命令行(5)
提示符：通常为$,#等单字符，表明系统已准备好接收命令。
Shell：在Linux内核与用户间提供了一个中间层，用于给出命令提示符和解释命令。最早的shell是Steve Bourne写的，叫sh. Linux默认的shell是bash(Bourne-Again Shell)，sh的GNU变种。
Shell变量：包括bash执行时所需的信息，多数在bash启动时赋值，也可以在任何时候手动赋值。如PS1(Prompt String)包含了bash提示符的内容(同样也有PS，内容是bash需要多行输入时的提示符，默认为&#62;)
echo $PS1
${debian_chroot:+($debian_chroot)}\u@\h:\w\$(我的Ubuntu的情况）
其中\为脱字符，指明后面的字符不会被shell作特殊处理。\u为用户名，\h为机器名，\w为当前路径，\$则是$。实例：triton@Triton-Ubuntu:~$
PATH：包含了一列目录，bash启动时会自动设置，也可以手动设置。bash会在PATH所列的目录中查找所需的程序或命令。
Tip：所有Linux文件下的程序都可以通过路径访问到，如/bin/cp，如果所在目录已在PATH中，则只需输入程序名即可。由于安全原因，当前目录(.)并不在PATH中，执行当前目录下的程序使用./name
bash能够执行的命令包括以下三类：
bash内建的命令；PATH变量中某目录下的可执行程序；详尽描述(使用路径)
shell保留变量供自己使用，但有些变量也是其它从shell启动的程序所需的，他们必须能够被导出，此时就成为了环境变量。这些环境变量构成了程序执行的环境。PATH总是环境变量。export var 可以将某个变量var导出成为环境变量，它被传送到所有子进程的环境中。
Linux命令通常包括一下四个部分：
有效的命令；命令选项，通常用在短折号(-)后；参数；行提交，如回车键
其中命令是必须的。
多个选项时可以都写在一个-后，也可以用多个-并用空格隔开，如ls -la 与 ls -l -a 等价
也可以使用&#8211;开始的长选项，如 ls -a 与ls -all等价。双短折号完整单词的选项经常出现在GNU计划的程序中。短选项与长选项可以任意混用。
有时，选项与参数可以以任意顺序混用，如 ls &#8211;all *.c -l
有些命令，如tar与ps，并不需要-在前只是选项，因为需要至少一个选项。但ps有时需要-来区分容易引起冲突的选项，如ps e与ps -e的执行结果就不同。
多行命令，如for,until,while的循环，bash以&#62;作为提示符。
一行中多个命令，以分号(;)作为分割符，如ls;ps
Exam Note：区分参数与选项的使用，有些命令中-的需要与否。LPI并不专注于考命令的选项。
sh没有命令历史记录，而bash可以使用history命令列出命令的历史记录。本次shell会话以前的命令在~/.bah_history中，其数量由shell变量HISTSIZE决定，默认为500。
Tip：对于窗口环境下的多个shell，上一个退出的shell会把它的历史写入到~/.bash_history中。
history expansion designators
常用指示符：
!!    相当于bang-bang，指最近的一条命令，在Linux和Unix系统中惊叹点经常被叫做bang
!n   历史中的第n条命令
!-n  历史中当前命令号数减n的那条命令
!string  最近一条由string开始的命令
!?string 最近一条包含string的命令
^string1^string2  快速替换，用sting2替换上一条命令中的string1
bash使用类似Emacs的快捷键操作命令
C-p/Up        历史中上一条命令
C-n/Down  历史中下一条命令
命令替换：${command}可以把命令的输出作为该表达式的替换，也可以使用&#8216;command&#8217;，但有时会引起一些问题。
递归：使用-R或&#8211;recursive    选项，chmod,cp,ls,rm等命令可以使用。
更常用的是用find命令，find隐含地使用递归。
find -exec command可以对每个找到的结果使用命令command，此时需用;终止，如find src -name &#8220;*.c&#8221; -exec chmod g+w {  } \;
对所有src下的C源文件加上组可写的权限，比chmod -R g+w src 更灵活。

Objective 2：使用过滤器处理文本流(6)
以下所有命令在没有指定文件参数或文件参数为-时，均从标准输入获取输入。

cut [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Topic 1.103：GNU和UNIX命令</strong></p>
<p><strong>Objective 1</strong>：使用命令行(5)</p>
<p>提示符：通常为$,#等单字符，表明系统已准备好接收命令。<br />
Shell：在Linux内核与用户间提供了一个中间层，用于给出命令提示符和解释命令。最早的shell是Steve Bourne写的，叫sh. Linux默认的shell是bash(Bourne-Again Shell)，sh的GNU变种。<br />
Shell变量：包括bash执行时所需的信息，多数在bash启动时赋值，也可以在任何时候手动赋值。如PS1(Prompt String)包含了bash提示符的内容(同样也有PS，内容是bash需要多行输入时的提示符，默认为&gt;)</p>
<p><em>echo $PS1</em><br />
${debian_chroot:+($debian_chroot)}\u@\h:\w\$(我的Ubuntu的情况）<br />
其中\为脱字符，指明后面的字符不会被shell作特殊处理。\u为用户名，\h为机器名，\w为当前路径，\$则是$。实例：triton@Triton-Ubuntu:~$<br />
PATH：包含了一列目录，bash启动时会自动设置，也可以手动设置。bash会在PATH所列的目录中查找所需的程序或命令。<br />
Tip：所有Linux文件下的程序都可以通过路径访问到，如/bin/cp，如果所在目录已在PATH中，则只需输入程序名即可。由于安全原因，当前目录(.)并不在PATH中，执行当前目录下的程序使用./name<br />
bash能够执行的命令包括以下三类：<br />
bash内建的命令；PATH变量中某目录下的可执行程序；详尽描述(使用路径)<br />
shell保留变量供自己使用，但有些变量也是其它从shell启动的程序所需的，他们必须能够被导出，此时就成为了环境变量。这些环境变量构成了程序执行的环境。PATH总是环境变量。export var 可以将某个变量var导出成为环境变量，它被传送到所有子进程的环境中。<br />
Linux命令通常包括一下四个部分：<br />
有效的命令；命令选项，通常用在短折号(-)后；参数；行提交，如回车键<br />
其中命令是必须的。<br />
多个选项时可以都写在一个-后，也可以用多个-并用空格隔开，如<em>ls -la </em>与<em> ls -l -a </em>等价<br />
也可以使用&#8211;开始的长选项，如 <em>ls -a</em> 与<em>ls -all</em>等价。双短折号完整单词的选项经常出现在GNU计划的程序中。短选项与长选项可以任意混用。<br />
有时，选项与参数可以以任意顺序混用，如<em> ls &#8211;all *.c -l</em><br />
有些命令，如tar与ps，并不需要-在前只是选项，因为需要至少一个选项。但ps有时需要-来区分容易引起冲突的选项，如<em>ps e</em>与<em>ps -e</em>的执行结果就不同。<br />
多行命令，如<em>for,until,while</em>的循环，bash以&gt;作为提示符。<br />
一行中多个命令，以分号(;)作为分割符，如<em>ls;ps</em><br />
Exam Note：区分参数与选项的使用，有些命令中-的需要与否。LPI并不专注于考命令的选项。<br />
sh没有命令历史记录，而bash可以使用<em>history</em>命令列出命令的历史记录。本次shell会话以前的命令在~/.bah_history中，其数量由shell变量HISTSIZE决定，默认为500。<br />
Tip：对于窗口环境下的多个shell，上一个退出的shell会把它的历史写入到~/.bash_history中。<br />
<em>history expansion designators</em><br />
常用指示符：<br />
<em>!! </em>   相当于bang-bang，指最近的一条命令，在Linux和Unix系统中惊叹点经常被叫做bang<br />
<em>!n </em>  历史中的第n条命令<br />
<em>!-n </em> 历史中当前命令号数减n的那条命令<br />
<em>!string</em>  最近一条由string开始的命令<br />
<em>!?string</em> 最近一条包含string的命令<br />
<em>^string1^string2</em>  快速替换，用sting2替换上一条命令中的string1<br />
bash使用类似Emacs的快捷键操作命令<br />
C-p/Up        历史中上一条命令<br />
C-n/Down  历史中下一条命令</p>
<p>命令替换：<em>${command}</em>可以把命令的输出作为该表达式的替换，也可以使用<em>&#8216;command&#8217;</em>，但有时会引起一些问题。<br />
递归：使用<em>-R</em>或<em>&#8211;recursive  </em>  选项，<em>chmod,cp,ls,rm</em>等命令可以使用。<br />
更常用的是用<em>find</em>命令，<em>find</em>隐含地使用递归。<br />
<em>find -exec command</em>可以对每个找到的结果使用命令<em>command</em>，此时需用;终止，如<em>find src -name &#8220;*.c&#8221; -exec chmod g+w {  } \;</em><br />
对所有src下的C源文件加上组可写的权限，比<em>chmod -R g+w src</em> 更灵活。</p>
<p><strong><br />
Objective 2</strong>：使用过滤器处理文本流(6)</p>
<p>以下所有命令在没有指定文件参数或文件参数为-时，均从标准输入获取输入。<br />
<em><br />
cut options [files]</em><br />
切出并打印一个或多个文件中所选的列或字段，源文件不变。字段的分界符默认为一个Tab。<br />
<em>-blist</em>     打印第list列的字节<br />
<em>-clist </em>       打印第list列的字符<br />
<em>-ddelim  </em>  为-f设置字段的分界符为delim字符<br />
<em>-flist </em>       打印第list列的字段</p>
<p><em>expand [options] [files]</em><br />
将Tab转换为等量的空格，默认为8个。<br />
<em>-tnumber</em>    指定tab的宽度<br />
<em>-i </em>       最初的，只在每行的开始时转换</p>
<p><em>fmt [options] [files]</em><br />
格式化文件到指定宽度并打印。<br />
<em>-u </em>       使用统一的空格：单词间一个；句子间两个<br />
<em>-w width </em>   设置行宽为width(默认为75)</p>
<p><em>head [options] [files]</em><br />
打印一个或多个文件的前几行。<br />
<em>-c n </em>       打印前n个字节，n后可以接k,m等单位表示KB,MB.<br />
<em>-nn</em>        打印前n行，默认为10</p>
<p><em>join [options] file1 file2</em><br />
file1与file2有相同的联结字段(join fields)时，将两个文件中对应的行打印在同一行中。</p>
<p><em>nl [options][files]</em><br />
为文件添加行号后打印。为每一个含有页眉，主体，页脚的逻辑页面单独编号，他们之间通常是用\:\:\:, \:\: 和 \:分隔。<br />
<em>-b style</em>    设置主体编号样式为style，默认为t<br />
<em>-f style</em>    设置页脚编号样式为style，默认为n<br />
<em>-h style</em>    设置页眉编号样式为style，默认为n<br />
样式有以下几种：<br />
<em>a</em>    编号所有行<br />
<em>t </em>   只编号非空行<br />
<em>n</em>    不编号<br />
<em>pRegexp</em>    只编号行内有符合正则表达式Regexp的行<br />
如假设文件file1含有以下内容<br />
\:\:\:<br />
header<br />
\:\:<br />
line1<br />
line2<br />
line3<br />
\:<br />
footer<br />
\:\:\:<br />
header<br />
\:\:<br />
line1<br />
line2<br />
line3<br />
\:<br />
footer<br />
则 <em>nl -h a file1</em> 的输出为<br />
1  header<br />
2  line1<br />
3  line2<br />
4  line3<br />
footer<br />
1  header<br />
2  line1<br />
3  line2<br />
4  line3<br />
footer<br />
<em>od [options] [files]</em><br />
将文件转为八进制输出。<br />
<em>-t type</em>     指定输出样式为type。常用样式有：<br />
<em>A</em>    字符<br />
<em>c </em>   ASCII字符或转义字符<br />
<em>O </em>   八进制(默认)<br />
<em>x </em>   十六进制<br />
<em><br />
paste [options] [files]</em><br />
将每个文件中对应的行整合到一行输出，之间用tab隔开<br />
<em>-dn</em>    使用字符n隔开多个列<br />
<em>-s</em>    将一个文件中的行合并到一行中输出，当有多个文件时，每个文件各占一行</p>
<p><em>pr [options] [file]</em><br />
将文本文件转换为分页分栏的格式，包括报头和页面内容。报头包括日期，时间，文件名和页码。<br />
<em>-d</em>    加倍输出空白区域<br />
<em>-hheader</em>    在报头中用header代替文件名<br />
<em>-llines</em>    设置页面高度为lines行，默认为66<br />
<em>-o width</em>    设置左边距为width</p>
<p><em>sort [options] [files]</em><br />
按字母顺序输出到标准输出。<br />
<em>-f</em>    对大小写不敏感<br />
<em>-kPOS1[,POS2] </em>   从POS1开始排序，(选择性地)结束于POS2<br />
<em>-n </em>   根据字符串化的数值排序<br />
<em>-r</em>    逆向排序<br />
<em>-tSEP </em>       使用SEP作为分割符，默认为空格</p>
<p><em>split [option] [infile] [outfile]</em><br />
将infile分为具有指定行数的多个组，输出到一列文件outfileaa,outfileab等中(默认为xaa,xab等)，infile文件不变。<br />
<em>-n </em>   指定每个部分包括n行，默认为1000</p>
<p><em>tac[file]</em><br />
因与<em>cat</em>(输出文件)作用相反而得名，逆序地逐行输出文件。</p>
<p><em>tail [options] [files]</em><br />
打印一个或多个文件的最后几行。<br />
<em>-cn </em>   打印最后n个字节，n后可以带k,m表示KB或MB<br />
<em>-nm</em>    打印最后m行，默认为10<br />
<em>-f </em>   当文件正在被另一个进程写时，持续地显示，常用于观察系统运行时的日志文件。</p>
<p><em>tr [options] [string1 [string2]]</em><br />
将String1中的字符转换为String2中对应的字符，没有文件参数，必须使用标准输入输出。String1与String2的字符数应该相同<br />
String1和String2可以包括如下特殊字符：<br />
a-z    a到z之间的所有字母<br />
\\    \的转义<br />
\nnn    八进制数值nnn的ASCII字符<br />
\x    某种控制符如 \a(响铃)，\b(退格)，\n(换行)<br />
[:class;]    某种POSIX字符类如[:alnum:](字母和数字)，[:aplha:](字母)<br />
选项：<br />
<em>-c </em>   使用所有非String1内的字符<br />
<em>-d  </em>  从输出中删除String1中的字符<br />
<em>-s </em>   从输出中删除String1中的重复字符</p>
<p><em>unexpand [options][files]</em><br />
将空格转换为制表符，制表符默认为8个空格。<br />
<em>-a</em>    转换所有的空格。通常情况下unexpand只作用于每行开始的的空白<br />
Tip：此处unexpand与expand不同，expand默认将所有制表符转换为空格，需要选项-i使只转换开始的空白。<br />
<em>-t number</em>    指定制表符的宽度为number</p>
<p><em>uniq [options] [input [output]]</em><br />
从input中删除相邻的重复行输出到output中。由于只作用于相邻的行，常与sort结合使用。<br />
<em>-d</em>    只打印重复的行<br />
<em>-d </em>   只打印不重复的行</p>
<p><em>wc [options] [files]</em><br />
打印文件的字符数，词数和行数。多个文件时，每个文件的统计结果各占一行。<br />
<em>-c</em>    只打印字符数<br />
<em>-l</em>    只打印行数<br />
<em>-w </em>   只打印词数<br />
<em><br />
xargs [options] [command] [initial-arguments]</em><br />
根据initial-arguments参数和从标准输入获得的附加参数执行command命令，通常附加参数为文件名。<br />
xargs多次执行command以耗尽标准输入上的所有参数。<br />
<em>-n maxargs</em>    限定每次command执行的附加参数为maxargs<br />
<em>-p</em>    交互模式，每次执行时提示用户</p>
<p>如要使用grep从文件中逐个地寻找&#8221;linux&#8221;，可使用 <em>find / -type f | xargs -n 1 grep -H linux<br />
</em></p>
<p><strong>Objective 3</strong>：基本文件管理(5)</p>
<p>在Linux文件系统的顶端是一个目录/，也就是根目录。/下方是一些有命名的目录和文件，在一棵有组织的，定义良好的树中。<br />
Tip：不要混淆根目录(root derectory,/)与用户root。同时通常还有一个为root用户所准备的/root目录(作为root用户登录时的home目录)</p>
<p>i结点是文件系统对象的标志信息，它记录了对象的信息如位置，修改时间，存取限制等。多个对象可以共享一个i结点，这种情形叫做链接。</p>
<p><em>cp [options] file1 file2<br />
cp [options] files directory</em><br />
第一种形式中，将file1复制为file2。如果file2已存在且你有适当的权限，file2将会被覆盖，没有任何提示(除非使用了-i选项)。在第二种形式中，复制file1到目录directory下。有多个文件时则是复制到目录下。如果directory不存在，将打印错误信息。需要注意，如果想将一个文件复制到一个不存在的目录下，将会被认为是第一种形式而复制一个文件。<br />
<em>-f</em>    强制覆盖目标处已存在的文件<br />
<em>-i </em>   覆盖文件时提示，建议使用 cp -i以防止危险的覆盖<br />
<em>-p</em>    保护所有信息，如所有者，群组，存取权限，时间戳等。没有该选项时，复制的文件将会有当前的时间，默认存取权限，所有者和群组。<br />
<em>-r,-R</em>    递归地复制目录，-r,-R均可。<br />
<em>-v</em>    在复制前详尽地显示文件名</p>
<p><em>mkdir [options] directories</em><br />
创建一个或多个目录，必须拥有所创建目录所在目录的写权限。<br />
<em>-m mode</em>    设置所创建目录的存取权限<br />
<em>-p </em>   如果不存在时，创建中间的父目录</p>
<p><em>mv [options] source target</em><br />
移动或重命名文件和目录。对于目标在同一个文件系统(分区)中，移动文件并不重定位它的内容，只是路径改变为新的路径。对于目标不在同一文件系统中的，文件复制到目标位置，原文件被删除。<br />
如果目标文件或目录不存在，source被重命名为target。如果target文件存在，将会被source覆盖。如果target是一个存在的目录，source移动到目录中。<br />
<em>-f </em>   强制移动，即使target文件存在，删除警告信息<br />
<em>-i </em>   移动前询问</p>
<p><em>rm [options] files</em><br />
删除一个或多个文件。要删除文件，必须拥有文件所在目录的写权限，但并不需要文件本身的写权限。<br />
<em>-d</em>    删除目录，即使他们非空，为特权用户保留<br />
<em>-f </em>   不提示地强制删除具有写保护的文件<br />
<em>-i </em>   删除前询问<br />
<em>-r,-R </em>   如果为目录，递归地删除整个目录及内容，包括子目录</p>
<p><em>rmdir [option] directories</em><br />
删除目录，但必须是空目录。<br />
<em>-p </em>   删除中间的实际上已经成为空目录的父目录。</p>
<p><em>touch [options] files</em><br />
改变文件的读取和修改时间，默认为当前时间，常用于刷新文件的时间戳。<br />
<em>-a</em>    只改变读取时间<br />
<em>-m</em>    只改变修改时间<br />
<em>-t timestamp</em>    修改时间戳为[[CC]YY]MMDDhhmm[.ss]格式的timestamp而不是当前时间</p>
<p>文件名通配符：<br />
所有Linux上的shell都提供了文件名通配符，通配符是由shell展开而不会由命令展开的，shell展开通配符并把所有结果传送给命令，这个过程对用户是透明的。</p>
<p><em>*</em>    匹配一个或多个字符<br />
<em>?</em>    匹配一个字符<br />
<em>[list]</em>    匹配list中的任一字符，如x[yz]匹配xy,xz<br />
<em>[!list] </em>   匹配任一不在list中的字符<br />
<em>[a-z]</em>    匹配a-z范围内的任一字符<br />
<em>[!a-z]</em>    匹配任一不在a-z范围内的字符<br />
<em>{String1,String2,String3,&#8230;} </em>   创建字符串String1,String2,String3等，如file_{one,two,three}产生file_one,file_two,file_three。这种特殊的操作叫做花括号展开，并不在目录内检查已存在的文件以匹配。如 echo string_{a,b,c}将输出string_a string_b sting_c</p>
<p>通配符同样匹配目录名。</p>
<p><strong>Objective 4</strong>：使用流，管道和重定向(5)</p>
<p>Linux和Unix系统中，一切都是文件。这种映射简化了借口，为Linux和Linux编程提供了一致的简便性。</p>
<p>标准I/O是shell的功能，使用纯文本Linux工具来控制程序的输入，输出和错误信息。程序启动时，将有三个文件描述符提供给它。标准I/O提供以下三个文件描述符：<br />
标准输入(简写为stdin)，文件描述符0，是文本输入流，默认与键盘联系，读取输入。<br />
标准输出(简写为stdout)，文件描述符1，是文本输出流，默认与终端联系，显示输出。<br />
标准错误(简写为stderr)，文件描述符2，同样是文本输出流，只用于与命令成功执行的结果无关的错误或其他信息。默认与终端联系。</p>
<p>管道：从程序的立场看从文件和键盘读取文本数据并没有区别(都是从文件,键盘是stdin)；同样，把文本写到文件和显示在终端上也没有区别。作为这种想法的延伸，可以将一个程序的输出与另一个的输入联系在一起。管道(|)就是这种将两个或多个命令联系在一起的机制。<br />
如要查看将当前目录下的文件按i结点排序的结果，可使用<br />
<em>ls -i * | awk &#8216;{print $1}&#8217; | sort -nu | less</em><br />
重定向：管道是重定向的一种特殊形式。<br />
&gt;：将输出结果写入文件中，如<em>ls -i * | awk &#8216;{print $1}&#8217; | sort -nu  &gt; sort.txt</em><br />
文件存在时，将被覆盖。<br />
&gt;&gt;：将输出结果追加到已存在文件中，文件不存在时，将创建并写入。<br />
当创建文件时，输出重定向符比命令先被shell解释，即文件先被打开。不能使用如<em>grep &#8220;stuff&#8221; file1 &gt; file1</em>，此时file1先被覆盖为空白文件，然后才执行<em>grep</em>。<br />
因此，<em>&gt;file</em>可以新建一个空文件或将已有文件内容删除。<br />
输出重定向符前可以加1，指输出标准输出；加2，指标准错误。不加则默认为标准输出。将标准输出和标准错误都输出到文件，使用<em>cmd &gt;file 2&gt;&amp;1</em>或<em>cdm&gt;&gt;file 2&gt;&amp;1</em><br />
如<em>ls 1&gt;out.txt</em>同<em>ls &gt;out.txt</em>，<em>ls -z 2&gt;err.txt</em>则将标准错误输出到err.txt而不是终端。<br />
tee [options] files</em><br />
从标准输入读取并同时写入一个或多个文件中和标准输出中。<br />
<em>-a</em>    追加到文件中而不是覆盖</p>
<p><strong><br />
Objective 5</strong>：创建，监控和杀死进程(5)</p>
<p>大多数时候，进程在内核的自动管理下进程生存，执行和消亡，不需用户干预。<br />
进程的属性：生命周期；进程ID(PID)；用户ID(UID)和群组ID(GID)；父进程；父进程ID(PPID)；环境；当前工作目录。<br />
内核在系统启动时创建的第一个进程是init，PID=1，是系统中所有进程的最终父进程。</p>
<p><em>ps [options]</em><br />
生成当前进程的快照到标准输出，通常情况下只显示当前用户的进程。<br />
<em>-a</em>    显示其他用户和与终端相连的进程。<br />
<em>-f</em>    森林模式，用于显示进程树。<br />
<em>-l</em>    长格式，包括优先级，父进程ID等信息<br />
<em>-u </em>   用户格式，包括用户名和进程开始时间<br />
<em>-w</em>    删除默认输出的线端，常与-f联用<br />
<em>-x </em>   包括没有控制终端的进程，常用作查看后台服务进程和不是由终端启动的进程<br />
<em>-C cmd</em>    显示cmd命令的实例<br />
<em>-U user</em>    显示user用户所拥有的进程</p>
<p>Linux的<em>ps</em>来源于以下三种系统：<br />
Unix98     选项可以分组，必须由-引导<br />
BSD    选项可以分组，必须没有-引导<br />
GNU    长选项由&#8211;引导<br />
为了尽量兼容，有些选项使用-均可，如<em>-aux,aux</em>，有些选项必须使用-，如<em>-C</em></p>
<p><em>pstree</em><br />
类似于<em>ps</em>的<em>-f</em>森林模式，显示进程树，利于明白各个进程之间的关系。如果PID被指定，将显示该进程及其子进程的进程树；否则将以init进程为根显示进程树。如果有效的用户名被指定，将显示该用户所拥有的所有进程。默认情况下，相同分枝会合并到一起以减少输出，如httpd&#8212;5*[httpd]，可以使用-c选项关掉该行为，则为<br />
httpd-+-httpd<br />
|-httpd<br />
|-httpd<br />
|-httpd<br />
&#8216;-httpd<br />
<em>-a </em>   显示启动进程的命令行参数<br />
<em>-c</em>    禁用压缩相同的分枝<br />
<em>-G</em>    使用VT100线条画字符而不是平面字符显示树，显示更为悦目<br />
<em>-h</em>    高亮当前进程的祖先进程(通常为shell)<br />
<em>-n</em>    默认排序方式是同父进程的进程按进程名字母顺序排列，该选项则改为按PID数值从小到大排列<br />
<em>-p</em>    输出中包括PID</p>
<p><em>top[options]</em><br />
<em>top</em>提供类似于<em>ps</em>的输出，但以持续更新的方式显示。默认情况下占用CPU最多的进程在列表的顶端(<em>top</em>因此而得名)。为了控制显示屏，<em>top</em>必须知道如何控制终端显示。终端的类型存储在环境变量TERM中，如果该变量没有设置或设置错误，<em>top</em>可能不会执行。<br />
<em>-b</em>    批量模式，常用于将top的结果输出到其他程序或文件中，执行-n选项中设置的次数然后终止。<br />
<em>-d delay</em>    设置屏幕刷新的间隔为delay秒，默认为5秒<br />
<em>-i </em>   排除空闲进程，只列出消耗系统资源的进程<br />
<em>-n num</em>        执行num次后退出，而不是一直运行<br />
<em>-q </em>   没有延迟地运行，如果用户为超级用户，以最高优先级运行，将耗光CPU的所有空闲时间，影响系统性能，并不建议。<br />
<em>-s </em>   安全模式，以超级用户运行时有些<em>top</em>的交互式命令会带来危险，该选项禁用那些命令</p>
<p><em>top</em>运行时，可以通过键盘给出命令以改变它的行为，这些都是单键命令，有些会使<em>top</em>提示输入<br />
<em>Ctrl-L  </em>      刷新屏幕<br />
<em>h</em>    显示帮助信息<br />
<em>k </em>   杀死进程，提示输入PID和发送的信号量(默认为15，SIGTERM)<br />
<em>n </em>   改变要显示的进程数，提示输入一个整数，默认为0，代表充满屏幕<br />
<em>r</em>    改变进程的优先级，提示输入PID和nice数的值。正数降低优先级，超级用户可以输入负数，提升优先级。安全模式下命令不可用。<br />
<em>s</em>    改变屏幕刷新的间隔，单位为秒，可以输入小数<br />
<em>q</em>    退出top命令</p>
<p>信号量是预定义的整数格式的信息，大多数代表了进程的某种动作。当进程收到信号量时，他可以(或是被强迫)采取这种动作。常用的信号量有：(数字是发送给进程的，名字只是为了方便)<br />
1：<em>HUP</em>，挂断，登出或断开modem时自动发送。同时很多后台服务也用它来重读配置文件<br />
2：<em>INT</em>，中断，停止运行，按下Ctrl-C时信号量被发送<br />
9：<em>KILL</em>，无条件立即停止，该信号量不能被进程忽略<br />
15：<em>TERM</em>，终止，尽量优雅地，由于要求进程完整地退出<br />
20：<em>TSTP</em>，停止执行，准备继续，按下Ctrl-Z时信号量被发送<br />
18：<em>CONT</em>，启动被SIGTSTP或SIGSTOP停止的进程(用Ctrl-Z停止进程后使用fg或bg命令时信号量被发送)</p>
<p>信号量的名字通常以<em>SIG</em>为前缀，即HUP与SIGHUP是一样的。<br />
<em>kill [-s sigspec | -sigspec] [pids]<br />
kill -l [signum]</em><br />
<em>kill </em>既是shell内建命令也是单独的二进制命令。在第一种形式中，sigspec是一个信号量值，整数或信号量名，大小写不敏感但通常大写。shell内建的<em>kill</em>对<em>-s sigspec</em>和<em>-sigspec</em>大小写均不敏感，但单独的<em>kill</em>只对<em>-s sigspec</em>大小写不敏感。如果没有指定sigspec，15(SIGTERM)为默认。第二种形式中，<br />
<em>kill</em>列出可用的信号量名，如果signum(整数)被指定，则只显示该信号量的名字。</p>
<p>Exam Note：<em>kill</em>被用来发送各种信号量，而不只是终止信号。<br />
杀死一个进程同样也会杀死它所有的子进程。<br />
当进程与终端相联系时，它处于前台。当进程被放在后台时，它就成为了一个作业。<br />
非交互性的程序可以通过在命令后加上&amp;放在后台，如<em>mozilla &amp;</em>将使Mozilla浏览器在后台运行。此时shell会给出一个工作号和PID，然后是新的命令提示符。<br />
对于前台的程序，可以使用Ctrl-Z停止，然后使用<em>bg</em>命令使它到后台。</p>
<p><em>bg [jobspec]</em><br />
将指定的jobspec放到后台。如果不指定jobspec，当前工作(jobs命令输出中+所指示的)将被使用。</p>
<p><em>fg[jobspec]</em><br />
将指定的jobspec放到前台。如果不指定jobspec，当前工作将被使用。</p>
<p><em>jobs [options][jobspecs]</em><br />
列出活动的工作。如果指定了jobspecs，那些工作的信息将被列出。<br />
<em>-l</em>    同时列出PID</p>
<p><strong>Objective 6</strong>：修改进程执行的优先级(3)</p>
<p>进程的优先级由内核自动管理，根据一系列的参数，每一个进程的优先级被持续，动态地升高和降低。<br />
命令<em>ps -l</em>和<em>top</em>的输出中，优先级数值PRI是相对的，数值越大，内核分配给它的CPU时间越多。</p>
<p>nice数(nice number)：nice数是描述优先级的一个参数。用户新建一个进程时，默认的nice数为0，正数降低优先级，负数提升。nice数的范围是-20到19，任何用户都可以一个正的nice数开始一个进程，但只有超级用户能够减小nice数的值以提升优先级。</p>
<p><em>nice [-n adjustment] [command ]<br />
nice [-adjustment] [command ]</em><br />
改变另一个命令开始时的nice数。对一般用户，adjustment是1-19之间的一个整数，超级用户则可以使用-20到19之间的任一数。如果没有指定adjustment，默认为10。如果adjustment和command都缺省，则显示当前继承而来的调度优先级。</p>
<p><em>renice [+|-]nicenumber [option] targets</em><br />
修改一个或多个运行中targets进程的nice数。默认情况下renice认为targets是PID值。<br />
<em>-u </em>   将targets解释为用户名，影响该用户所拥有的所有进程<br />
<em>-p</em>    将targets解释为PID(默认)</p>
<p>Exam Note：注意nice中数字前的-表示负数还是选项；renice中则不需要-。</p>
<p><strong>Objective 7</strong>：使用正则表达式搜索文本文件(3)</p>
<p>正则表达式：类似于通配符，但有更多的特殊字符。LPIC-1中使用正则表达式的重要命令有两个：<em>grep</em>和<em>sed</em>。</p>
<p>正则表达式由组织好的文本字符串，或模式定义。模式是由两类字符组成的，句节和元字符。有些元字符被认为是在元字符的扩展集中，尤其是那些egrep中引入的。</p>
<p>Tip：脱字符\关闭它后面字符的特殊意义，把元字符变为句节，对非原字符，开启某种特殊意义。</p>
<p>正则表达式定位锚：<br />
<em>^</em>：匹配行的开始，当在正则表达式左边时才有该意义<br />
<em>$</em>：匹配行的结束，当在正则表达式右边时才有该意义<br />
<em>\</em>：匹配词的边界，词的边界被定义为空白，行开始，行结束或标点符号。<br />
正则表达式字符集：<br />
<em>[abc][a-z]</em>：匹配列表或范围中的单一字符<br />
<em>[^abc][^a-z]</em>：反转匹配，匹配所有不在列表或范围内的单一字符<br />
<em>.</em>：匹配任一字符，除了换行符\n<br />
正则表达式修饰符：(默认为基础正则表达式，括号中为扩展正则表达式(<em>egrep</em>))<br />
<em>*(*)</em>：匹配它前面的单个字符或单个字符正则表达式0或多次<br />
<em>\?(?)</em>：匹配前面的正则表达式0或1次<br />
<em>\+(+)</em>：匹配前面的正则表达式1或多次<br />
<em>\{n,m\}({n,m})</em>：匹配前面的单字符或正则表达式多次，\{n\}为n次，\{n,\}为至少n次，\{n,m\}为n到m之间的任一次，包括n和m<br />
<em>\|(|)</em>：交替，匹配前面的正则表达式或|后面的<br />
<em>\(regex\)((regex))</em>：组，匹配regex但可以被修饰为一个整体和使用\</p>
<p><em>grep [options] regex [files]</em><br />
从文件或标准输入中寻找匹配正则表达式regex的行并打印，多个文件时使用文件名作为行的前缀。<br />
<em>-c </em>   只打印匹配行的数目，而不打印行本身<br />
<em>-h</em>    打印匹配的行，但并不包括多个文件输入时的文件名前缀。<br />
<em>-i</em>    忽略大小写<br />
<em>-n </em>   在匹配的行前加入他们的行号，多个文件时文件名和行号都作为前缀<br />
<em>-v</em>    打印所有不匹配regex的行<br />
<em>-E</em>    将regex解释为扩展正则表达式，使grep如同egrep般工作<br />
当使用含有元字符的正则表达式时，表达式应该用引号&#8217;或&#8221;引起来</p>
<p><em>sed [options] &#8216;command1&#8242; [files]<br />
sed [options] -e &#8216;command1&#8242; [-e 'command2'...] [files]<br />
sed [options] -f script [files]</em><br />
<em>sed</em>是流编辑器。第一种形式中，根据单行命令执行<em>sed</em>。第二种形式中，根据两个或多个命令执行<em>sed</em>，此时每个命令前都必须有选项<em>-e</em>，命令由&#8217;引起来以避免shell解释和展开。第三种形式中，<em>sed</em>从文件script中寻找编辑命令。<br />
<em>-ecmd</em>        指出下一个参数cmd是一个或一列<em>sed</em>编辑命令，只有一个命令时，-e可以省略(即第一种形式)<br />
<em>-f file</em>    file是一个sed脚本(即第三种形式)<br />
<em>-g</em>    将所有替换看作全局的<br />
<em>sed</em>根据地址和编辑命令操作文本，地址定位操作的文本行，编辑命令修改。<br />
地址可以是：<br />
行数(<em>sed</em>在所有输入文件中连续编号行)，$可以指代输入的最后一行。可以使用&#8221;start,end&#8221;来表示一个范围，如2,$指从2到最后一行<br />
正则表达式，用//包括起来，即/regex/<br />
带间距的行号，n~s，n是开始行号，s是步长。<br />
命令：<br />
<em>sed</em>编辑命令紧跟在地址后面。多为一个字母或符号，除非带有参数。<br />
<em>d</em>    删除行<br />
<em>s</em>    替换，语法为s/pattern/replacement/[flags]，flags可使用以下标识：<br />
<em>g</em>    全部替换，而不只是第一个<br />
<em>n</em>    替换第n个，默认为1<br />
<em>p</em>    如果替换成功，打印行，通常与-n选项联用<br />
<em>w file</em>        如果替换成功，将行输出至file<br />
<em>y </em>   转换字符，与tr类似</p>
<p><strong>Objective 8</strong>：使用Vi进行基本文件编辑(1)</p>
<p>Skip，要求太简单了，早已掌握，且权重为1，内容很少</p>
<p><strong>PS</strong>：我自己都不知道是否还有继续作这个笔记的必要，因为已经大大拖慢了我的看书速度，尤其是命令这章，感觉就像做翻译，都是&#8211;help和man里的东东。</p>
<p>这几天回到寝室都特别困，大概是对着屏幕太长的缘故（加上上网时间超过12小时），难道我以后工作了就是这种生活，my god，无法想像</p>
]]></content:encoded>
			<wfw:commentRss>http://my.donews.com/firewood/2006/10/17/lpi-notes-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LPI-笔记(1)</title>
		<link>http://my.donews.com/firewood/2006/10/12/lpi-notes-1/</link>
		<comments>http://my.donews.com/firewood/2006/10/12/lpi-notes-1/#comments</comments>
		<pubDate>Thu, 12 Oct 2006 15:57:58 +0000</pubDate>
		<dc:creator>火木</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://my.donews.com/firewood/2006/10/12/lpi-notes-1/</guid>
		<description><![CDATA[前言：改变了计划，开始看LPI的内容，用的教材是O&#8217;Relly 的LPI Linux Certification in a Nutshell, 2nd Edition，电子版的。（Linux下如何看chm？有多种程序如xchm,chesee等，后者对中文的支持较好。前几天刚发现还有个Firefox 的扩展CHM Reader，目前还只有Linux下的版本。个人更喜欢这个，可以使用Firefox的众多扩展及放大，改变字体等。）还有很多其它的资料，如IBM开发者网上的在线教程，不过还没写完。带着电脑去自习，也就顺便用OOo(OpenOffice.org)作了份笔记。以下便是今天的成果。
关于LPIC：LPIC是由LPI颁发的全球范围的Linux专业认证，它是中立性的，亦即与发行版本无关(LPI本身也是非盈利性组织）。LPIC目前有两个级别：LPIC-1和LPIC-2，各有两门考试：101，102和201，202。101包括5个Topic，102则是9个。201：8个，202：7个。每个Topic又包括若干个Objective，每个Objective都有个权重，从1到8不等，权重越大也就越重要。（本笔记中每个Objective后的括号中数字即为它的权重）

Exam 101
101考试时间为90分钟，65个题左右，大部分为单选，10％左右为多选，还有少量填空，后两者一般都较难。
Topic 1.101：硬件与架构
Objective 1：配置基本 BIOS 设置(1)
BIOS：了解基本：时间和日期；磁盘与启动设备
Exam Note：熟悉基本配置与典型BIOS的设置界面
资源分配：中断；I/O地址；DMA通道 要避免冲突 并口与串口有标准的地址分配
串口：两个串口 ttyS0,ttyS1 独立使用中断4和3；四个串口 ttyS0,ttyS1,ttyS2,ttyS3 ttyS0,ttyS2互斥共享中断4,ttyS1,ttyS3互斥共享中断3
1024柱面限制：BIOS无法读取1024柱面外的数据；LILO/GRUB与内核必须放置在1024柱面以内
Objective 3：配置Modem与声卡(1)
Modem：Modem是串行设备，连接工业标准RS-232串口 Modem一般作为第三个串口(ttyS2)
Winmodem:为Windows设计的Modem，不能用在Linux上，除非有Linux驱动
声卡：大部分声卡都有Linux驱动
Exam Note：声卡驱动是内核模块之一，配置储存在/etc/modules.conf内
内核无法识别时：使用sndconfig,isapnp 手动配置
Objective 4：设置非IDE设备(1)
SCSI：SCSI是一种比IDE更灵活，可扩展和更快的接口。SCSI定义一个总线，其中有一个SCSI控制器， 每一个设备分配唯一的一个SCSI地址(也叫SCSI ID)。SCSI包括：SCSI-1,SCSI-2,Wide SCSI, Fast SCSI,Fast Wide SCSI,Ultra SCSI,Ultra Wide SCSI(SCSI-3),Ultra2,Wide Ultra2.
SCSI ID：所有SCSI设备，包括SCSI控制器，都有一个通过地址线可以访问的地址。8位SCSI总线有 3条地址线，故可容纳8个设备；16位SCSI总线有4条地址线，故可容纳8或16个设备，取 决于跳线。地址从0开始，两种总线中SCSI控制器习惯上都使用地址7。
有些设备如RAID控制器，在SCSI控制器上作为一个磁盘出现，使用一个地址，此时将会有    一个LUN(logical unit number)被报告给SCSI控制器。单设备通常报告为LUN 0，但有时在    所有LUN上报告为相同的数。
Linux上，IDE设备为/dev/hda,/dev/hdb,/dev/hd3,/dev/hdd, SCSI则为/dev/sda,/dev/sdb 等。
SCSI总线的两端应有终结器，通常SCSI控制器会终结一端，很多设备内部也有终结电路。
大部分电脑上都没有完整的SCSI控制器，但是有很多附加卡可以选择。SCSI控制器有一个 [...]]]></description>
			<content:encoded><![CDATA[<p>前言：改变了计划，开始看LPI的内容，用的教材是O&#8217;Relly 的<em>LPI Linux Certification in a Nutshell, 2nd Edition</em>，电子版的。（Linux下如何看chm？有多种程序如xchm,chesee等，后者对中文的支持较好。前几天刚发现还有个Firefox 的扩展<a href="https://addons.mozilla.org/firefox/3235/">CHM Reader</a>，目前还只有Linux下的版本。个人更喜欢这个，可以使用Firefox的众多扩展及放大，改变字体等。）还有很多其它的资料，如<a href="http://www-128.ibm.com/developerworks/cn/linux/lpi/">IBM</a><a href="http://www-128.ibm.com/developerworks/cn/linux/lpi/">开发者网上的在线教程</a>，不过还没写完。带着电脑去自习，也就顺便用OOo(OpenOffice.org)作了份笔记。以下便是今天的成果。</p>
<p>关于LPIC：LPIC是由LPI颁发的全球范围的Linux专业认证，它是中立性的，亦即与发行版本无关(LPI本身也是非盈利性组织）。LPIC目前有两个级别：LPIC-1和LPIC-2，各有两门考试：101，102和201，202。101包括5个Topic，102则是9个。201：8个，202：7个。每个Topic又包括若干个Objective，每个Objective都有个权重，从1到8不等，权重越大也就越重要。（本笔记中每个Objective后的括号中数字即为它的权重）</p>
<p><strong><br />
Exam 101</strong></p>
<p>101考试时间为90分钟，65个题左右，大部分为单选，10％左右为多选，还有少量填空，后两者一般都较难。</p>
<p><strong>Topic 1.101：硬件与架构</strong></p>
<p><strong>Objective 1</strong>：配置基本 BIOS 设置(1)</p>
<p>BIOS：了解基本：时间和日期；磁盘与启动设备<br />
<em>Exam Note</em>：熟悉基本配置与典型BIOS的设置界面</p>
<p>资源分配：中断；I/O地址；DMA通道 要避免冲突 并口与串口有标准的地址分配<br />
串口：两个串口 ttyS0,ttyS1 独立使用中断4和3；四个串口 ttyS0,ttyS1,ttyS2,ttyS3 ttyS0,ttyS2互斥共享中断4,ttyS1,ttyS3互斥共享中断3</p>
<p>1024柱面限制：BIOS无法读取1024柱面外的数据；LILO/GRUB与内核必须放置在1024柱面以内</p>
<p><strong>Objective 3</strong>：配置Modem与声卡(1)</p>
<p>Modem：Modem是串行设备，连接工业标准RS-232串口 Modem一般作为第三个串口(ttyS2)<br />
Winmodem:为Windows设计的Modem，不能用在Linux上，除非有Linux驱动</p>
<p>声卡：大部分声卡都有Linux驱动</p>
<p><em>Exam Note</em>：声卡驱动是内核模块之一，配置储存在/etc/modules.conf内</p>
<p>内核无法识别时：使用<em>sndconfig,isapnp</em> 手动配置</p>
<p><strong>Objective 4</strong>：设置非IDE设备(1)</p>
<p>SCSI：SCSI是一种比IDE更灵活，可扩展和更快的接口。SCSI定义一个总线，其中有一个SCSI控制器， 每一个设备分配唯一的一个SCSI地址(也叫SCSI ID)。SCSI包括：SCSI-1,SCSI-2,Wide SCSI, Fast SCSI,Fast Wide SCSI,Ultra SCSI,Ultra Wide SCSI(SCSI-3),Ultra2,Wide Ultra2.</p>
<p>SCSI ID：所有SCSI设备，包括SCSI控制器，都有一个通过地址线可以访问的地址。8位SCSI总线有 3条地址线，故可容纳8个设备；16位SCSI总线有4条地址线，故可容纳8或16个设备，取 决于跳线。地址从0开始，两种总线中SCSI控制器习惯上都使用地址7。<br />
有些设备如RAID控制器，在SCSI控制器上作为一个磁盘出现，使用一个地址，此时将会有    一个LUN(logical unit number)被报告给SCSI控制器。单设备通常报告为LUN 0，但有时在    所有LUN上报告为相同的数。</p>
<p>Linux上，IDE设备为/dev/hda,/dev/hdb,/dev/hd3,/dev/hdd, SCSI则为/dev/sda,/dev/sdb 等。</p>
<p>SCSI总线的两端应有终结器，通常SCSI控制器会终结一端，很多设备内部也有终结电路。<br />
大部分电脑上都没有完整的SCSI控制器，但是有很多附加卡可以选择。SCSI控制器有一个    附带的BIOS，可以设置控制器地址(默认7)，启动设备，开/关控制器的终结器，设置总线    速度(向下兼容)。</p>
<p><strong>Objective 5</strong>：设置不同的PC扩展卡(3)</p>
<p>即插即用(Pnp)：<br />
三种硬件：<br />
跳线时期：硬件方法解决<br />
非易失时期：手动配置，写在非易失性存储器(ROM)中，几乎都建立在    MS-DOS上，在Linux下使用时需要在DOS下初始化配置<br />
现代：大部分近期使用PCI主线的卡都可以自动配置。</p>
<p>/proc：储存了已有设备的资源分配情况，可使用cat命令查看，但设备文件没有打    开或是驱动没有激活动的设备不会被记录。</p>
<p>/proc/interrupts：中断的分配情况<br />
/proc/dma：DMA通道的分配情况<br />
/proc/ioports：I/O端口的分配情况</p>
<p><em>Exam Note</em>：注意常用设备的分配情况(LPI,O&#8217;Reilly,Table 3-1)</p>
<p><strong>Objective 6</strong>：配置通信设备(1)</p>
<p>细节与Objective 4相同，只是应用到网络连接中。</p>
<p><strong>Objective 7</strong>：配置USB设备(1)</p>
<p>考试内容覆盖USB的基本构架，USB模块，和USB设备的配置。<br />
USB技术：USB设备通过一些集线设备(hub devices)树状连接到一台主机上。可以使用<em>lsusb</em>命令查看 USB设备的连接状况。</p>
<p>USB主控制器：有三种USB主控制器：OHCI,UHCI,EHCI，前两个是USB1.1控制器，后者是USB2.0控制器。</p>
<p>USB设备：有多种USB设备，包括人机界面设备(HID,输入设备键盘鼠标等)，通信设备(Modem)，存储设备(磁盘，闪存等)，音频，IrDA(红外设备)，打印机等。</p>
<p>USB驱动：Linux内核2.3.x系列开发时添加了USB支持，2.2.18发布时已有支持。<br />
<em>Tip</em>：在linux内核2.0.x或更早时USB没有内核级支持。</p>
<p>Linux内核USB驱动包括三类：主控制器驱动，类别驱动和其他设备驱动。</p>
<p>Linux驱动分层实现USB支持，最底层是usbcore.o,为所有高层设备，包括主控制器提供普遍的USB支持，中间是主控制器驱动，最上层是设备驱动等。</p>
<p>USB热插拔：内核支持模块在/sbin/hotplug中，该模块同样支持其它热插拔设备。</p>
<p><em>Tip</em>：LPI不包括IEEE1394，但它的配置也是类似的。</p>
<p><strong>Topic 1.102：Linux安装与包管理</strong></p>
<p><em>Tip</em>：Debian(Objective 5)和RPM包管理(Objective 6)都不再要求，考试时你可以选择一种自己愿意 的包管理方式。</p>
<p><strong>Objective 1</strong>：设计硬盘规划(5)</p>
<p>系统考虑：磁盘空间的大小，系统规模，系统用途，如何备份</p>
<p>swap空间：虚拟内存的分区，一个较老的规则是分区大小为物理内存的两倍。<br />
总体准则：</p>
<p>把较大的目录树划分到其他分区以保持根分区(/)的简单，简单的根分区不容易崩溃。</p>
<p>在1024柱面内划分出一个小的/boot分区， 安装系统启动时加载的内核。</p>
<p>单独划分/var，大小能够容纳日志。</p>
<p>单独划分/tmp，大小取决于运行程序的需要，能够容纳所有同时使用的用户的临时文件。</p>
<p>单独划分/usr，能够适应内核的构建，能够独立地设置为通过NFS只读共享。</p>
<p>单独划分/home，软件升级时用户数据不会受影响。</p>
<p>swap的大小不小于主存(2倍更好)。</p>
<p><strong>Objecitve 2</strong>：安装启动管理(1)</p>
<p>硬盘启动两个阶段：从启动盘运行启动加载器(boot loader)：选择内核并载入内存，包括用户附加的选项；启动Linux内核并开始运行程序</p>
<p>LILO：LILO包括两个部分：启动加载器：两级程序，第一部分通常在MBR中，用作启动第二部分，第二部分选择内核并加载到内存中。</p>
<p>LILO命令：也叫map installer，安装并配置LILO。</p>
<p>启动加载器：<br />
系统BIOS启动时LILO给出提示：<br />
<em>LILO:</em><br />
按TAB键列出可选的内核，默认的启动内核旁将会有个*</p>
<p>LILO命令与配置文件：<br />
<em>lilo [options]</em></p>
<p>常用选项：<br />
<em>-C config_file</em> 读取config_file而不是默认的/etc/lilo.conf<br />
<em>-m map_file</em> 在配置文件指定的默认地方写map_file<br />
<em>-q </em>   查询当前配置<br />
<em>-v  </em>  更多细节</p>
<p>lilo.conf：<br />
一个示例：<br />
<em> ## sample of lilo.conf<br />
boot = /dev/hda<br />
timeout = 50<br />
prompt<br />
read-only<br />
map = /boot/map<br />
install = /boot/boot.b<br />
image = /boot/vmlinuz-2.2.5-15<br />
label = linux<br />
root = /dev/hda1</em></p>
<p>参数说明：<br />
<em>boot</em>：设置包含引导扇区的分区所在的磁盘名，对IDE硬盘的PC，通常为/dev/hda,/dev/hdb等<br />
<em>timeout</em>：设置以十分之一秒计量的等待时间<br />
<em>prompt</em>：设置提示用户；当这项没有设置但用户在LILO启动时按下Ctrl,Alt或Shift键时，仍会提示<br />
<em>read-only</em>：设置根文件系统开始时只读；通常，稍后系统启动时会重新将它设为读/写<br />
<em>map</em>：设置map文件的位置，默认在/boot/map<br />
<em>install</em>：设置安装新启动扇区的文件，默认为/boot/boot.b<br />
<em>image</em>：设置内核，指向一个特定的内核文件，可以使用多行image以启动不同 的内核或系统<br />
<em>label</em>：设置可选的内核标识，在image行后<br />
<em>root</em>：设置挂载为根文件夹的设备，在image行后</p>
<p>LILO既可以安装在引导扇区，也可以安装在根分区。但如果还有其他操作系统时，应该安装在    引导扇区内。</p>
<p><em>Exam Note</em>：需要明白<em>lilo</em>，map installer程序与启动加载器之间的区别，它们都是LILO包的组成部分。</p>
<p>GRUB：GRUB也是多级启动加载器，比LILO更灵活，支持启动不同的操作系统。</p>
<p>GRUB设备的命名：(xdn[,m])：xd为fd(软盘)或hd(硬盘)，n表示设备在BIOS中的次序，以0开    始，m则指分区号，同样以0开始。如(hd0,3)指第一块硬盘的第四分区。</p>
<p>注意：GRUB并不区分IDE与SCSI设备。</p>
<p>安装GRUB：最简单的办法是用 grub-install脚本<br />
<em># grub-install &#8216;(hd0)&#8217;</em><br />
GRUB寻找设备图(device map)文件(默认为/boot/grub/device.map)来决定BIOS驱动和Linux设备的分布。如果文件不存在，GRUB试着猜测设备及其分布。如果错误，手动编辑/boot/grub/device.map然后重新运行grub-install即可。</p>
<p>device.map文件包括任意行下面格式的内容：<br />
<em>(disk)  /dev/device</em></p>
<p>GRUB同样可通过grub命令安装：如<br />
<em># grub<br />
grub&gt; root(hd0,0)<br />
grub&gt; setup(hd0)</em></p>
<p>启动GRUB：如果没有配置文件，GRUB启动时将会提示：<br />
<em>grub&gt;</em><br />
此时需要一列命令来启动Linux内核：<br />
<em>root device<br />
kernel Kernel_filename [options]<br />
initrd Image_filename </em>(选择性)<em><br />
boot</em></p>
<p>GRUB配置文件默认为/boot/grub/menu.lst</p>
<p><em>Tip</em>：根据发行版的不同，配置文件的内容也可能不同，如Red Hat默认的为/boot/grub/grub.conf，关于GRUB的更多信息可使用<em>info grub</em>或<em>pinfo grub</em>命令查看。</p>
<p><strong>Objective 3</strong>：从源代码编译和安装程序(5)</p>
<p>Tarball：使用 tar和gzip压缩的压缩包，扩展名为.tar.gz，或是.tgz。bzip2提供了更高的压缩率，使用.bz2为扩展名。</p>
<p>解压Tarball可使用以下等效方法：</p>
<p>1： <em>gzip -d tarball.tar.gz<br />
tar xvf tarball.tar</em><br />
-d表示解压</p>
<p>2：<em> gunzip -d tarball.tar.gz<br />
tar xvf tarball.tar</em></p>
<p>3： <em>gzip -dc tarball.tar.gz | tar xv</em><br />
使用了管道，-c表示保持解压后的文件在同一地方。</p>
<p>4：<em>tar zxvf tarball.tar.gz</em></p>
<p>.tar.bz2同样可使用类似的方法解压：</p>
<p><em>bzip2 -dc tarball.tar.bz2 | tar xv</em><br />
或 <em>tar jxvf tarball.tar.bz2</em></p>
<p>编译：<br />
<em>./configure<br />
make<br />
make install </em>(as root)</p>
<p>make 的典型格式：<br />
<em>  make [-f makefile] [option] [target]</em></p>
<p><em>-f filename </em>   使用filename 作为 makefile<br />
<em>-j number_of_jobs</em> 设置并发执行的数量</p>
<p><strong>Objective 4</strong>：管理共享库(3)</p>
<p>静态链接的程序：执行时没有额外的代码，编译时从系统库中寻找并拷贝到可执行文件中。缺点：使得程序变大，并浪费内存。</p>
<p>动态链接的程序：没有库代码，运行时才链接到可执行文件中。动态链接的库在多个程序中共享，因此又被称为共享库。</p>
<p>共享库的依赖性：任何动态链接的程序都需要一些共享库文件，如果需要的库文件不存在，程序将无法运行。</p>
<p><em>ldd program_names </em>可以查看程序运行时所需要的库文件，指出其位置及路径。</p>
<p>链接共享库：动态链接的可执行程序在运行时由ld.so检查，它寻找该程序的依赖性并尝试满足它，如果无法找到所需的库文件，程序不会运行。</p>
<p>要寻找一个新的库文件，应该指定ld.so搜索/usr/local/lib，一种较简单的办法是在shell环境变量LD_LIBRARY_PATH中加入一列目录。</p>
<p>/etc/ld.so.cache是库文件名及其路径的索引，这是一个二进制文件。要添加一个新的库文件，首先把它所在的目录加到/etc/ld.so.conf文件中。</p>
<p><em>ldconfig [options] lib_dirs</em> 根据命令行中指定的lib_dir目录，信任的目录/usr/lib,/lib，和/etc/ld.so.conf中的目录，内的共享库文件，更新ld.so.cache文件。</p>
<p>常用选项：<br />
<em>-p</em>    显示cache文件的内容而不是重建它<br />
<em>-v </em>   冗余模式，执行时显示过程</p>
<p><strong>Objective 5</strong>：Debian包管理(8)</p>
<p>每一个Debian包都包括程序，配置文件，文档，标出了与其它包的依赖性关系。</p>
<p>Debian包名通常包括三个部分：<br />
包名，多个词时使用-连接<br />
版本号，通常为major.minor.patchlevel<br />
扩展名，通常为.deb</p>
<p>包管理几个常用的命令：<em>dpkg,apt-get,dselect,alien</em></p>
<p><em>dpkg [options] action</em><br />
直接操作.deb包文件，维护/var/lib/dpkg内的包信息，其中两个比较重要的文件是available(所有可见包的列表)，status(包的属性，如是否已安装等)</p>
<p>常用选项：<br />
<em>-E</em>  跳过已安装相同版本的包<br />
<em>-G </em> 跳过比当前安装版本低的包<br />
<em>-R</em>  递归地处理特定的子目录，与-i，&#8211;install，&#8211;unpack等一起使用</p>
<p>常用动作：<br />
<em>&#8211;configure package</em>    配置未解压的package包<br />
<em>&#8211;i package_file </em>(also<em> &#8211;install package_file </em>) 安装package_file中的包<br />
<em>-l [pattern] </em>(also<em> &#8211;list [pattern] </em>)  列出包名符合pattern条件的包<br />
<em>-L package </em>(also<em> &#8211;listfiles package </em>)  列出从package包安装的文件<br />
<em>&#8211;print-avail package</em>  列出/var/lib/dpkg/available中package的细节<br />
<em>&#8211;purge package</em>  完全卸载package包<br />
<em>-r package</em> (also<em> &#8211;remove package</em> )    卸载package包但保留配置文件<br />
<em>-s package</em> (also <em>&#8211;status package</em> )    报告package包的状态<br />
<em>-S search_pattern</em> (also<em> &#8211;search search_pattern </em>)    从已安装的包中搜索文件名符合search_pattern的文件<br />
<em>&#8211;unpack package_file</em>    解压package_file包，但并不安装</p>
<p><em>apt-get [options] [command] [package_name ...]</em><br />
apt-get是APT(Advanced Package Tool)管理系统的一部分。它不对.deb文件直接操作，而是使用包名代替。apt-get使用/etc/apt/source.list中的内容作为获得包的地址(即源)。</p>
<p>/etc/apt/source.list有一到多行以下格式的条目：<br />
<em>deb http://http.us.debian.org/debian stable main contrib non-free</em></p>
<p>常用选项：<br />
<em>-d</em>    下载文件但不安装<br />
<em>-s</em>    依次模拟执行命令，但不作实际操作<br />
<em>-y</em>    对所有提示都回答Yes，并不再提示</p>
<p>常用命令：<br />
<em>dist-upgrade</em>      自动升级到新版的Debian<br />
<em> install</em>            根据包名安装或升级一个或多个包<br />
<em>remove</em>        卸载指定的包<br />
<em>update</em>         获取目前可见包的列表<br />
<em>upgrade</em>       安全地升级所有已安装的包，不安装将会引起冲突的更新，也不会卸载现有的包</p>
<p><em>dselect</em><br />
<em>dselect</em>是<em>dpkg</em>的一个交互式的，目录型的前端工具，通常不带参数执行。可通过选择对包进行安装，移除，配置等操作。</p>
<p><em>alien [--to-deb] [--patch=patchfile] [options] file</em><br />
转换或安装一个非Debian的包，包括Red Hat .rpm，Stampede .slp，Slackware .tgz以及常见的.tar.gz。转换RPM时系统必须安装<em>rpm</em>。转换默认生成Debian格式的.deb输出包。</p>
<p>常用选项：<br />
<em>-i</em>   自动安装输出的包并删除转换后的文件<br />
<em>-r</em>   转换为RPM包<br />
<em>-g</em>   把包转换为 gzip tar存档文件</p>
<p><em>Exam Note</em>：<em>dselect,apt-get,alien</em>都是Debian包管理的重要部分，但<em> dpkg</em>是101考试的主要重点。</p>
<p><strong>Object 6</strong>：Red Hat包管理(RPM) (8)</p>
<p>Lack&#8230; 因为可以选Debian或是Red Hat，而我现在用的是Ubuntu，所以就懒得作笔记了，只是看了一下<em>rpm</em>的用法。</p>
]]></content:encoded>
			<wfw:commentRss>http://my.donews.com/firewood/2006/10/12/lpi-notes-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>中秋月圆心未圆</title>
		<link>http://my.donews.com/firewood/2006/10/06/middle-autumn/</link>
		<comments>http://my.donews.com/firewood/2006/10/06/middle-autumn/#comments</comments>
		<pubDate>Fri, 06 Oct 2006 15:43:13 +0000</pubDate>
		<dc:creator>火木</dc:creator>
				<category><![CDATA[Feelings]]></category>

		<guid isPermaLink="false">http://my.donews.com/firewood/2006/10/07/middle-autumn/</guid>
		<description><![CDATA[因为天气不好，提前一天从峨嵋回来了，却正是中秋。偶然抬头时发现竟能透过薄云看见不甚明朗的月亮，真是“蓦然回首，那人却在，灯火阑珊处”。只是，月圆，心却依然残缺。
贴一首昨晚在洗象池咏月楼写的为此作注解：
咏月楼观雨，有所思
暮近象池栖咏月，烟雨迷茫思故人。
无花无月何堪咏，但闻秋猿啸古林。
昨夜又梦见母亲了，竟跟一周前的那个梦一模一样，惊醒，却发现泪已不停地流了下来。早上起床后赶路，遇佛则虔诚的拜，或许也只是自我安慰吧。心中的残缺，已是永无再补全的可能。
]]></description>
			<content:encoded><![CDATA[<p>因为天气不好，提前一天从峨嵋回来了，却正是中秋。偶然抬头时发现竟能透过薄云看见不甚明朗的月亮，真是“蓦然回首，那人却在，灯火阑珊处”。只是，月圆，心却依然残缺。</p>
<p>贴一首昨晚在洗象池咏月楼写的为此作注解：</p>
<p>咏月楼观雨，有所思</p>
<p>暮近象池栖咏月，烟雨迷茫思故人。<br />
无花无月何堪咏，但闻秋猿啸古林。</p>
<p>昨夜又梦见母亲了，竟跟一周前的那个梦一模一样，惊醒，却发现泪已不停地流了下来。早上起床后赶路，遇佛则虔诚的拜，或许也只是自我安慰吧。心中的残缺，已是永无再补全的可能。</p>
]]></content:encoded>
			<wfw:commentRss>http://my.donews.com/firewood/2006/10/06/middle-autumn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>准备出游</title>
		<link>http://my.donews.com/firewood/2006/10/03/ready-for-traveling/</link>
		<comments>http://my.donews.com/firewood/2006/10/03/ready-for-traveling/#comments</comments>
		<pubDate>Tue, 03 Oct 2006 15:41:32 +0000</pubDate>
		<dc:creator>火木</dc:creator>
				<category><![CDATA[日记]]></category>

		<guid isPermaLink="false">http://my.donews.com/firewood/2006/10/03/ready-for-traveling/</guid>
		<description><![CDATA[在学校待了三天，却根本没有看书。高中同学来了，陪着玩，吃了两天，去春熙，锦里各逛了一圈，只有一个感觉：人多，终于知道了中国、四川的人口总数果然不是盖的。唯一空的一天睡了半天，然后就在电脑前度过了一天，能想起来的事就是把 Ubuntu 下的 Firefox 2 beta 搞定了，问题是由 Scim 的 gcc 版本差异引起的，解决办法是执行命令 im-switch -s scim_xim (Ubuntu 6.06)，然后就可以直接运行从官方下载的那个已编译好的版本了。准备回来后参与 Ubuntu 中文文档的翻译工作，一方面维持语感，使自己逐渐习惯于看英文文档，另一方面也为开源出点力。（如果有人跟我一样能抽出时间，想使自己的空余时间过得更有价值些，那么欢迎你的加入，具体情况看这里）
行程被柏提前了一天，明天早上就走，这样时间更充裕了，可以慢慢地走，边走边赏风景。接下来的几天应该会过得比较愉快，回来应该还能赶上有人请客，呵呵。不爽的是竟然还能买到7号回家的票，这样都没理由不回去了，郁闷。算了，反正待两天就回，我的时间可是很宝贵的。
]]></description>
			<content:encoded><![CDATA[<p>在学校待了三天，却根本没有看书。高中同学来了，陪着玩，吃了两天，去春熙，锦里各逛了一圈，只有一个感觉：人多，终于知道了中国、四川的人口总数果然不是盖的。唯一空的一天睡了半天，然后就在电脑前度过了一天，能想起来的事就是把 Ubuntu 下的 Firefox 2 beta 搞定了，问题是由 Scim 的 gcc 版本差异引起的，解决办法是执行命令 <code>im-switch -s scim_xim</code> (Ubuntu 6.06)，然后就可以直接运行从官方下载的那个已编译好的版本了。准备回来后参与 Ubuntu 中文文档的翻译工作，一方面维持语感，使自己逐渐习惯于看英文文档，另一方面也为开源出点力。（如果有人跟我一样能抽出时间，想使自己的空余时间过得更有价值些，那么欢迎你的加入，具体情况看<a href="http://forum.ubuntu.org.cn/viewtopic.php?t=20087">这里</a>）</p>
<p>行程被柏提前了一天，明天早上就走，这样时间更充裕了，可以慢慢地走，边走边赏风景。接下来的几天应该会过得比较愉快，回来应该还能赶上有人请客，呵呵。不爽的是竟然还能买到7号回家的票，这样都没理由不回去了，郁闷。算了，反正待两天就回，我的时间可是很宝贵的。</p>
]]></content:encoded>
			<wfw:commentRss>http://my.donews.com/firewood/2006/10/03/ready-for-traveling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.785 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2009-11-19 19:41:53 -->
