<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/feedsky2.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.feedsky.com/roclinux" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/roclinux" type="application/rss+xml"></fs:self_link><lastBuildDate>Thu, 21 Jan 2010 05:25:20 GMT</lastBuildDate><title>linux大棚-roclinux.cn</title><description>体会linux，体会一种生活方式。</description><image><url>http://www.feedsky.com/feed/roclinux/sc/gif</url><title>linux大棚-roclinux.cn</title><link>http://roclinux.cn</link></image><link>http://roclinux.cn</link><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><language>en</language><pubDate>Thu, 21 Jan 2010 05:25:20 GMT</pubDate><item><title>百度沙画</title><link>http://roclinux.cn/?p=1731</link><content:encoded>&lt;p&gt;从“百度知道”&lt;/p&gt;
&lt;p&gt;到“阿拉丁计划”&lt;/p&gt;
&lt;p&gt;到“创新十年”&lt;/p&gt;
&lt;p&gt;很有创意的沙画视频。&lt;/p&gt;
&lt;p&gt;&lt;embed src=&quot;http://player.youku.com/player.php/sid/XMTQ2NDg5NjE2/v.swf&quot; quality=&quot;high&quot; width=&quot;480&quot; height=&quot;400&quot; align=&quot;middle&quot; allowScriptAccess=&quot;sameDomain&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;/embed&gt;&lt;/p&gt;
&lt;p&gt;over~&lt;/p&gt;
&lt;p&gt;&amp;copy;2010 感谢您来到linux大棚。如转载请注明：“ &lt;a href=&quot;http://roclinux.cn&quot;&gt;linux大棚&lt;/a&gt;”&lt;/p&gt;.&lt;h3  class=&quot;related_post_title&quot;&gt;我猜您对这些文章感兴趣：&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=800&quot; title=&quot;百度脚本笔试题两道&quot;&gt;百度脚本笔试题两道&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324077951/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1731&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077951/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077951/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://roclinux.cn/?feed=rss2&amp;p=1731</wfw:commentRss><slash:comments>0</slash:comments><description>从“百度知道”
到“阿拉丁计划”
到“创新十年”
很有创意的沙画视频。

over~
&amp;#169;2010 感谢您来到linux大棚。如转载请注明：“ linux大棚”.我猜您对这些文章感兴趣：百度脚本笔试题两道&lt;img src=&quot;http://www1.feedsky.com/t1/324077951/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1731&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077951/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077951/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>站长发言</category><category>百度</category><category>沙画</category><pubDate>Thu, 21 Jan 2010 13:25:20 +0800</pubDate><author>rocrocket</author><comments>http://roclinux.cn/?p=1731#comments</comments><guid isPermaLink="false">http://roclinux.cn/?p=1731</guid><dc:creator>rocrocket</dc:creator><fs:srclink>http://roclinux.cn/?p=1731</fs:srclink><fs:srcfeed>http://roclinux.cn/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/roclinux/~7154559/324077951/5263432</fs:itemid></item><item><title>初始用户组，有效用户组，初始用户，有效用户</title><link>http://roclinux.cn/?p=1467</link><content:encoded>&lt;div class=&quot;postavatar&quot;&gt;&lt;img src=&quot;http://roclinux.cn/wp-content/uploads/icons/5min-command-logo.jpg&quot; width=&quot;90&quot; height=&quot;90&quot; alt=&quot;%e5%88%9d%e5%a7%8b%e7%94%a8%e6%88%b7%e7%bb%84%ef%bc%8c%e6%9c%89%e6%95%88%e7%94%a8%e6%88%b7%e7%bb%84%ef%bc%8c%e5%88%9d%e5%a7%8b%e7%94%a8%e6%88%b7%ef%bc%8c%e6%9c%89%e6%95%88%e7%94%a8%e6%88%b7&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;
&lt;p&gt;自从我开始学习Linux系统管理以来，这几个概念一直困扰着我。&lt;/p&gt;
&lt;p&gt;今天，一定要搞清楚这几个概念，然后好好研究研究他们到底是干什么用的。&lt;/p&gt;
&lt;p&gt;借此，写篇“久违”了的博客，和大家共享下我的总结&lt;/p&gt;
&lt;p&gt;====&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实际用户 (real user id)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;实际用户就是登陆到shell的时候的用户，也就是最开始的用户。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-1467&quot;&gt;&lt;/span&gt;在大棚博客前面有一篇文章在讨论&lt;a href=&quot;http://roclinux.cn/?p=1255&quot; target=&quot;_blank&quot;&gt;whoami和who am i的区别&lt;/a&gt;时，也涉及到了这个概念。在这里再次强调一下，who am i所列出的就是实际用户。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;有效用户（effective user id）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;所谓有效用户，就是用su或者su -所切换到的用户。用whoami所列出的就是这个有效用户。&lt;/p&gt;
&lt;p&gt;如果你执行了一个命令产生了一个进程，那么此进程的USER就是有效用户ID&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;初始用户组&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;还记得/etc/passwd文件里的第4栏么（忘了的话，用cat /etc/passwd去看看），它表示GID，就是“用户组ID”，我们称这个值为“初始用户组”。当用户登陆系统时，立刻就拥有了这个用户组的相应权限。&lt;/p&gt;
&lt;p&gt;如果你知识掌握的够扎实，你还会想到/etc/group文件，这里面储存着所有的用户组名称以及相应的用户账号列表。请你注意，这个用户账号列表里原则上来说可以不存储“初始用户组名称”的，因为初始用户组名称在/etc/passwd里已经存储了，没必要在这里再重复存储了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;有效用户组&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;有效用户组表示用户此时此刻所在的用户组是什么。有些同学会问“难道用户所在的用户组还会来回来去的变么？”。答案是肯定的。这都是newgrp命令搞得鬼，它可以帮助用户转换到不同的用户组。比如newgrp group123，就可以让用户转换到group123用户组了。请注意，这种转换的背后原理是“创建一个新的子shell”，恢复到原来用户组的方法是用exit或ctrl-D来注销当前的shell。&lt;/p&gt;
&lt;p&gt;好了，说结论吧，有效用户组就是用newgrp命令所切换到的用户组。（当然，如果你一次也没有使用newgrp命令，那么有效用户组就是初始用户组喽）&lt;/p&gt;
&lt;p&gt;当然，你可以用groups命令来列出当前用户所支持的所有用户组。（在有些系统中，第一个列出的就是有效用户组，但有些系统并不这么做）&lt;/p&gt;
&lt;p&gt;还有一点应该注意，就是当你建立一个文件时，此文件的所属用户组就是创建人当前的有效用户组。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;结论&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1 当用su或者su -切换用户时，其用户组都会随之改变，系统会根据所要切换的有效用户ID去/etc/passwd里寻找相对应的初始用户组，然后切换之。&lt;/p&gt;
&lt;p&gt;2 建立一个文件时，系统会根据有效用户和有效用户组来创建。&lt;/p&gt;
&lt;p&gt;ps: 这篇文章算是《linux命令五分钟系列之三十》，由于文章题目太长，略去专题名称了。&lt;br /&gt;
over~&lt;/p&gt;
&lt;p&gt;&amp;copy;2010 感谢您来到linux大棚。如转载请注明：“ &lt;a href=&quot;http://roclinux.cn&quot;&gt;linux大棚&lt;/a&gt;”&lt;/p&gt;.&lt;h3  class=&quot;related_post_title&quot;&gt;我猜您对这些文章感兴趣：&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1255&quot; title=&quot;《who am i》-linux命令五分钟系列之十六&quot;&gt;《who am i》-linux命令五分钟系列之十六&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324077952/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1467&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077952/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077952/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://roclinux.cn/?feed=rss2&amp;p=1467</wfw:commentRss><slash:comments>0</slash:comments><description>&lt;div class=&quot;postavatar&quot;&gt;&lt;img src=&quot;http://roclinux.cn/wp-content/uploads/icons/5min-command-logo.jpg&quot; width=&quot;90&quot; height=&quot;90&quot; alt=&quot;%e5%88%9d%e5%a7%8b%e7%94%a8%e6%88%b7%e7%bb%84%ef%bc%8c%e6%9c%89%e6%95%88%e7%94%a8%e6%88%b7%e7%bb%84%ef%bc%8c%e5%88%9d%e5%a7%8b%e7%94%a8%e6%88%b7%ef%bc%8c%e6%9c%89%e6%95%88%e7%94%a8%e6%88%b7&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;
自从我开始学习Linux系统管理以来，这几个概念一直困扰着我。
今天，一定要搞清楚这几个概念，然后好好研究研究他们到底是干什么用的。
借此，写篇“久违”了的博客，和大家共享下我的总结
====
实际用户 (real user id)
实际用户就是登陆到shell的时候的用户，也就是最开始的用户。
在大棚博客前面有一篇文章在讨论whoami和who am i的区别时，也涉及到了这个概念。在这里再次强调一下，who am i所列出的就是实际用户。
有效用户（effective user id）
所谓有效用户，就是用su或者su -所切换到的用户。用whoami所列出的就是这个有效用户。
如果你执行了一个命令产生了一个进程，那么此进程的USER就是有效用户ID
初始用户组
还记得/etc/passwd文件里的第4栏么（忘了的话，用cat /etc/passwd去看看），它表示GID，就是“用户组ID”，我们称这个值为“初始用户组”。当用户登陆系统时，立刻就拥有了这个用户组的相应权限。
如果你知识掌握的够扎实，你还会想到/etc/group文件，这里面储存着所有的用户组名称以及相应的用户账号列表。请你注意，这个用户账号列表里原则上来说可以不存储“初始用户组名称”的，因为初始用户组名称在/etc/passwd里已经存储了，没必要在这里再重复存储了。
有效用户组
有效用户组表示用户此时此刻所在的用户组是什么。有些同学会问“难道用户所在的用户组还会来回来去的变么？”。答案是肯定的。这都是newgrp命令搞得鬼，它可以帮助用户转换到不同的用户组。比如newgrp group123，就可以让用户转换到group123用户组了。请注意，这种转换的背后原理是“创建一个新的子shell”，恢复到原来用户组的方法是用exit或ctrl-D来注销当前的shell。
好了，说结论吧，有效用户组就是用newgrp命令所切换到的用户组。（当然，如果你一次也没有使用newgrp命令，那么有效用户组就是初始用户组喽）
当然，你可以用groups命令来列出当前用户所支持的所有用户组。（在有些系统中，第一个列出的就是有效用户组，但有些系统并不这么做）
还有一点应该注意，就是当你建立一个文件时，此文件的所属用户组就是创建人当前的有效用户组。
结论
1 当用su或者su -切换用户时，其用户组都会随之改变，系统会根据所要切换的有效用户ID去/etc/passwd里寻找相对应的初始用户组，然后切换之。
2 建立一个文件时，系统会根据有效用户和有效用户组来创建。
ps: 这篇文章算是《linux命令五分钟系列之三十》，由于文章题目太长，略去专题名称了。
over~
&amp;#169;2010 感谢您来到linux大棚。如转载请注明：“ linux大棚”.我猜您对这些文章感兴趣：《who am i》-linux命令五分钟系列之十六&lt;img src=&quot;http://www1.feedsky.com/t1/324077952/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1467&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077952/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077952/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>Linux命令五分钟系列</category><category>有效用户组</category><category>有效用户</category><category>初始用户</category><category>初始用户组</category><pubDate>Sat, 16 Jan 2010 10:43:10 +0800</pubDate><author>rocrocket</author><comments>http://roclinux.cn/?p=1467#comments</comments><guid isPermaLink="false">http://roclinux.cn/?p=1467</guid><dc:creator>rocrocket</dc:creator><fs:srclink>http://roclinux.cn/?p=1467</fs:srclink><fs:srcfeed>http://roclinux.cn/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/roclinux/~7154559/324077952/5263432</fs:itemid></item><item><title>让我们记住“不作恶的圣贤”</title><link>http://roclinux.cn/?p=1721</link><content:encoded>&lt;div class=&quot;postavatar&quot;&gt;&lt;img src=&quot;http://roclinux.cn/wp-content/uploads/icons/google-favicon.jpg&quot; width=&quot;90&quot; height=&quot;90&quot; alt=&quot;%e8%ae%a9%e6%88%91%e4%bb%ac%e8%ae%b0%e4%bd%8f%e2%80%9c%e4%b8%8d%e4%bd%9c%e6%81%b6%e7%9a%84%e5%9c%a3%e8%b4%a4%e2%80%9d&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;
&lt;p&gt;古来圣贤，&lt;/p&gt;
&lt;p&gt;皆寂寞。&lt;/p&gt;
&lt;p&gt;让我们记住他，&lt;/p&gt;
&lt;p&gt;不作恶的圣贤。&lt;/p&gt;
&lt;p&gt;==================&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://roclinux.cn/wp-content/uploads/2010/01/谷歌-四大发明logo.jpg&quot;&gt;&lt;img class=&quot;alignnone size-large wp-image-1722&quot; title=&quot;谷歌-四大发明logo&quot; src=&quot;http://roclinux.cn/wp-content/uploads/2010/01/谷歌-四大发明logo-1024x566.jpg&quot; alt=&quot;&quot; width=&quot;596&quot; height=&quot;329&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ps：截图留念，祝福。&lt;/p&gt;
&lt;p&gt;over~&lt;/p&gt;
&lt;p&gt;&amp;copy;2010 感谢您来到linux大棚。如转载请注明：“ &lt;a href=&quot;http://roclinux.cn&quot;&gt;linux大棚&lt;/a&gt;”&lt;/p&gt;.&lt;h3  class=&quot;related_post_title&quot;&gt;Random Posts&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1150&quot; title=&quot;《看日记学git》之二十八&quot;&gt;《看日记学git》之二十八&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=115&quot; title=&quot;fedora updates终于回来了！&quot;&gt;fedora updates终于回来了！&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=723&quot; title=&quot;“全球博客行动日”最终统计数据&quot;&gt;“全球博客行动日”最终统计数据&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=39&quot; title=&quot;原来chrome的内核是webkit&quot;&gt;原来chrome的内核是webkit&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=178&quot; title=&quot;《看日记学git》之序&quot;&gt;《看日记学git》之序&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324077953/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1721&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077953/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077953/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://roclinux.cn/?feed=rss2&amp;p=1721</wfw:commentRss><slash:comments>7</slash:comments><description>&lt;div class=&quot;postavatar&quot;&gt;&lt;img src=&quot;http://roclinux.cn/wp-content/uploads/icons/google-favicon.jpg&quot; width=&quot;90&quot; height=&quot;90&quot; alt=&quot;%e8%ae%a9%e6%88%91%e4%bb%ac%e8%ae%b0%e4%bd%8f%e2%80%9c%e4%b8%8d%e4%bd%9c%e6%81%b6%e7%9a%84%e5%9c%a3%e8%b4%a4%e2%80%9d&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;
古来圣贤，
皆寂寞。
让我们记住他，
不作恶的圣贤。
==================

ps：截图留念，祝福。
over~
&amp;#169;2010 感谢您来到linux大棚。如转载请注明：“ linux大棚”.Random Posts《用指向函数的指针作函数参数》-由一个技术错误引发的文章printf函数小技巧：用变量控制宽度饭否变身Serv-U？“Ext4”三部曲之三vi操作查询站&lt;img src=&quot;http://www1.feedsky.com/t1/324077953/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1721&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077953/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077953/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>站长发言</category><pubDate>Fri, 15 Jan 2010 00:46:33 +0800</pubDate><author>rocrocket</author><comments>http://roclinux.cn/?p=1721#comments</comments><guid isPermaLink="false">http://roclinux.cn/?p=1721</guid><dc:creator>rocrocket</dc:creator><fs:srclink>http://roclinux.cn/?p=1721</fs:srclink><fs:srcfeed>http://roclinux.cn/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/roclinux/~7154559/324077953/5263432</fs:itemid></item><item><title>2009最后一小时</title><link>http://roclinux.cn/?p=1712</link><content:encoded>&lt;p&gt;2009年最后一小时，各位博主都在忙着煽情，忙着祝福，俗了。&lt;/p&gt;
&lt;p&gt;推荐一个CB上的系列文章，乐乐呵呵迎接新年！&lt;/p&gt;
&lt;p&gt;1 &lt;a href=&quot;http://www.cnbeta.com/articles/101184.htm&quot; target=&quot;_blank&quot;&gt;cnBeta.COM 09年度精彩评论回顾&lt;/a&gt;&lt;br /&gt;
2 &lt;a href=&quot;http://www.cnbeta.com/articles/73700.htm&quot; target=&quot;_blank&quot;&gt;cnBeta 08年度精彩评论&lt;/a&gt;&lt;br /&gt;
3 &lt;a href=&quot;http://www.cnbeta.com/articles/46221.htm&quot; target=&quot;_blank&quot;&gt;cnBeta 07年终特稿:年度精彩评论(TOP20)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;看完后发现，网友都太智慧了！&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;顺祝各位关注Linux大棚博客的朋友们，2010年，吉祥！！！&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;copy;2010 感谢您来到linux大棚。如转载请注明：“ &lt;a href=&quot;http://roclinux.cn&quot;&gt;linux大棚&lt;/a&gt;”&lt;/p&gt;.&lt;h3  class=&quot;related_post_title&quot;&gt;我猜您对这些文章感兴趣：&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1404&quot; title=&quot;进入牛年，大棚归来&quot;&gt;进入牛年，大棚归来&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1275&quot; title=&quot;2009年开篇&quot;&gt;2009年开篇&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324077954/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1712&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077954/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077954/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://roclinux.cn/?feed=rss2&amp;p=1712</wfw:commentRss><slash:comments>1</slash:comments><description>2009年最后一小时，各位博主都在忙着煽情，忙着祝福，俗了。
推荐一个CB上的系列文章，乐乐呵呵迎接新年！
1 cnBeta.COM 09年度精彩评论回顾
2 cnBeta 08年度精彩评论
3 cnBeta 07年终特稿:年度精彩评论(TOP20)
看完后发现，网友都太智慧了！
顺祝各位关注Linux大棚博客的朋友们，2010年，吉祥！！！
&amp;#169;2010 感谢您来到linux大棚。如转载请注明：“ linux大棚”.我猜您对这些文章感兴趣：进入牛年，大棚归来2009年开篇&lt;img src=&quot;http://www1.feedsky.com/t1/324077954/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1712&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077954/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077954/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>2009</category><category>站长发言</category><category>2010</category><category>新年</category><pubDate>Thu, 31 Dec 2009 23:24:15 +0800</pubDate><author>rocrocket</author><comments>http://roclinux.cn/?p=1712#comments</comments><guid isPermaLink="false">http://roclinux.cn/?p=1712</guid><dc:creator>rocrocket</dc:creator><fs:srclink>http://roclinux.cn/?p=1712</fs:srclink><fs:srcfeed>http://roclinux.cn/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/roclinux/~7154559/324077954/5263432</fs:itemid></item><item><title>大棚博客今天下午的事故</title><link>http://roclinux.cn/?p=1709</link><content:encoded>&lt;p&gt;今天下午想看看大棚博客，却发现无法登录了，整个页面白花花的，赫然的几个大字：“To many open files in /www/users/roclinux.cn/wp-settings.php on line 704” 。&lt;/p&gt;
&lt;p&gt;可爱的大棚到底怎么了？？&lt;/p&gt;
&lt;p&gt;一来，我非常怀疑是服务器的问题，有可能是哪位兄台和我公用服务器，并且搞了个php占用了大量的file descriptor，因此我的博客系统在试图打开文件时报错；&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-1709&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;二来，我怀疑是前一阵升级到wordpress 2.9导致的，有可能2.9开启了某个特性，使得打开文件数骤增，从而导致问题&lt;/p&gt;
&lt;p&gt;三来，我怀疑是插件的问题，因为升级到2.9时提示我说simple tag插件不兼容。&lt;/p&gt;
&lt;p&gt;（下午的确没招了，而且出门有事）闲言少叙&amp;#8230;&lt;/p&gt;
&lt;p&gt;晚上10点多回来后，一开博客，好了！！（觉得意外之喜）&lt;/p&gt;
&lt;p&gt;看来是应验了第一种假设，虚惊一场。&lt;/p&gt;
&lt;p&gt;也请以后遇到类似问题的兄弟们莫急莫慌，泡杯咖啡，看部电影，再回来刷刷，收不准就好了:D&lt;/p&gt;
&lt;p&gt;over~&lt;/p&gt;
&lt;p&gt;&amp;copy;2010 感谢您来到linux大棚。如转载请注明：“ &lt;a href=&quot;http://roclinux.cn&quot;&gt;linux大棚&lt;/a&gt;”&lt;/p&gt;.&lt;h3  class=&quot;related_post_title&quot;&gt;我猜您对这些文章感兴趣：&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1453&quot; title=&quot;大棚订阅人数超过500啦&quot;&gt;大棚订阅人数超过500啦&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1404&quot; title=&quot;进入牛年，大棚归来&quot;&gt;进入牛年，大棚归来&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1215&quot; title=&quot;或许你没关注过我的“昨天明天”&quot;&gt;或许你没关注过我的“昨天明天”&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1209&quot; title=&quot;雅虎统计100天&quot;&gt;雅虎统计100天&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324077955/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1709&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077955/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077955/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://roclinux.cn/?feed=rss2&amp;p=1709</wfw:commentRss><slash:comments>0</slash:comments><description>今天下午想看看大棚博客，却发现无法登录了，整个页面白花花的，赫然的几个大字：“To many open files in /www/users/roclinux.cn/wp-settings.php on line 704” 。
可爱的大棚到底怎么了？？
一来，我非常怀疑是服务器的问题，有可能是哪位兄台和我公用服务器，并且搞了个php占用了大量的file descriptor，因此我的博客系统在试图打开文件时报错；

二来，我怀疑是前一阵升级到wordpress 2.9导致的，有可能2.9开启了某个特性，使得打开文件数骤增，从而导致问题
三来，我怀疑是插件的问题，因为升级到2.9时提示我说simple tag插件不兼容。
（下午的确没招了，而且出门有事）闲言少叙&amp;#8230;
晚上10点多回来后，一开博客，好了！！（觉得意外之喜）
看来是应验了第一种假设，虚惊一场。
也请以后遇到类似问题的兄弟们莫急莫慌，泡杯咖啡，看部电影，再回来刷刷，收不准就好了:D
over~
&amp;#169;2010 感谢您来到linux大棚。如转载请注明：“ linux大棚”.我猜您对这些文章感兴趣：大棚订阅人数超过500啦进入牛年，大棚归来或许你没关注过我的“昨天明天”雅虎统计100天&lt;img src=&quot;http://www1.feedsky.com/t1/324077955/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1709&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077955/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077955/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>many</category><category>too</category><category>事故</category><category>files</category><category>大棚</category><category>谈天说地</category><category>open</category><pubDate>Sun, 27 Dec 2009 23:59:44 +0800</pubDate><author>rocrocket</author><comments>http://roclinux.cn/?p=1709#comments</comments><guid isPermaLink="false">http://roclinux.cn/?p=1709</guid><dc:creator>rocrocket</dc:creator><fs:srclink>http://roclinux.cn/?p=1709</fs:srclink><fs:srcfeed>http://roclinux.cn/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/roclinux/~7154559/324077955/5263432</fs:itemid></item><item><title>百科一下DirectX</title><link>http://roclinux.cn/?p=1700</link><content:encoded>&lt;div class=&quot;postavatar&quot;&gt;&lt;img src=&quot;http://roclinux.cn/wp-content/uploads/icons/hardware_fans.jpg&quot; width=&quot;90&quot; height=&quot;90&quot; alt=&quot;%e7%99%be%e7%a7%91%e4%b8%80%e4%b8%8bdirectx&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;strong&gt;原创文章属于&lt;a href=&quot;../&quot; target=&quot;_blank&quot;&gt;《Linux大棚》&lt;/a&gt;博客，博客地址为&lt;a href=&quot;../&quot; target=&quot;_blank&quot;&gt;http://roclinux.cn&lt;/a&gt;。文章作者为 rocrocket。&lt;/strong&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;strong&gt;为了防止某些网站的恶性转载，特在每篇文章前加 入此信息，还望读者体谅。&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;strong&gt;===&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #993300;&quot;&gt;&lt;strong&gt;[正文开始]&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;本文系根据&lt;a href=&quot;http://baike.baidu.com/view/15762.htm?fr=ala0&quot; target=&quot;_blank&quot;&gt;百度百科的DirectX词条内容&lt;/a&gt;精简汇总而来。&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;什么是DirectX&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;DirectX是一种应用程序接口（API），它可让以windows为平台的游戏或多媒体程序获得更高的执行效率，加强3d图形和声音效果，并提供设计人员一个共同的硬件驱动标准，让游戏开发者不必为每一品牌的硬件来写不同的驱动程序，也降低用户安装及设置硬件的复杂度。&lt;span id=&quot;more-1700&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://roclinux.cn/wp-content/uploads/2009/12/DXCube.png&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-1701&quot; title=&quot;DXCube&quot; src=&quot;http://roclinux.cn/wp-content/uploads/2009/12/DXCube-291x300.png&quot; alt=&quot;DXCube&quot; width=&quot;291&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;举个例子吧，骨灰级玩家（玩游戏比较长的）以前在DOS下玩游戏时，可不像我们现在，安装上就可以玩了，他们往往首先要先设置声卡的品牌和型号，然后还要设置IRQ（中断）、I/O（输入于输出）、DMA（存取模式），如果哪项设置的不对，那么游戏声音就发不出来。这部分的设置不仅让玩家伤透脑筋，而且对游戏开发者来说就更头痛了，因为为了让游戏能够在众多电脑中正确运行，开发者必须在游戏制作之初,便需要把市面上所有声卡硬件数据都收集过来，然后根据不同的 API（应用编程接口）来写不同的驱动程序，这对于游戏制作公司来说，是很难完成的，所以说在当时多媒体游戏很少。微软正是看到了这个问题，为众厂家推出了一个共同的应用程序接口——DirectX，只要这个游戏是依照Directx来开发的，不管你是什么显卡、声卡、统统都能玩，而且还能发挥更佳的效果。当然，前提是你的显卡、声卡的驱动程序也必须支持DirectX才行。&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;DirectX由哪些部分组成&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;DirectX是由很多API组成的，按照性质分类，可以分为四大部分，显示部分、声音部分、输入部分和网络部分。&lt;br /&gt;
显示部分担任图形处理的关键，分为DirectDraw（DDraw）和 Direct3D（D3D），前者主要负责2D图像加速。它包括很多方面：我们播放mpg、DVD电影、看图、玩小游戏等等都是用的DDraw，你可以把它理解成所有划线的部分都是用的DDraw。后者则主要负责3D效果的显示，比如CS中的场景和人物、FIFA中的人物等等，都是使用了DirectX的 Direct3D。&lt;br /&gt;
声音部分中最主要的API是DirectSound，除了播放声音和处理混音之外，还加强了 3d音效，并提供了录音功能。我们前面所举的声卡兼容的例子，就是利用了DirectSound来解决的。&lt;br /&gt;
输入部分DirectInput可以支持很多的游戏输入设备，它能够让这些设备充分发挥最佳状态和全部功能。除了键盘和鼠标之外还可以连接手柄、摇杆、模拟器等。&lt;br /&gt;
网络部分DirectPlay主要就是为了具有网络功能游戏而开发的，提供了多种连接方式，TCP/IP，IPX，Modem，串口等等，让玩家可以用各种连网方式来进行对战，此外也提供网络对话功能及保密措施。&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;DirectX发展历史&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;DirectX 1.0&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;第一代的DirectX很不成功，推出时众多的硬件均不支持，当时基本都采用专业图形 API－OpenGL，缺乏硬件的支持成了其流行的最大障碍。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DirectX 2.0&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;DirectX 2.0在二维图形方面做了些改进，增加了一些动态效果，采用了Direct 3D的技术。这样DirectX 2.0与DirectX 1.0有了相当大的不同。从DirectX 2.0开始，整个DirectX的设计架构雏形就已基本完成。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DirectX 3.0&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;DirectX 3.0的推出是在1997年最后一个版本的Windows95发布后不久，此时3D游戏开始深入人心，DirectX也逐渐得到软硬件厂商的认可。97年时应用程序接口标准共有三个，分别是专业的OpenGL接口，微软的DirectX D接口和3DFX公司的Glide接口。而那时的3DFX公司是最为强大的显卡制造商，它的Glide接口自然也受到最广泛的应用，但随着3DFX公司的没落，Voodoo显卡的衰败，Glide接口才逐渐消失了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DirectX 5.0&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;微软公司并没有推出DirectX 4.0，而是直接推出了DirectX 5.0。此版本对Direct3D做出了很大的改动，加入了雾化效果、Alpha混合等3D特效，使3D游戏中的空间感和真实感得以增强，还加入了S3的纹理压缩技术。&lt;br /&gt;
DirectX发展到DirectX 5.0才真正走向了成熟。此时的DirectX性能完全不逊色于其它3D API，而且大有后来居上之势。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DirectX 6.0&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;DirectX 6.0推出时，其最大的竞争对手之一Glide，已逐步走向了没落，而DirectX则得到了大多数厂商的认可。DirectX 6.0中加入了双线性过滤、三线性过滤等优化3D图像质量的技术，游戏中的3D技术逐渐走入成熟阶段。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DirectX 7.0&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;DirectX 7.0最大的特色就是支持T&amp;amp;L，中文名称是“坐标转换和光源”。3D游戏中的任何一个物体都有一个坐标，当此物体运动时，它的坐标发生变化，这指的就是坐标转换；3D游戏中除了场景＋物体还需要灯光，没有灯光就没有3D物体的表现，无论是实时3D游戏还是3D影像渲染，加上灯光的3D渲染是最消耗资源的。虽然OpenGL中已有相关技术，但此前从未在民用级硬件中出现。&lt;br /&gt;
在T&amp;amp;L问世之前，位置转换和灯光都需要CPU来计算，CPU速度越快，游戏表现越流畅。使用了T&amp;amp;L功能后，这两种效果的计算用显示卡的GPU来计算，这样就可以把CPU从繁忙的劳动中解脱出来。换句话说，拥有T&amp;amp;L显示卡，使用DirectX 7.0，即使没有高速的CPU，同样能流畅的跑3D游戏。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DirectX 8.0&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;DirectX 8.0的推出引发了一场显卡革命，它首次引入了“像素渲染”概念，同时具备像素渲染引擎(Pixel Shader)与顶点渲染引擎(Vertex Shader)，反映在特效上就是动态光影效果。同硬件T&amp;amp;L仅仅实现的固定光影转换相比，VS和PS单元的灵活性更大，它使GPU真正成为了可编程的处理器。这意味着程序员可通过它们实现3D场景构建的难度大大降低。通过VS和PS的渲染，可以很容易的营造出真实的水面动态波纹光影效果。此时 DirectX的权威地位终于建成。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DirectX 9.0&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;2002年底，微软发布DirectX9.0。DirectX 9中PS单元的渲染精度已达到浮点精度，传统的硬件T&amp;amp;L单元也被取消。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Directx 10.0&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;已经包含在Windows Vista操作系统中，目前无法单独下载使用&lt;br /&gt;
新的DirectX使你获得更好的图像显示质量，使多人游戏具可伸缩性，以及包括更棒的音频效果。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DirectX 10.1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;正如以前的DX版本一样，DX10.1也是DX10的超集，因此它将支持DirectX 10的所有功能，同时它将支持更多的功能，提供更高的性能。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;Directx 11&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在微软刚刚发布的Windows 7 Beta版本中，一些已经安装使用的用户的发现了DirectX 11已经包含其中了。DirectX 11作为3D图形接口，不仅支持未来的DX11硬件，还向下兼容当前的DirectX 10和10.1硬件。DirectX 11增加了新的计算shader技术，可以允许GPU从事更多的通用计算工作，而不仅仅是3D运算，这可以鼓励开发人员更好地将GPU作为并行处理器使用。&lt;br /&gt;
另外，DirectX 11还支持tessellation镶嵌化技术，这有助于开发人员创建更为细腻流畅的模型，实现高质量实时渲染和预渲染场景。多线程是DirectX 11的另外一大亮点，DX11可以更好地利用多线程资源，从而使游戏更有效地利用多核处理器。&lt;/p&gt;
&lt;p&gt;ps:之所以放到硬件我发烧系列中，是因为买显卡，directx的支持是个很重要的指标。&lt;/p&gt;
&lt;p&gt;over~&lt;/p&gt;
&lt;p&gt;&amp;copy;2010 感谢您来到linux大棚。如转载请注明：“ &lt;a href=&quot;http://roclinux.cn&quot;&gt;linux大棚&lt;/a&gt;”&lt;/p&gt;.&lt;h3  class=&quot;related_post_title&quot;&gt;我猜您对这些文章感兴趣：&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1567&quot; title=&quot;google chrome OS &amp;#8211; google的海底针&quot;&gt;google chrome OS &amp;#8211; google的海底针&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1500&quot; title=&quot;不错：微软人体工学桌面套装7000&quot;&gt;不错：微软人体工学桌面套装7000&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1155&quot; title=&quot;fedora中调整屏幕亮度的方法［补充］&quot;&gt;fedora中调整屏幕亮度的方法［补充］&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=644&quot; title=&quot;《度过开源的贫困》&quot;&gt;《度过开源的贫困》&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=292&quot; title=&quot;IBM和微软-全球品牌价值榜&quot;&gt;IBM和微软-全球品牌价值榜&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324077956/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1700&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077956/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077956/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://roclinux.cn/?feed=rss2&amp;p=1700</wfw:commentRss><slash:comments>4</slash:comments><description>&lt;div class=&quot;postavatar&quot;&gt;&lt;img src=&quot;http://roclinux.cn/wp-content/uploads/icons/hardware_fans.jpg&quot; width=&quot;90&quot; height=&quot;90&quot; alt=&quot;%e7%99%be%e7%a7%91%e4%b8%80%e4%b8%8bdirectx&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;
原创文章属于《Linux大棚》博客，博客地址为http://roclinux.cn。文章作者为 rocrocket。
为了防止某些网站的恶性转载，特在每篇文章前加 入此信息，还望读者体谅。
===
[正文开始]
本文系根据百度百科的DirectX词条内容精简汇总而来。
什么是DirectX
DirectX是一种应用程序接口（API），它可让以windows为平台的游戏或多媒体程序获得更高的执行效率，加强3d图形和声音效果，并提供设计人员一个共同的硬件驱动标准，让游戏开发者不必为每一品牌的硬件来写不同的驱动程序，也降低用户安装及设置硬件的复杂度。

举个例子吧，骨灰级玩家（玩游戏比较长的）以前在DOS下玩游戏时，可不像我们现在，安装上就可以玩了，他们往往首先要先设置声卡的品牌和型号，然后还要设置IRQ（中断）、I/O（输入于输出）、DMA（存取模式），如果哪项设置的不对，那么游戏声音就发不出来。这部分的设置不仅让玩家伤透脑筋，而且对游戏开发者来说就更头痛了，因为为了让游戏能够在众多电脑中正确运行，开发者必须在游戏制作之初,便需要把市面上所有声卡硬件数据都收集过来，然后根据不同的 API（应用编程接口）来写不同的驱动程序，这对于游戏制作公司来说，是很难完成的，所以说在当时多媒体游戏很少。微软正是看到了这个问题，为众厂家推出了一个共同的应用程序接口——DirectX，只要这个游戏是依照Directx来开发的，不管你是什么显卡、声卡、统统都能玩，而且还能发挥更佳的效果。当然，前提是你的显卡、声卡的驱动程序也必须支持DirectX才行。
DirectX由哪些部分组成
DirectX是由很多API组成的，按照性质分类，可以分为四大部分，显示部分、声音部分、输入部分和网络部分。
显示部分担任图形处理的关键，分为DirectDraw（DDraw）和 Direct3D（D3D），前者主要负责2D图像加速。它包括很多方面：我们播放mpg、DVD电影、看图、玩小游戏等等都是用的DDraw，你可以把它理解成所有划线的部分都是用的DDraw。后者则主要负责3D效果的显示，比如CS中的场景和人物、FIFA中的人物等等，都是使用了DirectX的 Direct3D。
声音部分中最主要的API是DirectSound，除了播放声音和处理混音之外，还加强了 3d音效，并提供了录音功能。我们前面所举的声卡兼容的例子，就是利用了DirectSound来解决的。
输入部分DirectInput可以支持很多的游戏输入设备，它能够让这些设备充分发挥最佳状态和全部功能。除了键盘和鼠标之外还可以连接手柄、摇杆、模拟器等。
网络部分DirectPlay主要就是为了具有网络功能游戏而开发的，提供了多种连接方式，TCP/IP，IPX，Modem，串口等等，让玩家可以用各种连网方式来进行对战，此外也提供网络对话功能及保密措施。
DirectX发展历史
DirectX 1.0
第一代的DirectX很不成功，推出时众多的硬件均不支持，当时基本都采用专业图形 API－OpenGL，缺乏硬件的支持成了其流行的最大障碍。
DirectX 2.0
DirectX 2.0在二维图形方面做了些改进，增加了一些动态效果，采用了Direct 3D的技术。这样DirectX 2.0与DirectX 1.0有了相当大的不同。从DirectX 2.0开始，整个DirectX的设计架构雏形就已基本完成。
DirectX 3.0
DirectX 3.0的推出是在1997年最后一个版本的Windows95发布后不久，此时3D游戏开始深入人心，DirectX也逐渐得到软硬件厂商的认可。97年时应用程序接口标准共有三个，分别是专业的OpenGL接口，微软的DirectX D接口和3DFX公司的Glide接口。而那时的3DFX公司是最为强大的显卡制造商，它的Glide接口自然也受到最广泛的应用，但随着3DFX公司的没落，Voodoo显卡的衰败，Glide接口才逐渐消失了。
DirectX 5.0
微软公司并没有推出DirectX 4.0，而是直接推出了DirectX 5.0。此版本对Direct3D做出了很大的改动，加入了雾化效果、Alpha混合等3D特效，使3D游戏中的空间感和真实感得以增强，还加入了S3的纹理压缩技术。
DirectX发展到DirectX 5.0才真正走向了成熟。此时的DirectX性能完全不逊色于其它3D API，而且大有后来居上之势。
DirectX 6.0
DirectX 6.0推出时，其最大的竞争对手之一Glide，已逐步走向了没落，而DirectX则得到了大多数厂商的认可。DirectX 6.0中加入了双线性过滤、三线性过滤等优化3D图像质量的技术，游戏中的3D技术逐渐走入成熟阶段。
DirectX 7.0
DirectX 7.0最大的特色就是支持T&amp;#38;L，中文名称是“坐标转换和光源”。3D游戏中的任何一个物体都有一个坐标，当此物体运动时，它的坐标发生变化，这指的就是坐标转换；3D游戏中除了场景＋物体还需要灯光，没有灯光就没有3D物体的表现，无论是实时3D游戏还是3D影像渲染，加上灯光的3D渲染是最消耗资源的。虽然OpenGL中已有相关技术，但此前从未在民用级硬件中出现。
在T&amp;#38;L问世之前，位置转换和灯光都需要CPU来计算，CPU速度越快，游戏表现越流畅。使用了T&amp;#38;L功能后，这两种效果的计算用显示卡的GPU来计算，这样就可以把CPU从繁忙的劳动中解脱出来。换句话说，拥有T&amp;#38;L显示卡，使用DirectX 7.0，即使没有高速的CPU，同样能流畅的跑3D游戏。
DirectX 8.0
DirectX 8.0的推出引发了一场显卡革命，它首次引入了“像素渲染”概念，同时具备像素渲染引擎(Pixel Shader)与顶点渲染引擎(Vertex Shader)，反映在特效上就是动态光影效果。同硬件T&amp;#38;L仅仅实现的固定光影转换相比，VS和PS单元的灵活性更大，它使GPU真正成为了可编程的处理器。这意味着程序员可通过它们实现3D场景构建的难度大大降低。通过VS和PS的渲染，可以很容易的营造出真实的水面动态波纹光影效果。此时 DirectX的权威地位终于建成。
DirectX 9.0
2002年底，微软发布DirectX9.0。DirectX 9中PS单元的渲染精度已达到浮点精度，传统的硬件T&amp;#38;L单元也被取消。
Directx 10.0
已经包含在Windows Vista操作系统中，目前无法单独下载使用
新的DirectX使你获得更好的图像显示质量，使多人游戏具可伸缩性，以及包括更棒的音频效果。
DirectX 10.1
正如以前的DX版本一样，DX10.1也是DX10的超集，因此它将支持DirectX 10的所有功能，同时它将支持更多的功能，提供更高的性能。
Directx 11
在微软刚刚发布的Windows 7 Beta版本中，一些已经安装使用的用户的发现了DirectX 11已经包含其中了。DirectX 11作为3D图形接口，不仅支持未来的DX11硬件，还向下兼容当前的DirectX 10和10.1硬件。DirectX 11增加了新的计算shader技术，可以允许GPU从事更多的通用计算工作，而不仅仅是3D运算，这可以鼓励开发人员更好地将GPU作为并行处理器使用。
另外，DirectX 11还支持tessellation镶嵌化技术，这有助于开发人员创建更为细腻流畅的模型，实现高质量实时渲染和预渲染场景。多线程是DirectX 11的另外一大亮点，DX11可以更好地利用多线程资源，从而使游戏更有效地利用多核处理器。
ps:之所以放到硬件我发烧系列中，是因为买显卡，directx的支持是个很重要的指标。
over~
&amp;#169;2010 感谢您来到linux大棚。如转载请注明：“ linux大棚”.我猜您对这些文章感兴趣：google chrome OS &amp;#8211; google的海底针不错：微软人体工学桌面套装7000fedora中调整屏幕亮度的方法［补充］《度过开源的贫困》IBM和微软-全球品牌价值榜&lt;img src=&quot;http://www1.feedsky.com/t1/324077956/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1700&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077956/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077956/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>硬件我发烧</category><category>diretx</category><category>微软</category><category>百科</category><category>显卡</category><pubDate>Sun, 13 Dec 2009 15:35:28 +0800</pubDate><author>rocrocket</author><comments>http://roclinux.cn/?p=1700#comments</comments><guid isPermaLink="false">http://roclinux.cn/?p=1700</guid><dc:creator>rocrocket</dc:creator><fs:srclink>http://roclinux.cn/?p=1700</fs:srclink><fs:srcfeed>http://roclinux.cn/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/roclinux/~7154559/324077956/5263432</fs:itemid></item><item><title>派发google wave邀请</title><link>http://roclinux.cn/?p=1695</link><content:encoded>&lt;p&gt;Google Wave邀请，如果哪位想要，在留言处留下邮箱即可。:)&lt;/p&gt;
&lt;p&gt;数量有限（25个），先到先得哦。&lt;/p&gt;
&lt;p&gt;（博客有留言审查机制，我会及时处理）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ps:已经没有了&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;copy;2010 感谢您来到linux大棚。如转载请注明：“ &lt;a href=&quot;http://roclinux.cn&quot;&gt;linux大棚&lt;/a&gt;”&lt;/p&gt;.&lt;h3  class=&quot;related_post_title&quot;&gt;我猜您对这些文章感兴趣：&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1579&quot; title=&quot;fedora11安装google chrome&quot;&gt;fedora11安装google chrome&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1567&quot; title=&quot;google chrome OS &amp;#8211; google的海底针&quot;&gt;google chrome OS &amp;#8211; google的海底针&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=373&quot; title=&quot;我参加了“谷歌1000万征金点子”&quot;&gt;我参加了“谷歌1000万征金点子”&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324077957/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1695&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077957/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077957/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://roclinux.cn/?feed=rss2&amp;p=1695</wfw:commentRss><slash:comments>69</slash:comments><description>Google Wave邀请，如果哪位想要，在留言处留下邮箱即可。:)
数量有限（25个），先到先得哦。
（博客有留言审查机制，我会及时处理）
ps:已经没有了
&amp;#169;2010 感谢您来到linux大棚。如转载请注明：“ linux大棚”.我猜您对这些文章感兴趣：fedora11安装google chromegoogle chrome OS &amp;#8211; google的海底针我参加了“谷歌1000万征金点子”&lt;img src=&quot;http://www1.feedsky.com/t1/324077957/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1695&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077957/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077957/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>站长发言</category><category>wave</category><category>邀请</category><category>google</category><pubDate>Sat, 12 Dec 2009 11:47:18 +0800</pubDate><author>rocrocket</author><comments>http://roclinux.cn/?p=1695#comments</comments><guid isPermaLink="false">http://roclinux.cn/?p=1695</guid><dc:creator>rocrocket</dc:creator><fs:srclink>http://roclinux.cn/?p=1695</fs:srclink><fs:srcfeed>http://roclinux.cn/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/roclinux/~7154559/324077957/5263432</fs:itemid></item><item><title>《看日记学git》之三十一</title><link>http://roclinux.cn/?p=1045</link><content:encoded>&lt;div class=&quot;postavatar&quot;&gt;&lt;img src=&quot;http://roclinux.cn/wp-content/uploads/icons/daily-study-git-logo.jpg&quot; width=&quot;90&quot; height=&quot;90&quot; alt=&quot;%e3%80%8a%e7%9c%8b%e6%97%a5%e8%ae%b0%e5%ad%a6git%e3%80%8b%e4%b9%8b%e4%b8%89%e5%8d%81%e4%b8%80&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;strong&gt;原创文章属于&lt;a href=&quot;../&quot; target=&quot;_blank&quot;&gt;《Linux大棚》&lt;/a&gt;博客，博客地址为&lt;a href=&quot;../&quot; target=&quot;_blank&quot;&gt;http://roclinux.cn&lt;/a&gt;。文章作者为rocrocket。&lt;/strong&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;strong&gt;为了防止某些网站的恶性转载，特在每篇文章前加入此信息，还望读者体谅。&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;strong&gt;===&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #993300;&quot;&gt;&lt;strong&gt;[正文开始]&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;在之前的《&lt;a title=&quot;Permanent Link to git尚待解决的问题汇总&quot; rel=&quot;bookmark&quot; href=&quot;../?p=968&quot;&gt;git尚待解决的问题汇总&lt;/a&gt;》中，第二个待解决的问题是git-rebase命令。这个命令是比较难的一个，想搞定它绝非易事。我努力叙述的清晰些，如果您还是不太懂，那就直接给我发邮件吧，我会很乐意和您交流关于git以及博客里任何文章的心得的，take it easy!（我的邮件地址我相信你能找到^_^）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;命令格式&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;我们先来看看git-rebase的命令格式：&lt;/p&gt;
&lt;p&gt;git rebase [-i | --interactive] [options] [--onto &amp;lt;newbase&amp;gt;]  &amp;lt;upstream&amp;gt; [&amp;lt;branch&amp;gt;]&lt;br /&gt;
git rebase [-i | --interactive] [options] &amp;#8211;onto &amp;lt;newbase&amp;gt;  &amp;#8211;root [&amp;lt;branch&amp;gt;]&lt;br /&gt;
git rebase &amp;#8211;continue | &amp;#8211;skip | &amp;#8211;abort&lt;/p&gt;
&lt;p&gt;从命令格式，可以看到git-rebae命令&lt;strong&gt;至少&lt;/strong&gt;需要一个参数，那就是&amp;lt;upstream&amp;gt;，这个参数可以是一个分支名称，也可以是一次有效的commit。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;一个小地方&lt;span id=&quot;more-1045&quot;&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在你决定学习这个命令，首先有一个小地方你应该注意，那就是如果git-rebase后面加上了参数&amp;lt;&lt;span style=&quot;color: #ff6600;&quot;&gt;&lt;strong&gt;branch&lt;/strong&gt;&lt;/span&gt;&amp;gt;，那么 git-rebase会在任何其他动作之前先执行git checkout &amp;lt;branch&amp;gt;，如果没有加参数&amp;lt;branch&amp;gt;，那么git-rebase会针对当前分支来做动作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;命令用处&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;git-rebase命令主要用在从上游分支获取最新commit信息，并有机的将当前分支和上游分支进行合并。&lt;/p&gt;
&lt;p&gt;这是只言片语的介绍，可能读者并不能了解它的用途和好处。&lt;/p&gt;
&lt;p&gt;还是要用例子说话。我们假设主分支为master，在开发过程中生成一个新分支topic。master称为topic的上游分支。&lt;/p&gt;
&lt;p&gt;例子开始：&lt;/p&gt;
&lt;p&gt;[rocrocket@wupengchong git-study]$ cd rebase&lt;br /&gt;
[rocrocket@wupengchong rebase]$ ls&lt;br /&gt;
[rocrocket@wupengchong rebase]$ vi roc.c&lt;br /&gt;
[rocrocket@wupengchong rebase]$ cat roc.c&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
printf(&amp;#8220;master:001&amp;#8243;);&lt;br /&gt;
return 0;&lt;br /&gt;
}&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git init&lt;br /&gt;
Initialized empty Git repository in /rocrocket/career/programming/git-study/rebase/.git/&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git add .&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git commit -m &amp;#8220;master:001&amp;#8243;&lt;br /&gt;
Created initial commit 2d89602: master:001&lt;br /&gt;
1 files changed, 5 insertions(+), 0 deletions(-)&lt;br /&gt;
create mode 100644 roc.c&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git log&lt;br /&gt;
commit 2d89602d0c9955824df0d2c023e447f5d98d863a&lt;br /&gt;
Author: rocrocket &amp;lt;wupengchong@gmail.com&amp;gt;&lt;br /&gt;
Date:   Mon Nov 17 15:26:40 2008 +0800&lt;/p&gt;
&lt;p&gt;master:001&lt;br /&gt;
[rocrocket@wupengchong rebase]$&lt;/p&gt;
&lt;p&gt;到此，我们已经在master分支完成了一个commit。&lt;/p&gt;
&lt;p&gt;[rocrocket@wupengchong rebase]$ vi roc.c&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git commit -a -m &amp;#8220;master:002&amp;#8243;&lt;br /&gt;
Created commit 41b3d1c: master:002&lt;br /&gt;
1 files changed, 1 insertions(+), 0 deletions(-)&lt;br /&gt;
[rocrocket@wupengchong rebase]$ cat roc.c&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
printf(&amp;#8220;master:001&amp;#8243;);&lt;br /&gt;
printf(&amp;#8220;master:002&amp;#8243;);&lt;br /&gt;
return 0;&lt;br /&gt;
}&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git log&lt;br /&gt;
commit 41b3d1cfaae0184bb8e5f27a165d51cc23867413&lt;br /&gt;
Author: rocrocket &amp;lt;wupengchong@gmail.com&amp;gt;&lt;br /&gt;
Date:   Mon Nov 17 15:28:01 2008 +0800&lt;/p&gt;
&lt;p&gt;master:002&lt;/p&gt;
&lt;p&gt;commit 2d89602d0c9955824df0d2c023e447f5d98d863a&lt;br /&gt;
Author: rocrocket &amp;lt;wupengchong@gmail.com&amp;gt;&lt;br /&gt;
Date:   Mon Nov 17 15:26:40 2008 +0800&lt;/p&gt;
&lt;p&gt;master:001&lt;br /&gt;
[rocrocket@wupengchong rebase]$&lt;/p&gt;
&lt;p&gt;到此为止，我们已经在master分支完成了两次commit的提交。&lt;/p&gt;
&lt;p&gt;现在的分支结构是这样的，请读者记清楚：&lt;/p&gt;
&lt;p&gt;master:001 &amp;#8212; master:002   (master)&lt;/p&gt;
&lt;p&gt;好，我们继续要做的事情就是建立一个新的分支topic。&lt;/p&gt;
&lt;p&gt;[rocrocket@wupengchong rebase]$ git branch&lt;br /&gt;
* master&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git branch topic&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git branch&lt;br /&gt;
* master&lt;br /&gt;
topic&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git checkout topic&lt;br /&gt;
Switched to branch &amp;#8220;topic&amp;#8221;&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git branch&lt;br /&gt;
master&lt;br /&gt;
* topic&lt;br /&gt;
[rocrocket@wupengchong rebase]$&lt;/p&gt;
&lt;p&gt;好了，我们已经成功建立了topic分支，并且已经转移到了topic分支。&lt;/p&gt;
&lt;p&gt;接下来，topic上面的开发情况如下：&lt;/p&gt;
&lt;p&gt;[rocrocket@wupengchong rebase]$ vi roc.c&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git commit -a -m &amp;#8220;topic:001&amp;#8243;&lt;br /&gt;
Created commit d599b54: topic:001&lt;br /&gt;
1 files changed, 1 insertions(+), 0 deletions(-)&lt;br /&gt;
[rocrocket@wupengchong rebase]$ vi roc.c&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git commit -a -m &amp;#8220;topic:002&amp;#8243;&lt;br /&gt;
Created commit 3f4b17f: topic:002&lt;br /&gt;
1 files changed, 1 insertions(+), 0 deletions(-)&lt;br /&gt;
[rocrocket@wupengchong rebase]$ cat roc.c&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
printf(&amp;#8220;topic :002&amp;#8243;);&lt;br /&gt;
printf(&amp;#8220;topic :001&amp;#8243;);&lt;br /&gt;
printf(&amp;#8220;master:001&amp;#8243;);&lt;br /&gt;
printf(&amp;#8220;master:002&amp;#8243;);&lt;br /&gt;
return 0;&lt;br /&gt;
}&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git log&lt;br /&gt;
commit 3f4b17fe3b5d277771770c0515e75f04e783ad14&lt;br /&gt;
Author: rocrocket &amp;lt;wupengchong@gmail.com&amp;gt;&lt;br /&gt;
Date:   Mon Nov 17 15:49:24 2008 +0800&lt;/p&gt;
&lt;p&gt;topic:002&lt;/p&gt;
&lt;p&gt;commit d599b54336ad96b8e09ef92e371a09a25e6d0c11&lt;br /&gt;
Author: rocrocket &amp;lt;wupengchong@gmail.com&amp;gt;&lt;br /&gt;
Date:   Mon Nov 17 15:48:58 2008 +0800&lt;/p&gt;
&lt;p&gt;topic:001&lt;/p&gt;
&lt;p&gt;commit 41b3d1cfaae0184bb8e5f27a165d51cc23867413&lt;br /&gt;
Author: rocrocket &amp;lt;wupengchong@gmail.com&amp;gt;&lt;br /&gt;
Date:   Mon Nov 17 15:28:01 2008 +0800&lt;/p&gt;
&lt;p&gt;master:002&lt;/p&gt;
&lt;p&gt;commit 2d89602d0c9955824df0d2c023e447f5d98d863a&lt;br /&gt;
Author: rocrocket &amp;lt;wupengchong@gmail.com&amp;gt;&lt;br /&gt;
Date:   Mon Nov 17 15:26:40 2008 +0800&lt;/p&gt;
&lt;p&gt;master:001&lt;br /&gt;
[rocrocket@wupengchong rebase]$&lt;/p&gt;
&lt;p&gt;可知，自从建立并切换到topic分支后，topic又进行了两次commit提交，每次分别加入了一行代码。&lt;/p&gt;
&lt;p&gt;此时，分支结构应该是这样的：&lt;/p&gt;
&lt;pre&gt;                topic:001 --- topic:002  （topic）
                   /
master:001 --- master:002   (master)&lt;/pre&gt;
&lt;p&gt;这个图已经很清晰了，可以看出分支的走向。&lt;/p&gt;
&lt;p&gt;接下来，master分支也有自己的进度，如下：&lt;/p&gt;
&lt;p&gt;[rocrocket@wupengchong rebase]$ git checkout master&lt;br /&gt;
Switched to branch &amp;#8220;master&amp;#8221;&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git branch&lt;br /&gt;
* master&lt;br /&gt;
topic&lt;br /&gt;
[rocrocket@wupengchong rebase]$ vi roc.c&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git commit -a -m &amp;#8220;master:003&amp;#8243;&lt;br /&gt;
Created commit 91a7ffc: master:003&lt;br /&gt;
1 files changed, 1 insertions(+), 0 deletions(-)&lt;br /&gt;
[rocrocket@wupengchong rebase]$ vi roc.c&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git commit -a -m &amp;#8220;master:004&amp;#8243;&lt;br /&gt;
Created commit b81fbc3: master:004&lt;br /&gt;
1 files changed, 1 insertions(+), 0 deletions(-)&lt;br /&gt;
[rocrocket@wupengchong rebase]$ cat roc.c&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
printf(&amp;#8220;master:001&amp;#8243;);&lt;br /&gt;
printf(&amp;#8220;master:002&amp;#8243;);&lt;br /&gt;
printf(&amp;#8220;master:003&amp;#8243;);&lt;br /&gt;
printf(&amp;#8220;master:004&amp;#8243;);&lt;br /&gt;
return 0;&lt;br /&gt;
}&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git log&lt;br /&gt;
commit b81fbc3be5c7bd1fdef72820c29e2c67590f4b03&lt;br /&gt;
Author: rocrocket &amp;lt;wupengchong@gmail.com&amp;gt;&lt;br /&gt;
Date:   Mon Nov 17 15:55:23 2008 +0800&lt;/p&gt;
&lt;p&gt;master:004&lt;/p&gt;
&lt;p&gt;commit 91a7ffc73e6320a86b10849061efd672f47fd5bd&lt;br /&gt;
Author: rocrocket &amp;lt;wupengchong@gmail.com&amp;gt;&lt;br /&gt;
Date:   Mon Nov 17 15:55:06 2008 +0800&lt;/p&gt;
&lt;p&gt;master:003&lt;/p&gt;
&lt;p&gt;commit 41b3d1cfaae0184bb8e5f27a165d51cc23867413&lt;br /&gt;
Author: rocrocket &amp;lt;wupengchong@gmail.com&amp;gt;&lt;br /&gt;
Date:   Mon Nov 17 15:28:01 2008 +0800&lt;/p&gt;
&lt;p&gt;master:002&lt;/p&gt;
&lt;p&gt;commit 2d89602d0c9955824df0d2c023e447f5d98d863a&lt;br /&gt;
Author: rocrocket &amp;lt;wupengchong@gmail.com&amp;gt;&lt;br /&gt;
Date:   Mon Nov 17 15:26:40 2008 +0800&lt;/p&gt;
&lt;p&gt;master:001&lt;br /&gt;
[rocrocket@wupengchong rebase]$&lt;/p&gt;
&lt;p&gt;可以看到，master分支也完成了两次commit提交，每次分别添加了一行代码。&lt;/p&gt;
&lt;p&gt;截止此时，分支结构为：&lt;/p&gt;
&lt;pre&gt;                topic:001 --- topic:002  （topic）
                   /
master:001 --- master:002 --- master:003 --- master:004  (master)&lt;/pre&gt;
&lt;p&gt;在这个时候，我们的实验样本已经基本搭建完毕，git-rebase就要派上用场了！&lt;br /&gt;
我们假设topic和master是一个项目的两个分支，master当然是主分支，而topic是旁路分支。在软件开发的大部分情况中，旁路分支是要遵从主分支的。所以说，现在topic分支想将master分支开发的最新代码导入到topic分支中，而且要求此动作不影响master主分支的开发，也就是说要暗中完成。git-rebase上场了：&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git checkout topic&lt;br /&gt;
Switched to branch &amp;#8220;topic&amp;#8221;&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git branch&lt;br /&gt;
master&lt;br /&gt;
* topic&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git rebase master&lt;br /&gt;
First, rewinding head to replay your work on top of it&amp;#8230;&lt;br /&gt;
Applying topic:001&lt;br /&gt;
error: patch failed: roc.c:1&lt;br /&gt;
error: roc.c: patch does not apply&lt;br /&gt;
Using index info to reconstruct a base tree&amp;#8230;&lt;br /&gt;
Falling back to patching base and 3-way merge&amp;#8230;&lt;br /&gt;
Auto-merged roc.c&lt;br /&gt;
Applying topic:002&lt;br /&gt;
[rocrocket@wupengchong rebase]$&lt;/p&gt;
&lt;p&gt;我们使用了git rebase master来完成我们的需求。如果你心细的话，你会看到它输出了一些error，意思是说“补丁失败”，这个error没有关系，不影响git-rebase的正常工作的。&lt;/p&gt;
&lt;p&gt;让我们来看看git-rebase的魔力吧：&lt;/p&gt;
&lt;p&gt;[rocrocket@wupengchong rebase]$ git branch&lt;br /&gt;
master&lt;br /&gt;
* topic&lt;br /&gt;
[rocrocket@wupengchong rebase]$ git log&lt;br /&gt;
commit 05de9849078541c86cf5182cd8c15fa22bd00f77&lt;br /&gt;
Author: rocrocket &amp;lt;wupengchong@gmail.com&amp;gt;&lt;br /&gt;
Date:   Mon Nov 17 15:49:24 2008 +0800&lt;/p&gt;
&lt;p&gt;topic:002&lt;/p&gt;
&lt;p&gt;commit 7e5a744ef9e0740b4a091e9c8baa859b14800b0b&lt;br /&gt;
Author: rocrocket &amp;lt;wupengchong@gmail.com&amp;gt;&lt;br /&gt;
Date:   Mon Nov 17 15:48:58 2008 +0800&lt;/p&gt;
&lt;p&gt;topic:001&lt;/p&gt;
&lt;p&gt;commit b81fbc3be5c7bd1fdef72820c29e2c67590f4b03&lt;br /&gt;
Author: rocrocket &amp;lt;wupengchong@gmail.com&amp;gt;&lt;br /&gt;
Date:   Mon Nov 17 15:55:23 2008 +0800&lt;/p&gt;
&lt;p&gt;master:004&lt;/p&gt;
&lt;p&gt;commit 91a7ffc73e6320a86b10849061efd672f47fd5bd&lt;br /&gt;
Author: rocrocket &amp;lt;wupengchong@gmail.com&amp;gt;&lt;br /&gt;
Date:   Mon Nov 17 15:55:06 2008 +0800&lt;/p&gt;
&lt;p&gt;master:003&lt;/p&gt;
&lt;p&gt;commit 41b3d1cfaae0184bb8e5f27a165d51cc23867413&lt;br /&gt;
Author: rocrocket &amp;lt;wupengchong@gmail.com&amp;gt;&lt;br /&gt;
Date:   Mon Nov 17 15:28:01 2008 +0800&lt;/p&gt;
&lt;p&gt;master:002&lt;/p&gt;
&lt;p&gt;commit 2d89602d0c9955824df0d2c023e447f5d98d863a&lt;br /&gt;
Author: rocrocket &amp;lt;wupengchong@gmail.com&amp;gt;&lt;br /&gt;
Date:   Mon Nov 17 15:26:40 2008 +0800&lt;/p&gt;
&lt;p&gt;master:001&lt;/p&gt;
&lt;p&gt;[rocrocket@wupengchong rebase]$ cat roc.c&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
printf(&amp;#8220;topic :002&amp;#8243;);&lt;br /&gt;
printf(&amp;#8220;topic :001&amp;#8243;);&lt;br /&gt;
printf(&amp;#8220;master:001&amp;#8243;);&lt;br /&gt;
printf(&amp;#8220;master:002&amp;#8243;);&lt;br /&gt;
printf(&amp;#8220;master:003&amp;#8243;);&lt;br /&gt;
printf(&amp;#8220;master:004&amp;#8243;);&lt;br /&gt;
return 0;&lt;br /&gt;
}&lt;br /&gt;
[rocrocket@wupengchong rebase]$&lt;/p&gt;
&lt;p&gt;看到了吧！master分支刚才开发的master:003和master:004也已经悄悄的进入了topic分支的日志里了。而在roc.c文件中也已经有了相应的开发代码。&lt;/p&gt;
&lt;p&gt;这下，你是不是有一种豁然开朗的感觉？呵呵 来，看一下分支结构图：&lt;/p&gt;
&lt;pre&gt;                                              topic:001 --- topic:002  （topic）
                                              /
master:001 --- master:002 --- master:003 --- master:004  (master)&lt;/pre&gt;
&lt;p&gt;这就是git-rebase的魔力！看出神奇之处了么？&lt;br /&gt;
如果忘了，就对比一下。这是执行git-rebase之前的分支结构图：&lt;/p&gt;
&lt;pre&gt;                  topic:001 --- topic:002  （topic）
                   /
master:001 --- master:002 --- master:003 --- master:004  (master)&lt;/pre&gt;
&lt;p&gt;git-rebase还有很多其他用法，我们会在以后的章节中继续讲解。:) 今天这个例子非常重要，后续有关git-rebase的例子都会已此例子为基础。&lt;/p&gt;
&lt;p&gt;学东西不贪多，贪精:D&lt;br /&gt;
over~&lt;/p&gt;
&lt;p&gt;&amp;copy;2010 感谢您来到linux大棚。如转载请注明：“ &lt;a href=&quot;http://roclinux.cn&quot;&gt;linux大棚&lt;/a&gt;”&lt;/p&gt;.&lt;h3  class=&quot;related_post_title&quot;&gt;我猜您对这些文章感兴趣：&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1647&quot; title=&quot;《sar访谈》-linux命令五分钟系列之二十九&quot;&gt;《sar访谈》-linux命令五分钟系列之二十九&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1634&quot; title=&quot;自己动手做“命令TOP TEN”&quot;&gt;自己动手做“命令TOP TEN”&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1476&quot; title=&quot;《回答sort一例》-linux命令五分钟系列之二十八&quot;&gt;《回答sort一例》-linux命令五分钟系列之二十八&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1472&quot; title=&quot;《sort命令的k选项大讨论》-linux命令五分钟系列之二十七&quot;&gt;《sort命令的k选项大讨论》-linux命令五分钟系列之二十七&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1350&quot; title=&quot;《sort帮你排序》-linux命令五分钟系列之二十六&quot;&gt;《sort帮你排序》-linux命令五分钟系列之二十六&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324077958/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1045&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077958/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077958/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://roclinux.cn/?feed=rss2&amp;p=1045</wfw:commentRss><slash:comments>6</slash:comments><description>&lt;div class=&quot;postavatar&quot;&gt;&lt;img src=&quot;http://roclinux.cn/wp-content/uploads/icons/daily-study-git-logo.jpg&quot; width=&quot;90&quot; height=&quot;90&quot; alt=&quot;%e3%80%8a%e7%9c%8b%e6%97%a5%e8%ae%b0%e5%ad%a6git%e3%80%8b%e4%b9%8b%e4%b8%89%e5%8d%81%e4%b8%80&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;
原创文章属于《Linux大棚》博客，博客地址为http://roclinux.cn。文章作者为rocrocket。
为了防止某些网站的恶性转载，特在每篇文章前加入此信息，还望读者体谅。
===
[正文开始]
在之前的《git尚待解决的问题汇总》中，第二个待解决的问题是git-rebase命令。这个命令是比较难的一个，想搞定它绝非易事。我努力叙述的清晰些，如果您还是不太懂，那就直接给我发邮件吧，我会很乐意和您交流关于git以及博客里任何文章的心得的，take it easy!（我的邮件地址我相信你能找到^_^）
命令格式
我们先来看看git-rebase的命令格式：
git rebase [-i &amp;#124; --interactive] [options] [--onto &amp;#60;newbase&amp;#62;]  &amp;#60;upstream&amp;#62; [&amp;#60;branch&amp;#62;]
git rebase [-i &amp;#124; --interactive] [options] &amp;#8211;onto &amp;#60;newbase&amp;#62;  &amp;#8211;root [&amp;#60;branch&amp;#62;]
git rebase &amp;#8211;continue &amp;#124; &amp;#8211;skip &amp;#124; &amp;#8211;abort
从命令格式，可以看到git-rebae命令至少需要一个参数，那就是&amp;#60;upstream&amp;#62;，这个参数可以是一个分支名称，也可以是一次有效的commit。
一个小地方
在你决定学习这个命令，首先有一个小地方你应该注意，那就是如果git-rebase后面加上了参数&amp;#60;branch&amp;#62;，那么 git-rebase会在任何其他动作之前先执行git checkout &amp;#60;branch&amp;#62;，如果没有加参数&amp;#60;branch&amp;#62;，那么git-rebase会针对当前分支来做动作。
命令用处
git-rebase命令主要用在从上游分支获取最新commit信息，并有机的将当前分支和上游分支进行合并。
这是只言片语的介绍，可能读者并不能了解它的用途和好处。
还是要用例子说话。我们假设主分支为master，在开发过程中生成一个新分支topic。master称为topic的上游分支。
例子开始：
[rocrocket@wupengchong git-study]$ cd rebase
[rocrocket@wupengchong rebase]$ ls
[rocrocket@wupengchong rebase]$ vi roc.c
[rocrocket@wupengchong rebase]$ cat roc.c
int main()
{
printf(&amp;#8220;master:001&amp;#8243;);
return 0;
}
[rocrocket@wupengchong rebase]$ git init
Initialized empty Git repository in /rocrocket/career/programming/git-study/rebase/.git/
[rocrocket@wupengchong rebase]$ git add .
[rocrocket@wupengchong [...]&lt;img src=&quot;http://www1.feedsky.com/t1/324077958/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1045&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077958/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077958/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>命令</category><category>《看日记学git》系列</category><category>rebase</category><category>git</category><category>合并</category><category>git-rebase</category><pubDate>Tue, 17 Nov 2009 21:41:11 +0800</pubDate><author>rocrocket</author><comments>http://roclinux.cn/?p=1045#comments</comments><guid isPermaLink="false">http://roclinux.cn/?p=1045</guid><dc:creator>rocrocket</dc:creator><fs:srclink>http://roclinux.cn/?p=1045</fs:srclink><fs:srcfeed>http://roclinux.cn/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/roclinux/~7154559/324077958/5263432</fs:itemid></item><item><title>有关Android的评论</title><link>http://roclinux.cn/?p=1689</link><content:encoded>&lt;p&gt;&amp;#8220;上个月举行的嵌入式Linux大会上，一份报告展示了嵌入式开发者们对Android的一些看法：Android丢掉了Linux社区5到10年的努力，硬是将其中很大一部分重新实现了一遍。去除了很多配置文件，将配置写死在代码里。抛弃glibc而采用自己的Bionic libc，缺乏System V IPC和POSIX线程的支持。总而言之：Android是一个糟糕的，难以移植的Linux系统。或者说，这一切都是Google的阴谋？真的是不做恶吗？&amp;#8221;&lt;/p&gt;
&lt;p&gt;言论来自：&lt;a href=&quot;http://www.embeddedlinuxconference.com/elc_europe09/program.html&quot; target=&quot;_blank&quot;&gt;http://www.embeddedlinuxconference.com/elc_europe09/program.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;如果Android确实是像上面所述，那可真是杯具啊，不过一直有传闻说Google对于Linux的使用情况是比较落后的&amp;#8230;&lt;/p&gt;
&lt;p&gt;over~&lt;/p&gt;
&lt;p&gt;&amp;copy;2010 感谢您来到linux大棚。如转载请注明：“ &lt;a href=&quot;http://roclinux.cn&quot;&gt;linux大棚&lt;/a&gt;”&lt;/p&gt;.&lt;h3  class=&quot;related_post_title&quot;&gt;我猜您对这些文章感兴趣：&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1606&quot; title=&quot;北邮的linus&quot;&gt;北邮的linus&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1567&quot; title=&quot;google chrome OS &amp;#8211; google的海底针&quot;&gt;google chrome OS &amp;#8211; google的海底针&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=450&quot; title=&quot;谁真正为Linux做出了贡献？&quot;&gt;谁真正为Linux做出了贡献？&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324077959/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1689&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077959/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077959/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://roclinux.cn/?feed=rss2&amp;p=1689</wfw:commentRss><slash:comments>4</slash:comments><description>&amp;#8220;上个月举行的嵌入式Linux大会上，一份报告展示了嵌入式开发者们对Android的一些看法：Android丢掉了Linux社区5到10年的努力，硬是将其中很大一部分重新实现了一遍。去除了很多配置文件，将配置写死在代码里。抛弃glibc而采用自己的Bionic libc，缺乏System V IPC和POSIX线程的支持。总而言之：Android是一个糟糕的，难以移植的Linux系统。或者说，这一切都是Google的阴谋？真的是不做恶吗？&amp;#8221;
言论来自：http://www.embeddedlinuxconference.com/elc_europe09/program.html
如果Android确实是像上面所述，那可真是杯具啊，不过一直有传闻说Google对于Linux的使用情况是比较落后的&amp;#8230;
over~
&amp;#169;2010 感谢您来到linux大棚。如转载请注明：“ linux大棚”.我猜您对这些文章感兴趣：北邮的linusgoogle chrome OS &amp;#8211; google的海底针谁真正为Linux做出了贡献？&lt;img src=&quot;http://www1.feedsky.com/t1/324077959/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1689&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077959/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077959/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>android</category><category>评论</category><category>操作系统</category><category>kernel</category><category>谈天说地</category><pubDate>Sun, 08 Nov 2009 23:48:09 +0800</pubDate><author>rocrocket</author><comments>http://roclinux.cn/?p=1689#comments</comments><guid isPermaLink="false">http://roclinux.cn/?p=1689</guid><dc:creator>rocrocket</dc:creator><fs:srclink>http://roclinux.cn/?p=1689</fs:srclink><fs:srcfeed>http://roclinux.cn/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/roclinux/~7154559/324077959/5263432</fs:itemid></item><item><title>当rsh遇到Connection refused时</title><link>http://roclinux.cn/?p=1687</link><content:encoded>&lt;div class=&quot;postavatar&quot;&gt;&lt;img src=&quot;http://roclinux.cn/wp-content/uploads/icons/fedora-theme-logo.jpg&quot; width=&quot;90&quot; height=&quot;90&quot; alt=&quot;%e5%bd%93rsh%e9%81%87%e5%88%b0connection-refused%e6%97%b6&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;
&lt;p&gt;今天处理问题，遇到了rsh无法连接远程机器，总是出现Connection refused的报错，光标停留在密码输入状态。&lt;/p&gt;
&lt;p&gt;上网搜索，发现如下链接的博文和我情况很相似，且给出了两种解决办法，遇到类似问题的朋友可以移步拜读一下。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://tonykorn97.itpub.net/post/6414/476048&quot; target=&quot;_blank&quot;&gt;http://tonykorn97.itpub.net/post/6414/476048&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;文章内容转载如下：&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-1687&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;有需要管理多台机器的朋友大多有听过  rsh/rlogin机制，在内部网络中的联机这个服务是很简易且方便的(姑且不论其安全性而言)。但在有时候你在安装时没特别注意的话，可能会碰到 rsh/rlogin可以运作，但会出现 Trying krb4 rlogin… Connection refused  的错误讯息，这时候可以透过下列方式进行处理。&lt;/p&gt;
&lt;pre&gt;[root@node15 ~]# rsh node15
connect to  address 192.168.1.15: Connection refused
Trying krb4 rlogin…
connect  to address 192.168.1.15: Connection refused
trying normal rlogin  (/usr/bin/rlogin)
Last login: Fri Jul 28 10:33:29 from  hcserver.cluster
[root@node15 ~]#&lt;/pre&gt;
&lt;p&gt;[root@node15 ~]# rpm -qf  `which rlogin` 检查一下目前使用的rlogin是从那个套件产生的&lt;br /&gt;
krb5-workstation-1.3.4-27  &amp;lt;&amp;#8211; 抓到凶手了，目前的rlogin是由krb5-workstation提供的&lt;br /&gt;
[root@node15 ~]#rpm -e  krb5-workstation 移除krb5-workstation套件&lt;br /&gt;
[root@node15 ~]# rpm -qf  `which rlogin` 再检查一次看看 ^^，回复到原先的rsh套件提供啦&lt;br /&gt;
rsh-0.17-25.3&lt;br /&gt;
[root@node15  ~]#rsh node15&lt;br /&gt;
[root@node15 ~]#&lt;/p&gt;
&lt;p&gt;2，发现没有安装完软件包：&lt;/p&gt;
&lt;pre&gt;[root@tonykorn97  ~]# rpm -ivh rsh-server-0.17-38.el5.x86_64.rpm
Preparing...                 ########################################### [100%]
1:rsh-server             ###########################################  [100%]
[root@tonykorn97 ~]#

[root@tonykorn97 xinetd.d]#  chkconfig rsh on
[root@tonykorn97 xinetd.d]# chkconfig rlogin on
[root@tonykorn97  xinetd.d]# /etc/init.d/xinetd restart
Stopping xinetd: [  OK  ]
Starting  xinetd: [  OK  ]
[root@tonykorn97 xinetd.d]#&lt;/pre&gt;
&lt;p&gt;over~&lt;/p&gt;
&lt;p&gt;&amp;copy;2010 感谢您来到linux大棚。如转载请注明：“ &lt;a href=&quot;http://roclinux.cn&quot;&gt;linux大棚&lt;/a&gt;”&lt;/p&gt;.&lt;h3  class=&quot;related_post_title&quot;&gt;Random Posts&lt;/h3&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=144&quot; title=&quot;剔除微软&quot;&gt;剔除微软&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1307&quot; title=&quot;正在下载FreeBSD 7.1&quot;&gt;正在下载FreeBSD 7.1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=54&quot; title=&quot;《uname命令》－linux命令五分钟系列之五&quot;&gt;《uname命令》－linux命令五分钟系列之五&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1427&quot; title=&quot;评论：最近文章为什么有点少?&quot;&gt;评论：最近文章为什么有点少?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://roclinux.cn/?p=1311&quot; title=&quot;fedora 11征名中&quot;&gt;fedora 11征名中&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324077960/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1687&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077960/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077960/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://roclinux.cn/?feed=rss2&amp;p=1687</wfw:commentRss><slash:comments>0</slash:comments><description>&lt;div class=&quot;postavatar&quot;&gt;&lt;img src=&quot;http://roclinux.cn/wp-content/uploads/icons/fedora-theme-logo.jpg&quot; width=&quot;90&quot; height=&quot;90&quot; alt=&quot;%e5%bd%93rsh%e9%81%87%e5%88%b0connection-refused%e6%97%b6&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;
今天处理问题，遇到了rsh无法连接远程机器，总是出现Connection refused的报错，光标停留在密码输入状态。
上网搜索，发现如下链接的博文和我情况很相似，且给出了两种解决办法，遇到类似问题的朋友可以移步拜读一下。
http://tonykorn97.itpub.net/post/6414/476048
文章内容转载如下：

有需要管理多台机器的朋友大多有听过  rsh/rlogin机制，在内部网络中的联机这个服务是很简易且方便的(姑且不论其安全性而言)。但在有时候你在安装时没特别注意的话，可能会碰到 rsh/rlogin可以运作，但会出现 Trying krb4 rlogin… Connection refused  的错误讯息，这时候可以透过下列方式进行处理。
[root@node15 ~]# rsh node15
connect to  address 192.168.1.15: Connection refused
Trying krb4 rlogin…
connect  to address 192.168.1.15: Connection refused
trying normal rlogin  (/usr/bin/rlogin)
Last login: Fri Jul 28 10:33:29 from  hcserver.cluster
[root@node15 ~]#
[root@node15 ~]# rpm -qf  `which rlogin` 检查一下目前使用的rlogin是从那个套件产生的
krb5-workstation-1.3.4-27  &amp;#60;&amp;#8211; 抓到凶手了，目前的rlogin是由krb5-workstation提供的
[root@node15 ~]#rpm -e  [...]&lt;img src=&quot;http://www1.feedsky.com/t1/324077960/roclinux/feedsky/s.gif?r=http://roclinux.cn/?p=1687&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/roclinux/324077960/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/roclinux/324077960/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>connection</category><category>refused</category><category>连接</category><category>远程</category><category>rsh</category><category>krb4</category><category>fedora专题</category><pubDate>Sun, 08 Nov 2009 21:49:22 +0800</pubDate><author>rocrocket</author><comments>http://roclinux.cn/?p=1687#comments</comments><guid isPermaLink="false">http://roclinux.cn/?p=1687</guid><dc:creator>rocrocket</dc:creator><fs:srclink>http://roclinux.cn/?p=1687</fs:srclink><fs:srcfeed>http://roclinux.cn/?feed=rss2</fs:srcfeed><fs:itemid>feedsky/roclinux/~7154559/324077960/5263432</fs:itemid></item></channel></rss>