<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_成长日记</title><subtitle type="text">爱上Linux</subtitle><id>http://feed.cnblogs.com/blog/u/43930/rss</id><updated>2011-12-27T13:02:42Z</updated><author><name>RocZhang</name><uri>http://www.cnblogs.com/zhyg6516/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhyg6516/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/43930/rss"/><entry><id>http://www.cnblogs.com/zhyg6516/archive/2011/12/27/2303969.html</id><title type="text">如何学习新软件工具</title><summary type="text">公欲利其事，必先利其器。同样在软件开发测试的世界里面，正确的使用工具，大大提高效率！工作中用到不少工具，最近学到不少新工具CI， git， soupUI。 总结一下自己工具的心得：1. 没有最好的工具，只有最适合自己的工具。 这条告诉我们，学习新工具之前，先了解一下自己的问题或需求。先回答自己想解决什么问题？2. 工具越强大，暴露的接口越复杂，其学习花的时间和精力越多，长期开看收益也大。 试想我们工厂里面一个复杂机器，我们是如何学习的？同样学习软件工具，也需要花时间和精力去学习。3. 如何找工具。 如果不知道工具的名字，问身边人或者stackoverflow 不错，Google一下试试。 好的</summary><published>2011-12-27T13:03:00Z</published><updated>2011-12-27T13:03:00Z</updated><author><name>RocZhang</name><uri>http://www.cnblogs.com/zhyg6516/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhyg6516/archive/2011/12/27/2303969.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhyg6516/archive/2011/12/27/2303969.html"/><content type="html">&lt;p&gt;公欲利其事，必先利其器。同样在软件开发测试的世界里面，正确的使用工具，大大提高效率！&lt;/p&gt;&#xD;
&lt;p&gt;工作中用到不少工具，最近学到不少新工具CI， git， soupUI。 总结一下自己工具的心得：&lt;/p&gt;&#xD;
&lt;p&gt;1. 没有最好的工具，只有最适合自己的工具。&lt;/p&gt;&#xD;
&lt;p&gt;这条告诉我们，学习新工具之前，先了解一下自己的问题或需求。先回答自己想解决什么问题？&lt;/p&gt;&#xD;
&lt;p&gt;2. 工具越强大，暴露的接口越复杂，其学习花的时间和精力越多，长期开看收益也大。&lt;/p&gt;&#xD;
&lt;p&gt;试想我们工厂里面一个复杂机器，我们是如何学习的？同样学习软件工具，也需要花时间和精力去学习。&lt;/p&gt;&#xD;
&lt;p&gt;3. 如何找工具。&lt;/p&gt;&#xD;
&lt;p&gt;如果不知道工具的名字，问身边人或者stackoverflow 不错，Google一下试试。 好的工具，两条：比较久，人气旺！&lt;/p&gt;&#xD;
&lt;p&gt;找人 --》stackoverflow --》google---&amp;gt;文章，书！ 很多问题，都有很好的工具支持开解决，有开源的，和也有闭源的。&lt;/p&gt;&#xD;
&lt;p&gt;4. 学习工具。&lt;/p&gt;&#xD;
&lt;p&gt;找官方文档，找身边的人！工具是自己自己问题的解决方案的外化，学习工具先学习工具背后的原理！同时考虑：&lt;/p&gt;&#xD;
&lt;p&gt;模型是什么？输入是什么？输出是什么？可定制吗？&lt;/p&gt;&#xD;
&lt;p&gt;5. 解决自己的问题，同时集成到自己的系统里面。&lt;/p&gt;&#xD;
&lt;p&gt;最好是自动化起来，一劳永逸！&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;希望大家分享自己心得！&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zhyg6516/aggbug/2303969.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhyg6516/archive/2011/12/27/2303969.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhyg6516/archive/2011/12/22/2297543.html</id><title type="text">Git</title><summary type="text">学习Git1. Open mind .这样才不会墨守陈规，才可以好奇心，接受新观点，新方法，尝试不一样，创新。跑题了。2. Learn tool inserious. When you learn complex machine, you need and couch , take time ,spend effort to master it. So It is to learn new software tool.3. Use the tool correct and efficiency. Read the official document and tutorial with comm</summary><published>2011-12-22T03:52:00Z</published><updated>2011-12-22T03:52:00Z</updated><author><name>RocZhang</name><uri>http://www.cnblogs.com/zhyg6516/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhyg6516/archive/2011/12/22/2297543.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhyg6516/archive/2011/12/22/2297543.html"/><content type="html">&lt;p&gt;学习Git&lt;/p&gt;&#xD;
&lt;p&gt;1. Open mind .这样才不会墨守陈规，才可以好奇心，接受新观点，新方法，尝试不一样，创新。跑题了。&lt;/p&gt;&#xD;
&lt;p&gt;2. Learn tool in&amp;nbsp;serious. &amp;nbsp;When you learn complex machine, you need and couch , take time ,spend effort to master it. So It is to learn new software tool.&lt;/p&gt;&#xD;
&lt;p&gt;3. Use the tool correct and efficiency. &amp;nbsp;Read the official document and tutorial with community.&lt;/p&gt;&#xD;
&lt;p&gt;4. Practice. &amp;nbsp; book + practice. &amp;nbsp;tool come from the mental model, so learn the concept , idea, or model behind the tool before.&lt;/p&gt;&#xD;
&lt;p&gt;5. Share it with community. &amp;nbsp; It will make you understand the tool much more deeply.&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Git :&lt;/p&gt;&#xD;
&lt;p&gt;Doc:&amp;nbsp;&lt;a href="http://progit.org/book/"&gt;http://progit.org/book/&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Difference for merge and rebase: &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;a href="http://www.jarrodspillers.com/2009/08/19/git-merge-vs-git-rebase-avoiding-rebase-hell/"&gt;http://www.jarrodspillers.com/2009/08/19/git-merge-vs-git-rebase-avoiding-rebase-hell/&lt;/a&gt;&amp;nbsp;( see the first comment)&lt;/p&gt;&#xD;
&lt;p&gt;webinfo: &amp;nbsp;&lt;a href="http://blog.longwin.com.tw/2009/05/git-learn-initial-document-2009/"&gt;http://blog.longwin.com.tw/2009/05/git-learn-initial-document-2009/&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Content:&lt;/p&gt;&#xD;
&lt;p&gt;1. Install git&lt;/p&gt;&#xD;
&lt;p&gt;2. Work with git in local&lt;/p&gt;&#xD;
&lt;p&gt;3. Work with git in branch&lt;/p&gt;&#xD;
&lt;p&gt;4. Work with git in remote branch&lt;/p&gt;&#xD;
&lt;p&gt;5. Git collabration model in open source.&lt;/p&gt;&#xD;
&lt;p&gt;6. Github&lt;/p&gt;&#xD;
&lt;p&gt;7. CI integration baseon github.&lt;/p&gt;&#xD;
&lt;p&gt;8. P4-git&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zhyg6516/aggbug/2297543.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhyg6516/archive/2011/12/22/2297543.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhyg6516/archive/2011/11/17/2252382.html</id><title type="text">Forword: ssh server for windows</title><summary type="text">cThe canonical URL of this page should be http://pigtail.net/LRP/printsrv/cygwin-sshd.htmThis page has been tranlated to Bulgarian by Albert Ward, see this link: http://www.fatcow.com/edu/cygwin-sshd-bl/DisclaimerAccording to some cygwin gods, the only official document that you should use is/usr/sh</summary><published>2011-11-17T03:09:00Z</published><updated>2011-11-17T03:09:00Z</updated><author><name>RocZhang</name><uri>http://www.cnblogs.com/zhyg6516/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhyg6516/archive/2011/11/17/2252382.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhyg6516/archive/2011/11/17/2252382.html"/><content type="html">&lt;p&gt;c&lt;/p&gt;&#xD;
&lt;p&gt;The canonical URL of this page should be &amp;nbsp;&lt;a href="http://pigtail.net/LRP/printsrv/cygwin-sshd.htm"&gt;http://pigtail.net/LRP/printsrv/cygwin-sshd.htm&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;This page has been tranlated to Bulgarian by Albert Ward, see this link: &lt;a href="http://www.fatcow.com/edu/cygwin-sshd-bl/" target="_blank"&gt;http://www.fatcow.com/edu/cygwin-sshd-bl/&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://pigtail.net/LRP/printsrv/disclaimer.html"&gt;Disclaimer&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;According to some cygwin gods, the only official document that you should use is&amp;nbsp;&amp;nbsp;&lt;a href="http://pigtail.net/LRP/printsrv/cygwin-doc.html"&gt;/usr/share/doc/Cygwin/openssh.README&lt;/a&gt; which is probably valid, but it seems to aim at users with a fair bit of Linux/Unix knowledge.&lt;br /&gt;The purpose of this tutorial is for Windows users who are perhaps less familiar with Unix commands wanting to try out the famous &lt;a href="http://www.opensource.org/"&gt;Open Source&lt;/a&gt; ssh server (openSSH) on a desktop Windows XP &lt;img src="http://pigtail.net/LRP/windows.png" alt="" width="22" height="17" border="0" /&gt; , Windows Vista or Windows 7 &lt;strong&gt;&lt;img src="http://pigtail.net/LRP/printsrv/vista-logo.png" alt="" width="28" height="28" align="middle" border="0" /&gt;&amp;nbsp;&lt;/strong&gt;.&lt;/p&gt;&#xD;
&lt;p&gt;The behavior of Windows 2003 Server is different. &lt;a href="http://www.cs.bham.ac.uk/~smp/projects/ssh-windows/"&gt;Follow this&amp;nbsp;link&lt;/a&gt; to install OpenSSH on Windows 2003 Server, by Stephen Pillinger of the School of Computer Science, University of Birmingham. Or &lt;a href="http://ist.uwaterloo.ca/~kscully/CygwinSSHD_W2K3.html"&gt;this link&lt;/a&gt; to install Cygwin SSH server on Windows 2003 Server, by &amp;nbsp;Kevin Scully at the University of Waterloo, Ontario, Canada.&lt;/p&gt;&#xD;
&lt;p&gt;There seems to be some problems when using cygwin ssh with McAfee 8.0i. A work around to that problem is available below.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Please don't send any questions to the cygwin mailing list to ask questions about this page as it seems to provoke them severely. They considered and declared the instructions on this page "broken" and "random" but won't constructively say what is "broken"; instead some went on launching personal attacks. The information here is provided "&lt;span style="color: #ff0000;"&gt;as is, in good faith&lt;/span&gt;" with no&amp;nbsp;guarantee it will work. &lt;span style="color: #ff0000;"&gt;If it doesn't work, then it doesn't work.&lt;/span&gt; Don't send any questions to the Cygwin mailing list to ask why to provoke them. If you must go to Cygwin mailing list to ask, you better off &lt;a href="http://pigtail.net/LRP/printsrv/remove-cygwin.html"&gt;completely remove Cygwin&lt;/a&gt;&amp;nbsp;before you go to the mailing list to ask questions and don't even mention that you have looked at this web page (to avoid provoking them off). &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Read this &lt;a href="http://pigtail.net/LRP/printsrv/disclaimer.html"&gt;Disclaimer&lt;/a&gt;.&amp;nbsp; &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Constructive comments are of course welcome, in the original spirit of the Internet, sharing experience and knowledge regarding bug fixes and improvements to benefit other users of the Internet community. My email address is &lt;img src="http://pigtail.net/LRP/printsrv/fong.png" alt="" width="129" height="15" border="0" /&gt;&lt;/p&gt;&#xD;
&lt;hr /&gt;&#xD;
&lt;p&gt;&lt;img style="width: 200px; height: 121px;" src="http://pigtail.net/LRP/printsrv/cygwin-sshd.jpg" alt="cygwin-openssh" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;How to install a &lt;strong&gt;ssh server&lt;/strong&gt; (called sshd, from &lt;a href="http://www.openssh.org/"&gt;OpenSSH&lt;/a&gt;) on a &lt;img src="http://pigtail.net/LRP/windows.png" alt="" width="22" height="17" border="0" /&gt; Windows 2000 or XP&lt;br /&gt;How to install a &lt;strong&gt;sftp server&lt;/strong&gt; on a &lt;img src="http://pigtail.net/LRP/windows.png" alt="" width="22" height="17" border="0" /&gt; Windows 2000 or&amp;nbsp;XP&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://www.investintech.com/" target="_blank"&gt;&lt;img src="http://pigtail.net/LRP/printsrv/investintech.gif" alt="" width="205" height="39" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;If you need a &lt;strong&gt;PDF converter&lt;/strong&gt;, the post powerful &lt;a href="http://www.investintech.com/" target="_blank"&gt;pdf converter&lt;/a&gt; package available is Investintech's &lt;a href="http://www.investintech.com/products/server/absolutepdfserver/absolutepdfservermain/" target="_blank"&gt;pdf server&lt;/a&gt; software bundle.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img style="width: 110px; height: 62px;" src="http://pigtail.net/LRP/printsrv/123-cctv.jpg" alt="g" /&gt;&lt;br /&gt;After you&amp;nbsp;installed OpenSSH, you will find it simple to install application software on your Windows XP/Vista that will effectively turn your PC into a complete &lt;a href="http://www.123-cctv.com/seccams/secsystems.html" target="_blank"&gt;security camera system&lt;/a&gt;. Install &lt;a href="http://www.123-cctv.com/" target="_blank"&gt;security cameras&lt;/a&gt; into the back of your computer and you will have the ability to remotely access your security system over a&amp;nbsp;network or Internet.&lt;/p&gt;&#xD;
&lt;p style="font-weight: bold;"&gt;The ssh server is an emulation of the &lt;span style="font-style: italic;"&gt;UNIX environment and OpenSSH&lt;/span&gt; for Windows, by Redhat, called cygwin.&lt;br /&gt;The file system on your target machine should be journalled (e.g. NTFS) because FAT file system has bugs in file access.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;(1a) &lt;/strong&gt;Login as Administrator&lt;br /&gt;Windows XP &lt;img src="http://pigtail.net/LRP/windows.png" alt="" width="22" height="17" border="0" /&gt;- login as a user with Administrator privilege; &lt;br /&gt;&lt;img src="http://pigtail.net/LRP/windows.png" alt="" width="22" height="17" border="0" /&gt; Windows 2003 Server: login as local admin, it will not work for domain users or domain admin.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-weight: bold;"&gt;(1b)&lt;/span&gt; Make sure the current admin/user has a &lt;span style="font-weight: bold;"&gt;Windows password&lt;/span&gt; set. &lt;br /&gt;If not, use &lt;span style="font-weight: bold;"&gt;&lt;img style="width: 100px; height: 29px;" src="http://pigtail.net/LRP/printsrv/control-xp.png" alt="g" align="middle" /&gt; &lt;/span&gt;Control Panel...User Accounts to create a password. &lt;br /&gt;Just to be on the safe side, after you created a password, logoff and then log in again.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;(2a)&lt;/strong&gt; Create a folder c:\cygwin&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;(2b)&lt;/strong&gt; &lt;img style="width: 38px; height: 32px; border: 0px solid;" src="http://pigtail.net/LRP/printsrv/cygwin.png" alt="g" align="middle" /&gt; Download cygwin's setup.exe from &lt;a href="http://www.cygwin.com/"&gt;http://www.cygwin.com/&lt;/a&gt; and save &lt;strong&gt;setup.exe&lt;/strong&gt; in c:\cygwin&lt;/p&gt;&#xD;
&lt;p&gt;Cygwin's &lt;strong&gt;setup.exe&lt;/strong&gt; has some uncommon properties, &lt;a href="http://pigtail.net/LRP/printsrv/setup-reuse.html"&gt;click here&lt;/a&gt; to find out more.&lt;/p&gt;&#xD;
&lt;p&gt;(2c) &lt;strong&gt;&lt;img src="http://pigtail.net/LRP/printsrv/vista-logo.png" alt="" width="28" height="28" align="middle" border="0" /&gt; &lt;/strong&gt;For Windows 7 and Windows Vista, navigate to c:\cygwin in explorer,&amp;nbsp; right click the setup.exe icon, and select "Run as Administrator". Thanks to David Shanks for his contributions.&lt;/p&gt;&#xD;
&lt;p&gt;(2d) &lt;img src="http://pigtail.net/LRP/windows.png" alt="" width="22" height="17" border="0" /&gt; For Windows XP: Click Start...Run...and type &lt;span style="color: #660000;"&gt;&lt;strong&gt;c:\cygwin\setup.exe&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;If you are asked to select "Just Me" or "All Users", choose "All Users"&lt;/p&gt;&#xD;
&lt;p&gt;When it asks for "&lt;span style="font-weight: bold;"&gt;Local Package Directory&lt;/span&gt;", type&lt;span style="font-weight: bold; color: #cc0000;"&gt; &lt;span style="color: #660000;"&gt;c:\cygwin&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Choose a download site that is "close" to you.&lt;br /&gt;When a selection screen comes up (you can resize the windows&amp;nbsp;to see better),&lt;br /&gt;click the little View button for "Full" view&amp;nbsp; &lt;a href="http://pigtail.net/LRP/printsrv/openssh-setup.png"&gt;&lt;img style="width: 64px; height: 28px; border: 0px solid;" src="http://pigtail.net/LRP/printsrv/view-button.png" alt="g" /&gt;&lt;/a&gt;,&lt;br /&gt;find the package "&lt;span style="font-weight: bold; color: #660000;"&gt;openssh&lt;/span&gt;", click on the word "&lt;strong&gt;skip&lt;/strong&gt;" so that an &lt;img style="width: 18px; height: 21px; border: 0px solid;" src="http://pigtail.net/LRP/printsrv/x-box.png" alt="x" /&gt; appears in Column B,&lt;br /&gt;see &lt;a href="http://pigtail.net/LRP/printsrv/openssh-setup.png"&gt;this illustration.&lt;/a&gt;&lt;br /&gt;(optional) find the package "&lt;span style="color: #660000;"&gt;&lt;strong&gt;tcp_wrappers&lt;/strong&gt;&lt;/span&gt;", click on the word "&lt;strong&gt;skip&lt;/strong&gt;" so that an &lt;img style="width: 18px; height: 21px; border: 0px solid;" src="http://pigtail.net/LRP/printsrv/x-box.png" alt="x" /&gt; appears in Column B,&lt;br /&gt;if you add "tcp_wrapper", you will most likely get "&lt;span style="font-weight: bold; color: #990000;"&gt;ssh-exchange-identification: Connectiion closed by remote host&lt;/span&gt;" error.&lt;br /&gt;If you get that error, edit the file &amp;nbsp;&lt;span style="font-weight: bold;"&gt;/etc/hosts.allow&lt;/span&gt; and add these two lines&lt;br /&gt;&lt;span style="font-weight: bold; color: #990000;"&gt;ALL: 127.0.0.1/32 : allow &amp;nbsp;&lt;/span&gt;&lt;br style="font-weight: bold; color: #990000;" /&gt;&lt;span style="font-weight: bold; color: #990000;"&gt;ALL: [::1]/128: allow&lt;/span&gt;&lt;br /&gt;before the&amp;nbsp;PARANOID line.&lt;br /&gt;(optional) find the package "&lt;span style="font-weight: bold; color: #660000;"&gt;diffutils&lt;/span&gt;", click on the word "&lt;strong&gt;skip&lt;/strong&gt;" so that an &lt;img style="width: 18px; height: 21px; border: 0px solid;" src="http://pigtail.net/LRP/printsrv/x-box.png" alt="x" /&gt; appears in Column B,&amp;nbsp;&lt;br /&gt;find the package "&lt;span style="color: #660000;"&gt;&lt;strong&gt;zlib&lt;/strong&gt;&lt;/span&gt;", click on the word "&lt;strong&gt;skip&lt;/strong&gt;" (it should be already selected) so that an &lt;img style="width: 18px; height: 21px; border: 0px solid;" src="http://pigtail.net/LRP/printsrv/x-box.png" alt="x" /&gt; appears in Column B.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;span style="color: black;"&gt;Notes:&lt;/span&gt;&lt;br /&gt;tcp_wrappers provides host-based access control and possible need you to edit "/etc/hosts.allow"&amp;nbsp;&lt;br /&gt;zlib is the compression and decompression library that is used by many programs.&lt;br /&gt;&lt;span style="color: black;"&gt;Thanks to Lex Sheehan on the diffutils tips, and Thomas Braun for the hosts.allow tips.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Click &lt;img style="width: 75px; height: 24px; border: 0px solid;" src="http://pigtail.net/LRP/printsrv/next-button.png" alt="next" align="middle" /&gt; to start installing cygwin and ssh.&lt;br /&gt;Size of the basic cygwin system is more than 50 Meg, this may take a while.&lt;/p&gt;&#xD;
&lt;p&gt;Take a coffee break and wait.&lt;img style="width: 72px; height: 73px;" src="http://pigtail.net/LRP/printsrv/java.gif" alt="g" align="middle" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://www.sherweb.com/hosted-exchange"&gt;&lt;img style="width: 176px; height: 41px; border: 0px solid;" src="http://pigtail.net/LRP/printsrv/sherweb.gif" alt="SherWeb" /&gt;&lt;/a&gt;&lt;br /&gt;While you wait, take a look at SherWeb's &lt;a href="http://www.sherweb.com/hosted-exchange" target="_blank"&gt;Exchange server hosting&lt;/a&gt;.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;(3) This paragraph is no longer valid for newer versions of Cygwin 1.7.2 and later. &lt;br /&gt;REF: &amp;nbsp;http://www.cygwin.com/cygwin-ug-net/ov-new1.7.html&lt;br /&gt;&lt;/strong&gt;&lt;span style="color: silver;"&gt;Right click My Computer, Properties, Advanced, Environment Variables&lt;/span&gt;&lt;br style="color: silver;" /&gt;&lt;span style="color: silver;"&gt;See &lt;/span&gt;&lt;a style="color: silver;" href="http://pigtail.net/LRP/printsrv/system-variables.png"&gt;this illustration (red dots)&lt;/a&gt;&lt;br style="color: silver;" /&gt;&lt;span style="color: silver;"&gt;Click the "New" &lt;/span&gt;&lt;img style="width: 78px; color: silver; height: 23px; border: 0px solid;" src="http://pigtail.net/LRP/printsrv/new-button.png" alt="new" /&gt;&lt;span style="color: silver;"&gt; button to add a new entry to &lt;/span&gt;&lt;strong style="color: silver;"&gt;System variables&lt;/strong&gt;&lt;span style="color: silver;"&gt;: &lt;/span&gt;&lt;br style="color: silver;" /&gt;&lt;span style="color: silver;"&gt;variable name is &lt;/span&gt;&lt;strong style="color: silver;"&gt;CYGWIN &lt;br /&gt;&lt;/strong&gt;&lt;span style="color: silver;"&gt;variable value is&amp;nbsp;&lt;/span&gt;&lt;span style="color: #660000;"&gt;&lt;strong&gt;ntsec tty&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #999999;"&gt;Note: by setting variable ntsec, it will break sshd on MinGW by generating the error "WARNING: UNPROTECTED PRIVATE KEY FILE".&lt;/span&gt;&lt;br style="color: #999999;" /&gt;&lt;span style="color: #999999;"&gt;Thanks to Peter Rust for this issue&lt;/span&gt;.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;(4)&lt;/strong&gt; Right click My Computer, Properties, Advanced, Environment Variables&lt;br /&gt;See &lt;a href="http://pigtail.net/LRP/printsrv/system-variables.png"&gt;this illustration (green dots)&lt;/a&gt;&lt;br /&gt;Select the Path variable and click the "Edit" &lt;img style="width: 75px; height: 21px; border: 0px solid;" src="http://pigtail.net/LRP/printsrv/edit-button.png" alt="edit" /&gt; button:&lt;br /&gt;append&amp;nbsp; &lt;strong&gt;&lt;span style="color: #660000;"&gt;;c:\cygwin\bin&lt;/span&gt;&lt;span style="color: #cc0033;"&gt; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;to the end of the existing variable string.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;(5)&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;table style="width: 100%; text-align: left;" border="1" cellspacing="2" cellpadding="2"&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;For &lt;strong&gt;Windows 7 and Windows Vista &lt;img src="http://pigtail.net/LRP/printsrv/vista-logo.png" alt="" width="28" height="28" align="middle" border="0" /&gt;&amp;nbsp;&lt;/strong&gt;you may need to do additional uninstall steps if previous attempts to install sshd fails.&lt;br /&gt;&lt;a href="http://pigtail.net/LRP/printsrv/vista-cygwin.txt" target="_blank"&gt;Click here&lt;/a&gt; on how to do clean uninstall.&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;p&gt;For Windwos XP&lt;img src="http://pigtail.net/LRP/windows.png" alt="" width="22" height="17" border="0" /&gt;, you should login as a user with admin privilege and that user belongs to a Windows "Users" group.&lt;/p&gt;&#xD;
&lt;p&gt;For &lt;strong&gt;Windows XP&amp;nbsp;&lt;/strong&gt;&lt;strong&gt;, &lt;/strong&gt;open a cygwin window by double clicking the&lt;img style="width: 38px; height: 32px; border: 0px solid;" src="http://pigtail.net/LRP/printsrv/cygwin.png" alt="g" align="middle" /&gt; icon; a black screen pops open,&lt;br /&gt;For &lt;strong&gt;Windows Vista and Windows 7 &lt;img src="http://pigtail.net/LRP/printsrv/vista-logo.png" alt="" width="28" height="28" align="middle" border="0" /&gt; &lt;/strong&gt;,&amp;nbsp;right click the &lt;img style="width: 38px; height: 32px; border: 0px solid;" src="http://pigtail.net/LRP/printsrv/cygwin.png" alt="g" align="middle" /&gt; icon and choose "run as administrator"; a black screen pops open, type&lt;/p&gt;&#xD;
&lt;p&gt;With recent releases of cygwin, there are many permission problems. Add these 6 commands as work around:&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #660000;"&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-weight: bold; color: #660000;"&gt;chmod +r &amp;nbsp;/etc/passwd &lt;br /&gt;chmod u+w /etc/passwd&lt;br /&gt;chmod&amp;nbsp;+r &amp;nbsp;/etc/group&lt;br /&gt;chmod u+w /etc/group&lt;br /&gt;chmod &amp;nbsp;755 &amp;nbsp;/var &amp;nbsp;&lt;br /&gt;touch /var/log/sshd.log&lt;br /&gt;chmod 664 /var/log/sshd.log&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: #660000;"&gt;ssh-host-config &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/strong&gt;&lt;span style="color: #660000;"&gt;&lt;span style="color: #000000;"&gt;(manuall answer &lt;span style="font-weight: bold;"&gt;Yes&lt;/span&gt; to questions except)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;If the script says "This script plans to use cyg_server, Do you want to use a different name? &amp;nbsp;Answer Yes, and type sshd as the user name.&lt;/p&gt;&#xD;
&lt;p style="font-weight: bold; color: #990000;"&gt;cyglsa-config&lt;/p&gt;&#xD;
&lt;p&gt;reboot the computer.&lt;/p&gt;&#xD;
&lt;p&gt;Thanks to David Spillett of Londdon, UK on the permission tips.&lt;br /&gt;Thanks to Dave Lennert of Portland Oregon for the WIndows 7 tips.&lt;br /&gt;Thanks to Frank Martin for the cyglsa-config tips.&lt;/p&gt;&#xD;
&lt;p&gt;When the script stops and asks you for "&lt;strong&gt;environment variable CYGWIN=&lt;/strong&gt;" &amp;nbsp; &amp;nbsp; your answer is &lt;span style="color: #660000;"&gt;&lt;strong&gt;ntsec tty&lt;/strong&gt;&lt;/span&gt;&amp;nbsp; &lt;br /&gt;(&lt;a href="http://pigtail.net/LRP/printsrv/ntsec.html"&gt;click here&lt;/a&gt; for an explanation of &lt;strong&gt;ntsec&lt;/strong&gt;) &lt;br /&gt;(&lt;a href="http://pigtail.net/LRP/printsrv/tty.html"&gt;click here&lt;/a&gt; for an explanation of &lt;strong&gt;tty&lt;/strong&gt; )&lt;br /&gt;(thanks to Peter Reutemann of New Zealand and Ron Dozier of University of Delaware)&lt;br /&gt;(thanks to Mike and Michael Pechner for the Windows Vista tip)&lt;br /&gt;(thanks to Kevin Hilton on the Vista tips in the ssh-host-config section)&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-style: italic;"&gt;See Note 25 near the end of this web page if you need to run ssh-host-config again.&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Run "rebaseall" as desribed in &lt;a href="http://www.acooke.org/cute/CygwinSSHS0.html" target="_blank"&gt;http://www.acooke.org/cute/CygwinSSHS0.html&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;(6) &lt;/strong&gt;While you are still in the (black) cygwin screen, &lt;span style="font-weight: bold;"&gt;start the sshd service, &lt;/span&gt;type&lt;br /&gt;&lt;strong&gt;&lt;span style="color: #660000;"&gt;net start sshd &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;or&lt;br /&gt;&lt;strong&gt;&lt;span style="color: #660000;"&gt;cygrunsrv &amp;nbsp;--start&amp;nbsp; sshd&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://pigtail.net/LRP/printsrv/stop-sshd.html"&gt;Click here&lt;/a&gt; on how to stop the sshd service.&lt;/p&gt;&#xD;
&lt;p&gt;If the service fails to start, try (thanks to Ross Beveridge of HP for this tip)&lt;br /&gt;&lt;span style="font-weight: bold; color: #660000;"&gt;chown system /etc/ssh*&lt;/span&gt;&lt;br style="font-weight: bold; color: #660000;" /&gt;&lt;span style="font-weight: bold; color: #660000;"&gt;chown system /var/empty&lt;/span&gt;&lt;span style="color: #660000;"&gt;&lt;span style="color: black;"&gt; &amp;nbsp;or&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: #660000;"&gt; chown sshd_server /var/empty&lt;/span&gt;&lt;br style="font-weight: bold; color: #660000;" /&gt;&lt;span style="font-weight: bold; color: #660000;"&gt;net start sshd&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;If you get "&lt;span style="font-weight: bold; color: #990000;"&gt;ssh-exchange-identification: Connectiion closed by remote host&lt;/span&gt;" error.&lt;br /&gt;edit the file &amp;nbsp;&lt;span style="font-weight: bold;"&gt;/etc/hosts.allow&lt;/span&gt; and add these two lines&lt;br /&gt;&lt;span style="font-weight: bold; color: #990000;"&gt;ALL: 127.0.0.1/32 : allow &amp;nbsp;&lt;/span&gt;&lt;br style="font-weight: bold; color: #990000;" /&gt;&lt;span style="font-weight: bold; color: #990000;"&gt;ALL: [::1]/128: allow&lt;/span&gt;&lt;br /&gt;before the&amp;nbsp;PARANOID line. Thanks to &lt;span style="color: #808080;"&gt;&lt;span style="color: black;"&gt;Thomas Braun for the hosts.allow tips.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;(7)&lt;/strong&gt; Make sure &lt;span style="font-weight: bold;"&gt;every Windows user&lt;/span&gt; has a password set, if not,&amp;nbsp;&lt;br /&gt;go to&amp;nbsp;&lt;span style="font-weight: bold;"&gt;&lt;img style="width: 100px; height: 29px;" src="http://pigtail.net/LRP/printsrv/control-xp.png" alt="g" align="middle" /&gt; Control Panel.&lt;/span&gt;...&lt;span style="font-weight: bold;"&gt;User Accounts&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;create&lt;/span&gt; a password.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;(7a)&lt;/strong&gt; Make sure every Windows user has done the following at least once: &lt;br /&gt;Login in as the Windows user, pop a console command screen by clicking &lt;strong&gt;Start...Run....&lt;/strong&gt;&lt;span style="color: #800000;"&gt;&lt;strong&gt;cmd&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;Thanks to Magno Corr&amp;ecirc;a of Brazil for the tip in (7a)&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-weight: bold;"&gt;(8)&lt;/span&gt; &lt;img style="width: 72px; height: 12px;" src="http://pigtail.net/LRP/printsrv/important.png" alt="important" /&gt; Pop a cygwin &lt;img src="http://pigtail.net/LRP/printsrv/cygwin.png" alt="g" width="38" height="32" align="middle" border="0" /&gt;window, harmonize Windows user information with cygwin, otherwise they cannot login&lt;br /&gt;&lt;span style="font-weight: bold; color: #660000;"&gt;mkpasswd&amp;nbsp;&amp;nbsp; -cl &amp;nbsp; &amp;gt; &amp;nbsp; /etc/passwd&lt;/span&gt;&lt;br style="font-weight: bold; color: #660000;" /&gt;&lt;span style="font-weight: bold; color: #660000;"&gt;mkgroup &amp;nbsp; --local &amp;nbsp;&amp;nbsp; &amp;gt; &amp;nbsp; /etc/group&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;If your XP logs on to a domain, you most likely have to manually edit /etc/group. &lt;a href="http://pigtail.net/LRP/printsrv/passwd-group.html"&gt;See this page&lt;/a&gt;.&lt;/p&gt;&#xD;
&lt;p&gt;If &amp;nbsp;your local account &lt;span style="font-weight: bold; font-style: italic;"&gt;name&lt;/span&gt; is the same as the domain name, then you would need to use Windows's User admin function to&lt;br /&gt;rename the loacal account from &lt;span style="font-weight: bold; font-style: italic;"&gt;name&lt;/span&gt; to &lt;span style="font-weight: bold; font-style: italic;"&gt;name.local&lt;br /&gt;&lt;/span&gt;Then rebuild the passwd and group files as shown above, then edit the /etc/group file as shown above. Open firewall's TCP port 22&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;(Thanks to Christopher Poda of Venturi Wireless, Sunnyvale, California)&lt;/p&gt;&#xD;
&lt;p&gt;If your XP logs on to a domain, you may want to edit /etc/passwd to replace &lt;span style="font-weight: bold;"&gt;/home/username&lt;/span&gt; by &lt;span style="font-weight: bold;"&gt;//unc_server/path_to_home&amp;nbsp;&lt;br /&gt;&lt;/span&gt;(thanks to Geoff Thomas)&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #800000;"&gt;mkpasswd&lt;/span&gt; creates a password file from Windows' user list, &lt;a href="http://pigtail.net/LRP/printsrv/mkpasswd.html"&gt;click here&lt;/a&gt; for more details.&lt;br /&gt;&lt;span style="color: #800000;"&gt;mkgroup&lt;/span&gt; creates a group file from Windows' user list, &lt;a href="http://pigtail.net/LRP/printsrv/mkgroup.html"&gt;click here&lt;/a&gt; for more details.&lt;br /&gt;Thanks to John Skiggn of Cingular Wireless in Redmond, Washington for his tweak on domain user /etc/group&lt;/p&gt;&#xD;
&lt;hr style="width: 100%; height: 2px;" /&gt;&#xD;
&lt;p&gt;Test to see if sshd is working, pop a cygwin &lt;img src="http://pigtail.net/LRP/printsrv/cygwin.png" alt="g" width="38" height="32" align="middle" border="0" /&gt;window (note: the command below is &lt;span style="color: #cc0000;"&gt;case sensitive&lt;/span&gt;)&lt;br /&gt;&lt;span style="font-weight: bold; color: #660000;"&gt;whoami&lt;/span&gt;&lt;span style="color: #660000;"&gt;&lt;strong&gt;&lt;br /&gt;ssh &amp;nbsp; &amp;nbsp;localhost&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;or&lt;br /&gt;&lt;span style="color: #660000;"&gt;&lt;strong&gt;ssh&amp;nbsp; -vvv&amp;nbsp; localhost&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;or&lt;strong&gt;&lt;span style="color: #660000;"&gt;&lt;br /&gt;ssh&amp;nbsp;&amp;nbsp;&amp;nbsp; "$USERNAME@127.0.0.1"&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;if ssh&amp;nbsp;complains "The authenticity of host xx.xx.xx.xx can't be established .... Are you sure you want to continue connecting (yes/no)?" &amp;nbsp;Answer &lt;strong&gt;&lt;span style="color: #660000;"&gt;yes &lt;/span&gt;&lt;/strong&gt;&amp;nbsp;(Thanks to Daniel Griscom of Suitable Systems)&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img style="width: 15px; height: 15px;" src="http://pigtail.net/LRP/printsrv/no-smile.png" alt="g" /&gt; If you get an error message like "&lt;span style="font-weight: bold;"&gt;ssh-exchange-identification: Connection closed by remote host&lt;/span&gt;",&lt;br /&gt;it is probably caused by McAfee 8.0i, see &lt;a href="http://pigtail.net/LRP/printsrv/mcafee-fix.html"&gt;this page about the fix&lt;/a&gt;. (Thanks to Ron Dozier of University of Delaware, USA)&lt;/p&gt;&#xD;
&lt;p&gt;Error is also related to &lt;span style="font-weight: bold;"&gt;/etc/hosts.allow&lt;/span&gt; file, see &lt;a href="http://www.cygwin.com/ml/cygwin/2008-12/msg00678.html" target="_blank"&gt;http://www.cygwin.com/ml/cygwin/2008-12/msg00678.html&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img style="width: 15px; height: 15px;" src="http://pigtail.net/LRP/printsrv/no-smile.png" alt="g" /&gt; If you get an error message like "&lt;span style="font-weight: bold;"&gt;entry point _getreent&lt;/span&gt;", or "&lt;span style="font-weight: bold;"&gt;QuerryService Status: Win32 error 1062&lt;/span&gt;", it is probably&lt;br /&gt;caused by the existance of an older version of "cygwin1.dll" located in the search path. &lt;br /&gt;Do a full serarch of "cygwin1.dll" and remove the old version, except the current version at c:\cygwin\bin &amp;nbsp;(Thanks to Joe britton)&lt;/p&gt;&#xD;
&lt;p&gt;If you get a prompt without error messages, type&lt;br /&gt;&lt;span style="font-weight: bold; color: #660000;"&gt;cd&amp;nbsp;&amp;nbsp; /cygdrive/c&lt;br /&gt;lsc&lt;/span&gt;&lt;br /&gt;if you see a directory listing, &lt;span style="font-weight: bold;"&gt;success&lt;/span&gt;! &lt;img style="width: 15px; height: 15px;" src="http://pigtail.net/LRP/printsrv/smile.png" alt="g" /&gt; &lt;img style="width: 15px; height: 15px;" src="http://pigtail.net/LRP/printsrv/smile.png" alt="g" /&gt;&amp;nbsp;&lt;img style="width: 15px; height: 15px;" src="http://pigtail.net/LRP/printsrv/smile.png" alt="g" /&gt;&lt;br /&gt;(type &lt;strong&gt;&lt;span style="color: #660000;"&gt;exit&lt;/span&gt;&lt;/strong&gt; to end the cygwin ssh session)&amp;nbsp;&amp;nbsp; &lt;br /&gt;Thanks to Roger Pack for his tips clarifying between Microsoft's &lt;strong&gt;ls.exe&lt;/strong&gt; (installed by MS compilers) and cygwin's &lt;strong&gt;ls.exe&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;If you have a Windows&amp;nbsp;username that contains space, expand the space into \ [space], &lt;br /&gt;e.g. if the Windows login name is &amp;nbsp;&lt;span style="font-weight: bold;"&gt;Mickey mouse&lt;/span&gt;&lt;span style="font-weight: bold; color: #660000;"&gt;&lt;br /&gt;ssh &amp;nbsp;Mickey\ &amp;nbsp;mouse@127.0.0.1&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;If you have a Unix system that does not know what to do with TERM cygwin, add &lt;a href="http://pigtail.net/LRP/printsrv/term-cygwin.html"&gt;these scripts&lt;/a&gt; to .login&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-style: italic;"&gt;If you have troubles ssh into the server, try run &lt;/span&gt;&lt;span style="color: #660000;"&gt;&lt;strong&gt;ssh-user-configc&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zhyg6516/aggbug/2252382.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhyg6516/archive/2011/11/17/2252382.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhyg6516/archive/2011/11/14/2248778.html</id><title type="text">CI- hudson 远程部署</title><summary type="text">Hudson 里面可以创建Job，去执行自动部署，需要让远程的服务器执行一些脚本。 问题出来了：CI如何告诉远程机器执行脚本？在Hudson里面有插件，支持ssh,和Powershell 可以做到。目前环境是window7作为hudson 的服务器， window2003 sp2 II6 为需要部署的环境。 下面用不同的办法去尝试：第一个当然是ssh。服务器开启sshd 服务，CIserver 作为客户端。服务器可以用cygwin作为一个sshd服务器，或者安装sshd一个单独服务器opensshd。但是window下面的IIS的命令行管理工具是居然是一个VBscript。在cygin 里面调</summary><published>2011-11-14T10:21:00Z</published><updated>2011-11-14T10:21:00Z</updated><author><name>RocZhang</name><uri>http://www.cnblogs.com/zhyg6516/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhyg6516/archive/2011/11/14/2248778.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhyg6516/archive/2011/11/14/2248778.html"/><content type="html">&lt;p&gt;Hudson 里面可以创建Job，去执行自动部署，需要让远程的服务器执行一些脚本。 问题出来了：CI如何告诉远程机器执行脚本？&lt;/p&gt;&#xD;
&lt;p&gt;在Hudson里面有插件，支持ssh,和Powershell 可以做到。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;目前环境是window7作为hudson 的服务器， window2003 sp2 II6 为需要部署的环境。 下面用不同的办法去尝试：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;第一个当然是ssh。服务器开启sshd 服务，CIserver 作为客户端。&lt;/p&gt;&#xD;
&lt;p&gt;服务器可以用cygwin作为一个sshd服务器，或者安装sshd一个单独服务器opensshd。但是window下面的IIS的命令行管理工具是居然是一个VBscript。&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;在cygin 里面调用vbscript 的解析器Cscript去执行，类似 Script iisweb.vbs /start website. 居然执行不了。 排除路径错误，还是执行不了。 没有解决，网上一搜问题一片，目前没有解决。应该是Script 解释器引擎，与cygwin的环境不一致。&lt;/p&gt;&#xD;
&lt;p&gt;转换思路，尝试找其他exe工具，发现 appcmd.exe. &amp;nbsp;在window2008上面可以运行,不错，但是window2003不能运行。典型window不向后兼容。放弃!&lt;/p&gt;&#xD;
&lt;p&gt;发现webdeply.exe, 同样只支持window2003以上版本.悲摧！&lt;/p&gt;&#xD;
&lt;p&gt;时间不等人，再想办法.&lt;/p&gt;&#xD;
&lt;p&gt;IISRESET,也可以工作！居然支持完成调用。但是杀伤力气太大，每次都重启IIS。先用这个，项目要升级到2008/II7，到时问题自动解决！&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;第二个办事powershell2.0。&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;首先powershell2.0 在window2003上面没有缺省安装。&lt;/p&gt;&#xD;
&lt;p&gt;安装powershell2.0： powershell2.0是window2003 的一个补丁包WindowsServer2003-KB968930-x64-ENG（&lt;a href="http://www.microsoft.com/download/en/confirmation.aspx?id=4045"&gt;http://www.microsoft.com/download/en/confirmation.aspx?id=4045&lt;/a&gt;）. 需要在administrator权限下面安装。&lt;/p&gt;&#xD;
&lt;p&gt;尝试远程登录：&lt;/p&gt;&#xD;
&lt;p&gt;wiki： powershell&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Windows_PowerShell"&gt;http://en.wikipedia.org/wiki/Windows_PowerShell&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;powershell 远程访问：&amp;nbsp;&lt;a href="http://tech.ccidnet.com/art/3539/20100801/2102911_1.html"&gt;http://tech.ccidnet.com/art/3539/20100801/2102911_1.html&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;记录下来，下次更新。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zhyg6516/aggbug/2248778.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhyg6516/archive/2011/11/14/2248778.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhyg6516/archive/2011/09/02/2163933.html</id><title type="text">s3cmd 安装使用指南</title><summary type="text">https://wangyan.org/blog/s3cmd-how-to-use.htmls3cmd 安装使用指南s3cmd 是一款 Amazon S3 命令行工具。它不仅能上传、下载、同步，还能设置权限，下面是完整的安装使用指南。一、安装方法方法一：（Debian/Ubuntu ）123wget -O- -q http://s3tools.org/repo/deb-all/stable/s3tools.key | sudo apt-key add -wget -O/etc/apt/sources.list.d/s3tools.list http://s3tools.org/repo/deb</summary><published>2011-09-02T08:26:00Z</published><updated>2011-09-02T08:26:00Z</updated><author><name>RocZhang</name><uri>http://www.cnblogs.com/zhyg6516/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhyg6516/archive/2011/09/02/2163933.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhyg6516/archive/2011/09/02/2163933.html"/><content type="html">&lt;p&gt;https://wangyan.org/blog/s3cmd-how-to-use.html&lt;/p&gt;&#xD;
&lt;h2 &gt;&lt;a href="https://wangyan.org/blog/s3cmd-how-to-use.html"&gt;s3cmd 安装使用指南&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://s3tools.org/s3cmd"&gt;s3cmd&lt;/a&gt; 是一款 &lt;a href="http://s3.amazonaws.com/"&gt;Amazon S3&lt;/a&gt; 命令行工具。它不仅能上传、下载、同步，还能设置权限，下面是完整的安装使用指南。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;一、安装方法&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;方法一：（Debian/Ubuntu ）&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
2&#xD;
3&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;&lt;span style="color: #c20cb9; font-weight: bold;"&gt;wget&lt;/span&gt; &lt;span style="color: #660033;"&gt;-O-&lt;/span&gt; &lt;span style="color: #660033;"&gt;-q&lt;/span&gt; http:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;s3tools.org&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;repo&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;deb-all&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;stable&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;s3tools.key &lt;span style="color: #000000; font-weight: bold;"&gt;|&lt;/span&gt; &lt;span style="color: #c20cb9; font-weight: bold;"&gt;sudo&lt;/span&gt; &lt;span style="color: #c20cb9; font-weight: bold;"&gt;apt-key&lt;/span&gt; add -&#xD;
&lt;span style="color: #c20cb9; font-weight: bold;"&gt;wget&lt;/span&gt; -O&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;etc&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;apt&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;sources.list.d&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;s3tools.list http:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;s3tools.org&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;repo&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;deb-all&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;stable&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;s3tools.list&#xD;
&lt;span style="color: #c20cb9; font-weight: bold;"&gt;apt-get&lt;/span&gt; update &lt;span style="color: #000000; font-weight: bold;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color: #c20cb9; font-weight: bold;"&gt;sudo&lt;/span&gt; &lt;span style="color: #c20cb9; font-weight: bold;"&gt;apt-get&lt;/span&gt; &lt;span style="color: #c20cb9; font-weight: bold;"&gt;install&lt;/span&gt; s3cmd&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;方法二：&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
2&#xD;
3&#xD;
4&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;&lt;span style="color: #c20cb9; font-weight: bold;"&gt;wget&lt;/span&gt; http:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;nchc.dl.sourceforge.net&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;project&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;s3tools&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;s3cmd&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;1.0.0&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;s3cmd-1.0.0.tar.gz&#xD;
&lt;span style="color: #c20cb9; font-weight: bold;"&gt;tar&lt;/span&gt; &lt;span style="color: #660033;"&gt;-zxf&lt;/span&gt; s3cmd-1.0.0.tar.gz &lt;span style="color: #660033;"&gt;-C&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;usr&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;local&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;&#xD;
&lt;span style="color: #c20cb9; font-weight: bold;"&gt;mv&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;usr&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;local&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;s3cmd-1.0.0&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;usr&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;local&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;s3cmd&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;&#xD;
&lt;span style="color: #c20cb9; font-weight: bold;"&gt;ln&lt;/span&gt; &lt;span style="color: #660033;"&gt;-s&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;usr&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;local&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;s3cmd&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;s3cmd &lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;usr&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;bin&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;s3cmd&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;strong&gt;二、使用方法&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1、配置，主要是 Access Key ID 和 Secret Access Key&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;s3cmd &lt;span style="color: #660033;"&gt;--configure&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;2、列举所有 Buckets。（bucket 相当于根文件夹）&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;s3cmd &lt;span style="color: #c20cb9; font-weight: bold;"&gt;ls&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;3、创建 bucket，且 bucket 名称是唯一的，不能重复。&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;s3cmd mb s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;4、删除空 bucket&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;s3cmd rb s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;5、列举 Bucket 中的内容&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;s3cmd &lt;span style="color: #c20cb9; font-weight: bold;"&gt;ls&lt;/span&gt; s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;6、上传 file.txt 到某个 bucket，&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;s3cmd put file.txt s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;file.txt&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;7、上传并将权限设置为所有人可读&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;s3cmd put &lt;span style="color: #660033;"&gt;--acl-public&lt;/span&gt; file.txt s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;file.txt&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;8、批量上传文件&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;s3cmd put .&lt;span style="color: #000000; font-weight: bold;"&gt;/*&lt;/span&gt; s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;9、下载文件&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;s3cmd get s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;file.txt file.txt&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;10、批量下载&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;s3cmd get s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;span style="color: #000000; font-weight: bold;"&gt;/*&lt;/span&gt; .&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;11、删除文件&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;s3cmd del s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;file.txt&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;12、来获得对应的bucket所占用的空间大小&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;s3cmd &lt;span style="color: #c20cb9; font-weight: bold;"&gt;du&lt;/span&gt; &lt;span style="color: #660033;"&gt;-H&lt;/span&gt; s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;strong&gt;三、目录处理规则&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;以下命令都能将dir1 中的文件上传至my-bucket-name，但效果只截然不同的。&lt;/p&gt;&#xD;
&lt;p&gt;1）dir1 不带"/"斜杠，那么dir1会作为文件路径的一部分，相当于上传整个dir1目录，即类似 "cp -r dir1/"&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
2&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;~&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;demo$ s3cmd put &lt;span style="color: #660033;"&gt;-r&lt;/span&gt; dir1 s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;&#xD;
dir1&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;file1-&lt;span style="color: #000000;"&gt;1&lt;/span&gt;.txt -&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt; s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;dir1&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;file1-&lt;span style="color: #000000;"&gt;1&lt;/span&gt;.txt  &lt;span style="color: #7a0874; font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt; of &lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #7a0874; font-weight: bold;"&gt;]&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;2）带"/"斜杠的 dir1，相当于上传dir1目录下的所有文件，即类似 "cp ./* "&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
2&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;~&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;demo$ s3cmd put &lt;span style="color: #660033;"&gt;-r&lt;/span&gt; dir1&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt; s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;&#xD;
dir1&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;file1-&lt;span style="color: #000000;"&gt;1&lt;/span&gt;.txt -&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt; s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;file1-&lt;span style="color: #000000;"&gt;1&lt;/span&gt;.txt  &lt;span style="color: #7a0874; font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt; of &lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #7a0874; font-weight: bold;"&gt;]&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;strong&gt;四、同步方法&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这是s3cmd 使用难点，但却是最实用的功能。官方使用说明见&lt;a href="http://s3tools.org/s3cmd-sync"&gt;《s3cmd sync HowTo》&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;首先明确，同步操作是要进行MD5校验的，只有当文件不同时，才会被传输。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;4.1、常规同步操作&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1、同步当前目录下所有文件&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;s3cmd &lt;span style="color: #c20cb9; font-weight: bold;"&gt;sync&lt;/span&gt;  .&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;  s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;2、加 "--dry-run"参数后，仅列出需要同步的项目，不实际进行同步。&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;s3cmd &lt;span style="color: #c20cb9; font-weight: bold;"&gt;sync&lt;/span&gt;  &lt;span style="color: #660033;"&gt;--dry-run&lt;/span&gt; .&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;  s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;3、加 " --delete-removed"参数后，会删除本地不存在的文件。&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;s3cmd &lt;span style="color: #c20cb9; font-weight: bold;"&gt;sync&lt;/span&gt;  &lt;span style="color: #660033;"&gt;--delete-removed&lt;/span&gt; .&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;  s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;4、加 " --skip-existing"参数后，不进行MD5校验，直接跳过本地已存在的文件。&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;s3cmd &lt;span style="color: #c20cb9; font-weight: bold;"&gt;sync&lt;/span&gt;  &lt;span style="color: #660033;"&gt;--skip-existing&lt;/span&gt; .&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;  s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;strong&gt;4.2、高级同步操作&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;4.2.1、排除、包含规则（--exclude 、--include）&lt;/p&gt;&#xD;
&lt;p&gt;file1-1.txt被排除，file2-2.txt同样是txt格式却能被包含。&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
2&#xD;
3&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;~&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;demo$ s3cmd &lt;span style="color: #c20cb9; font-weight: bold;"&gt;sync&lt;/span&gt; &lt;span style="color: #660033;"&gt;--dry-run&lt;/span&gt; &lt;span style="color: #660033;"&gt;--exclude&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;'*.txt'&lt;/span&gt; &lt;span style="color: #660033;"&gt;--include&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;'dir2/*'&lt;/span&gt; .&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;  s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;&#xD;
exclude: dir1&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;file1-&lt;span style="color: #000000;"&gt;1&lt;/span&gt;.txt&#xD;
upload: .&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;dir2&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;file2-&lt;span style="color: #000000;"&gt;2&lt;/span&gt;.txt -&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt; s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;dir2&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;file2-&lt;span style="color: #000000;"&gt;2&lt;/span&gt;.txt&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;4.2.2、从文件中载入排除或包含规则。(--exclude-from、--include-from)&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;s3cmd &lt;span style="color: #c20cb9; font-weight: bold;"&gt;sync&lt;/span&gt;  &lt;span style="color: #660033;"&gt;--exclude-from&lt;/span&gt; pictures.exclude .&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;  s3:&lt;span style="color: #000000; font-weight: bold;"&gt;//&lt;/span&gt;my-bucket-name&lt;span style="color: #000000; font-weight: bold;"&gt;/&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;pictures.exclude 文件内容&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
2&#xD;
3&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;&lt;span style="color: #666666; font-style: italic;"&gt;# Hey, comments are allowed here ;-)&lt;/span&gt;&#xD;
&lt;span style="color: #000000; font-weight: bold;"&gt;*&lt;/span&gt;.jpg&#xD;
&lt;span style="color: #000000; font-weight: bold;"&gt;*&lt;/span&gt;.gif&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;4.2.3、排除或包含规则支持正则表达式&lt;/p&gt;&#xD;
&lt;table&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre&gt;1&#xD;
&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;td &gt;&#xD;
&lt;pre &gt;&lt;span style="color: #660033;"&gt;--rexclude&lt;/span&gt; 、--rinclude、--rexclude-from、--rinclude-from&lt;/pre&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&lt;img src="http://www.cnblogs.com/zhyg6516/aggbug/2163933.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhyg6516/archive/2011/09/02/2163933.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhyg6516/archive/2011/08/08/2131204.html</id><title type="text">多浏览器测试</title><summary type="text">从长远看，浏览器的渲染引擎越来越接近，这应该可以把测试可以开发从这里面解放出来。 但现阶段不同浏览器的渲染结果不太一样，用户的体验也不太一样，这样给测试带来很大的 工作量去测试不同的浏览器平台。下面一些工具可以帮助测试人员工具可以减轻不同浏览器的测试环境的依赖。http://saucelabs.com/ Normal 0 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 http://www.smashingmagazine.com/2011/08/07/a-dozen-cross-browser-testing-t</summary><published>2011-08-08T10:02:00Z</published><updated>2011-08-08T10:02:00Z</updated><author><name>RocZhang</name><uri>http://www.cnblogs.com/zhyg6516/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhyg6516/archive/2011/08/08/2131204.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhyg6516/archive/2011/08/08/2131204.html"/><content type="html">&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;从长远看，浏览器的渲染引擎越来越接近，这应该可以把测试可以开发从这里面解放出来。 但现阶段不同浏览器的渲染结果不太一样，用户的体验也不太一样，这样给测试带来很大的 工作量去测试不同的浏览器平台。&lt;/p&gt;&#xD;
&lt;p&gt;下面一些工具可以帮助测试人员工具可以减轻不同浏览器的测试环境的依赖。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;http://saucelabs.com/&lt;/p&gt;&#xD;
&lt;p&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;&#xD;
 &lt;w:WordDocument&gt;&#xD;
  &lt;w:View&gt;Normal&lt;/w:View&gt;&#xD;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;&#xD;
  &lt;w:TrackMoves/&gt;&#xD;
  &lt;w:TrackFormatting/&gt;&#xD;
  &lt;w:PunctuationKerning/&gt;&#xD;
  &lt;w:ValidateAgainstSchemas/&gt;&#xD;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;&#xD;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;&#xD;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;&#xD;
  &lt;w:DoNotPromoteQF/&gt;&#xD;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;&#xD;
  &lt;w:LidThemeAsian&gt;ZH-CN&lt;/w:LidThemeAsian&gt;&#xD;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;&#xD;
  &lt;w:Compatibility&gt;&#xD;
   &lt;w:BreakWrappedTables/&gt;&#xD;
   &lt;w:SnapToGridInCell/&gt;&#xD;
   &lt;w:WrapTextWithPunct/&gt;&#xD;
   &lt;w:UseAsianBreakRules/&gt;&#xD;
   &lt;w:DontGrowAutofit/&gt;&#xD;
   &lt;w:SplitPgBreakAndParaMark/&gt;&#xD;
   &lt;w:EnableOpenTypeKerning/&gt;&#xD;
   &lt;w:DontFlipMirrorIndents/&gt;&#xD;
   &lt;w:OverrideTableStyleHps/&gt;&#xD;
  &lt;/w:Compatibility&gt;&#xD;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;&#xD;
  &lt;m:mathPr&gt;&#xD;
   &lt;m:mathFont m:val="Cambria Math"/&gt;&#xD;
   &lt;m:brkBin m:val="before"/&gt;&#xD;
   &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;&#xD;
   &lt;m:smallFrac m:val="off"/&gt;&#xD;
   &lt;m:dispDef/&gt;&#xD;
   &lt;m:lMargin m:val="0"/&gt;&#xD;
   &lt;m:rMargin m:val="0"/&gt;&#xD;
   &lt;m:defJc m:val="centerGroup"/&gt;&#xD;
   &lt;m:wrapIndent m:val="1440"/&gt;&#xD;
   &lt;m:intLim m:val="subSup"/&gt;&#xD;
   &lt;m:naryLim m:val="undOvr"/&gt;&#xD;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;&#xD;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;&#xD;
 &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"&#xD;
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"&#xD;
  LatentStyleCount="267"&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Table Grid"/&gt;&#xD;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light Shading"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light List"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light Grid"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium List 1"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium List 2"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Dark List"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful List"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;&#xD;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"&#xD;
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;&#xD;
  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;&#xD;
 &lt;/w:LatentStyles&gt;&#xD;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt;&#xD;
&lt;style&gt;&#xD;
 /* Style Definitions */&#xD;
 table.MsoNormalTable&#xD;
	{mso-style-name:"Table Normal";&#xD;
	mso-tstyle-rowband-size:0;&#xD;
	mso-tstyle-colband-size:0;&#xD;
	mso-style-noshow:yes;&#xD;
	mso-style-priority:99;&#xD;
	mso-style-parent:"";&#xD;
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;&#xD;
	mso-para-margin:0cm;&#xD;
	mso-para-margin-bottom:.0001pt;&#xD;
	mso-pagination:widow-orphan;&#xD;
	font-size:10.0pt;&#xD;
	font-family:"Times New Roman","serif";}&#xD;
&lt;/style&gt;&#xD;
&lt;![endif]--&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;a href="http://www.smashingmagazine.com/2011/08/07/a-dozen-cross-browser-testing-tools/"&gt;http://www.smashingmagazine.com/2011/08/07/a-dozen-cross-browser-testing-tools/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zhyg6516/aggbug/2131204.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhyg6516/archive/2011/08/08/2131204.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhyg6516/archive/2011/07/26/2116962.html</id><title type="text">Localization process</title><summary type="text">1. Separate rescources from souce file and make them as separated dll.2. Bubble check ( Prosodo )--&amp;gt; find the resouce which is not replace by new buble in UI ,for example text in images, and check the lay out because of the length of string from the destination lauguage. The bubble always is made</summary><published>2011-07-26T03:05:00Z</published><updated>2011-07-26T03:05:00Z</updated><author><name>RocZhang</name><uri>http://www.cnblogs.com/zhyg6516/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhyg6516/archive/2011/07/26/2116962.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhyg6516/archive/2011/07/26/2116962.html"/><content type="html">&lt;p&gt;1. Separate rescources from souce file and make them as separated dll.&lt;/p&gt;&#xD;
&lt;p&gt;2. Bubble check ( Prosodo )--&amp;gt; find the resouce which is not replace by new buble in UI ,for example text in images, and check the lay out because of the length of string from the destination lauguage. The bubble always is made by adding the prefix and suffix characters to the orgnial source string.&lt;/p&gt;&#xD;
&lt;p&gt;3. Generate the resource dll file for localization team.&lt;/p&gt;&#xD;
&lt;p&gt;4. Get the resouce files&amp;nbsp; to verify file them, both function and localization verificatioin.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;A lot of lanugauge offer a machinism to select the resouce dll , during the loading time, according to the local language setting, such en -&amp;gt;English, cn-Chinese.&lt;/p&gt;&#xD;
&lt;p&gt;The localization team will extract the resouce from the dll by the tool &lt;a href="http://www.passolo.com/"&gt;&lt;strong&gt;PASSOLO&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zhyg6516/aggbug/2116962.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhyg6516/archive/2011/07/26/2116962.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhyg6516/archive/2011/06/09/2076859.html</id><title type="text">工作一二三</title><summary type="text">1.关于一个defect。 defect的最关键是重现，当测试报一个可以重现的defect，基本问题份内的事就算完成。对于不能重现的，开发基本可以就是踢皮球。有一个defect，只能在两台机器上重现。算是defect？如果说服开发去fix掉？ 不负责人的开发说，机器重装一下问题就没了，所以不用fix。其实问题只是隐藏，如果当真让Dev从装系统，这是测试的失值。测试可以帮开发重现这个问题，辅助的提供一些信息，找到原因。碰到这么一个defect： Revit上面的Addon ，只能两台机器上不能工作。下面记录这个问题的过程：0.首先Dev不认为这是一个问题，是系统没有安装好，拒绝fix。1.--》</summary><published>2011-06-09T15:02:00Z</published><updated>2011-06-09T15:02:00Z</updated><author><name>RocZhang</name><uri>http://www.cnblogs.com/zhyg6516/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhyg6516/archive/2011/06/09/2076859.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhyg6516/archive/2011/06/09/2076859.html"/><content type="html">该文被密码保护。</content></entry><entry><id>http://www.cnblogs.com/zhyg6516/archive/2011/05/09/2041431.html</id><title type="text">测试框架的特点</title><summary type="text">写一个测试框架，功能加的越来越多，总结一下：1. 测试框架，使得测试的case可以重启，即：重新运行的时候从刚才停止的地方运行2. 数据分离，用配置文件，命令行参数设置，至少可以静态的修改配置： 指定运行参数，数据文件等3. 测试框架可扩展，很容易扩展到多台机器执行4. 要考虑异常情况，需要timeout 机制5. log 机制6. monitor 当前case执行的状态7. report 一个测试结果8. 自动发出测试结果</summary><published>2011-05-09T10:18:00Z</published><updated>2011-05-09T10:18:00Z</updated><author><name>RocZhang</name><uri>http://www.cnblogs.com/zhyg6516/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhyg6516/archive/2011/05/09/2041431.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhyg6516/archive/2011/05/09/2041431.html"/><content type="html">&lt;p&gt;写一个测试框架，功能加的越来越多，总结一下：&lt;/p&gt;&#xD;
&lt;p&gt;1. 测试框架，使得测试的case可以重启，即：重新运行的时候从刚才停止的地方运行&lt;/p&gt;&#xD;
&lt;p&gt;2. 数据分离，用配置文件，命令行参数设置，至少可以静态的修改配置： 指定运行参数，数据文件等&lt;/p&gt;&#xD;
&lt;p&gt;3. 测试框架可扩展，很容易扩展到多台机器执行&lt;/p&gt;&#xD;
&lt;p&gt;4. 要考虑异常情况，需要timeout 机制&lt;/p&gt;&#xD;
&lt;p&gt;5. log 机制&lt;/p&gt;&#xD;
&lt;p&gt;6. monitor 当前case执行的状态&lt;/p&gt;&#xD;
&lt;p&gt;7. report 一个测试结果&lt;/p&gt;&#xD;
&lt;p&gt;8. 自动发出测试结果&lt;/p&gt;&#xD;
&lt;img src="http://www.cnblogs.com/zhyg6516/aggbug/2041431.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhyg6516/archive/2011/05/09/2041431.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhyg6516/archive/2011/04/24/2026153.html</id><title type="text">Linux 命令行的配置</title><summary type="text">Linux terminal 或许是Linux 上最频繁用到的工具之一。有个用的顺手的命令行，大大提高工作生活效率。下面来看看：1. 命令行提示符号 通过定义一组预先定义好的一组值，以及控制PS1 和PS2 环境变量来控制提示符号. echo $PS1 通过修改直接生效。比如让命令行来显示命令的行号。 export PS1=&amp;quot;\#&amp;quot; 来显示命令行号 可以通过man bash 开查看，搜key world： PS12. tab 补全 补全文集名，补全命令，补全环境变量都支持。 double press Tab key.3. 命令行的中位置跳转和编辑 比如从当前位置（光标）返回</summary><published>2011-04-24T04:22:00Z</published><updated>2011-04-24T04:22:00Z</updated><author><name>RocZhang</name><uri>http://www.cnblogs.com/zhyg6516/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhyg6516/archive/2011/04/24/2026153.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhyg6516/archive/2011/04/24/2026153.html"/><content type="html">&lt;p&gt;Linux terminal 或许是Linux 上最频繁用到的工具之一。有个用的顺手的命令行，大大提高工作生活效率。&lt;/p&gt;&#xD;
&lt;p&gt;下面来看看：&lt;/p&gt;&#xD;
&lt;p&gt;1. 命令行提示符号&lt;/p&gt;&#xD;
&lt;p&gt;通过定义一组预先定义好的一组值，以及控制PS1 和PS2 环境变量来控制提示符号.&lt;/p&gt;&#xD;
&lt;p&gt;echo $PS1&lt;/p&gt;&#xD;
&lt;p&gt;通过修改直接生效。比如让命令行来显示命令的行号。 &amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;export PS1="\#" 来显示命令行号&lt;/p&gt;&#xD;
&lt;p&gt;可以通过man bash 开查看，搜key world： PS1&lt;/p&gt;&#xD;
&lt;p&gt;2. tab 补全&lt;/p&gt;&#xD;
&lt;p&gt;补全文集名，补全命令，补全环境变量都支持。 double press Tab key.&lt;/p&gt;&#xD;
&lt;p&gt;3. 命令行的中位置跳转和编辑&lt;/p&gt;&#xD;
&lt;p&gt;比如从当前位置（光标）返回到行头或者行尾，向前跳转一个单词或者向后，如果vim 里面的快捷键。&lt;/p&gt;&#xD;
&lt;p&gt;有很多功能支持，可以通过bind -p 来查看。 同时也可以修改到.bash.rc 文件中保存。&lt;/p&gt;&#xD;
&lt;p&gt;常用的： 获得上次运行的参数，比如C-1, M-.(也就是上一次运行命令的第一个参数）&lt;/p&gt;&#xD;
&lt;p&gt;M-. 缺省获得上次运行的最后一个参数。&lt;/p&gt;&#xD;
&lt;p&gt;M-#（ Alt-Shift-3) 可以将该命令给注释掉。&lt;/p&gt;&#xD;
&lt;p&gt;C-a / C-e 移动到行头或者行尾。&lt;/p&gt;&#xD;
&lt;p&gt;C-w 删掉之前一个单词。 当然这些都可以设置成适合自己的键。&lt;/p&gt;&#xD;
&lt;p&gt;还有命令行扩展 ： M-*'(insert-completions) &lt;/p&gt;&#xD;
&lt;p&gt;可以将 ls t* 扩展为 ls test.txt test.cpp.(假设当前目录有连个以test开头的我文件名）&lt;/p&gt;&#xD;
&lt;p&gt;'C-x*'(先按ctrl-x，然后按*) 也可以补全（glob-expand-word）&lt;/p&gt;&#xD;
&lt;p&gt;ls *.txt&amp;nbsp; 将扩展为 ls test.txt log.txt (假设当前目录只有连个以txt为后缀的文件名）&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;pre &gt;"\C-g": abort&#xD;
"\C-x\C-g": abort&#xD;
"\e\C-g": abort&#xD;
"\C-j": accept-line&#xD;
"\C-m": accept-line&#xD;
# alias-expand-line (not bound)&#xD;
# arrow-key-prefix (not bound)&#xD;
# backward-byte (not bound)&#xD;
"\C-b": backward-char&#xD;
"\eOD": backward-char&#xD;
"\e[D": backward-char&#xD;
"\C-h": backward-delete-char&#xD;
"\C-?": backward-delete-char&#xD;
"\C-x\C-?": backward-kill-line&#xD;
"\e\C-h": backward-kill-word&#xD;
"\e\C-?": backward-kill-word&#xD;
"\eb": backward-word&#xD;
"\e&amp;lt;": beginning-of-history&#xD;
"\C-a": beginning-of-line&#xD;
"\eOH": beginning-of-line&#xD;
"\e[H": beginning-of-line&#xD;
"\C-xe": call-last-kbd-macro&#xD;
"\ec": capitalize-word&#xD;
"\C-]": character-search&#xD;
"\e\C-]": character-search-backward&#xD;
"\C-l": clear-screen&#xD;
"\C-i": complete&#xD;
"\e\e": complete&#xD;
"\e!": complete-command&#xD;
"\e/": complete-filename&#xD;
"\e@": complete-hostname&#xD;
"\e{": complete-into-braces&#xD;
"\e~": complete-username&#xD;
"\e$": complete-variable&#xD;
# copy-backward-word (not bound)&#xD;
# copy-forward-word (not bound)&#xD;
# copy-region-as-kill (not bound)&#xD;
# dabbrev-expand (not bound)&#xD;
"\C-d": delete-char&#xD;
"\e[3~": delete-char&#xD;
# delete-char-or-list (not bound)&#xD;
"\e\\": delete-horizontal-space&#xD;
"\e-": digit-argument&#xD;
"\e0": digit-argument&#xD;
"\e1": digit-argument&#xD;
"\e2": digit-argument&#xD;
"\e3": digit-argument&#xD;
"\e4": digit-argument&#xD;
"\e5": digit-argument&#xD;
"\e6": digit-argument&#xD;
"\e7": digit-argument&#xD;
"\e8": digit-argument&#xD;
"\e9": digit-argument&#xD;
"\C-x\C-v": display-shell-version&#xD;
"\C-xA": do-lowercase-version&#xD;
"\C-xB": do-lowercase-version&#xD;
"\C-xC": do-lowercase-version&#xD;
"\C-xD": do-lowercase-version&#xD;
"\C-xE": do-lowercase-version&#xD;
"\C-xF": do-lowercase-version&#xD;
"\C-xG": do-lowercase-version&#xD;
"\C-xH": do-lowercase-version&#xD;
"\C-xI": do-lowercase-version&#xD;
"\C-xJ": do-lowercase-version&#xD;
"\C-xK": do-lowercase-version&#xD;
"\C-xL": do-lowercase-version&#xD;
"\C-xM": do-lowercase-version&#xD;
"\C-xN": do-lowercase-version&#xD;
"\C-xO": do-lowercase-version&#xD;
"\C-xP": do-lowercase-version&#xD;
"\C-xQ": do-lowercase-version&#xD;
"\C-xR": do-lowercase-version&#xD;
"\C-xS": do-lowercase-version&#xD;
"\C-xT": do-lowercase-version&#xD;
"\C-xU": do-lowercase-version&#xD;
"\C-xV": do-lowercase-version&#xD;
"\C-xW": do-lowercase-version&#xD;
"\C-xX": do-lowercase-version&#xD;
"\C-xY": do-lowercase-version&#xD;
"\C-xZ": do-lowercase-version&#xD;
"\eA": do-lowercase-version&#xD;
"\eB": do-lowercase-version&#xD;
"\eC": do-lowercase-version&#xD;
"\eD": do-lowercase-version&#xD;
"\eE": do-lowercase-version&#xD;
"\eF": do-lowercase-version&#xD;
"\eG": do-lowercase-version&#xD;
"\eH": do-lowercase-version&#xD;
"\eI": do-lowercase-version&#xD;
"\eJ": do-lowercase-version&#xD;
"\eK": do-lowercase-version&#xD;
"\eL": do-lowercase-version&#xD;
"\eM": do-lowercase-version&#xD;
"\eN": do-lowercase-version&#xD;
"\eP": do-lowercase-version&#xD;
"\eQ": do-lowercase-version&#xD;
"\eR": do-lowercase-version&#xD;
"\eS": do-lowercase-version&#xD;
"\eT": do-lowercase-version&#xD;
"\eU": do-lowercase-version&#xD;
"\eV": do-lowercase-version&#xD;
"\eW": do-lowercase-version&#xD;
"\eX": do-lowercase-version&#xD;
"\eY": do-lowercase-version&#xD;
"\eZ": do-lowercase-version&#xD;
"\el": downcase-word&#xD;
# dump-functions (not bound)&#xD;
# dump-macros (not bound)&#xD;
# dump-variables (not bound)&#xD;
"\e\C-i": dynamic-complete-history&#xD;
"\C-x\C-e": edit-and-execute-command&#xD;
# emacs-editing-mode (not bound)&#xD;
"\C-x)": end-kbd-macro&#xD;
"\e&amp;gt;": end-of-history&#xD;
"\C-e": end-of-line&#xD;
"\eOF": end-of-line&#xD;
"\e[F": end-of-line&#xD;
"\C-x\C-x": exchange-point-and-mark&#xD;
# forward-backward-delete-char (not bound)&#xD;
# forward-byte (not bound)&#xD;
"\C-f": forward-char&#xD;
"\eOC": forward-char&#xD;
"\e[C": forward-char&#xD;
"\C-s": forward-search-history&#xD;
"\ef": forward-word&#xD;
"\eg": glob-complete-word&#xD;
"\C-x*": glob-expand-word&#xD;
"\C-xg": glob-list-expansions&#xD;
# history-and-alias-expand-line (not bound)&#xD;
"\e^": history-expand-line&#xD;
# history-search-backward (not bound)&#xD;
# history-search-forward (not bound)&#xD;
"\e#": insert-comment&#xD;
"\e*": insert-completions&#xD;
"\e.": insert-last-argument&#xD;
"\e_": insert-last-argument&#xD;
# kill-line (not bound)&#xD;
"\C-k": kill-region&#xD;
# kill-whole-line (not bound)&#xD;
"\ed": kill-word&#xD;
# magic-space (not bound)&#xD;
# menu-complete (not bound)&#xD;
# menu-complete-backward (not bound)&#xD;
"\C-n": next-history&#xD;
"\eOB": next-history&#xD;
"\e[B": next-history&#xD;
"\en": non-incremental-forward-search-history&#xD;
# non-incremental-forward-search-history-again (not bound)&#xD;
"\ep": non-incremental-reverse-search-history&#xD;
# non-incremental-reverse-search-history-again (not bound)&#xD;
# old-menu-complete (not bound)&#xD;
"\C-o": operate-and-get-next&#xD;
# overwrite-mode (not bound)&#xD;
"\C-x!": possible-command-completions&#xD;
"\e=": possible-completions&#xD;
"\e?": possible-completions&#xD;
"\C-x/": possible-filename-completions&#xD;
"\C-x@": possible-hostname-completions&#xD;
"\C-x~": possible-username-completions&#xD;
"\C-x$": possible-variable-completions&#xD;
"\C-p": previous-history&#xD;
"\eOA": previous-history&#xD;
"\e[A": previous-history&#xD;
"\C-q": quoted-insert&#xD;
"\C-v": quoted-insert&#xD;
# redraw-current-line (not bound)&#xD;
"\C-x\C-r": re-read-init-file&#xD;
"\C-r": reverse-search-history&#xD;
"\e\C-r": revert-line&#xD;
"\er": revert-line&#xD;
" ": self-insert&#xD;
"!": self-insert&#xD;
"\"": self-insert&#xD;
"#": self-insert&#xD;
"$": self-insert&#xD;
"%": self-insert&#xD;
"&amp;amp;": self-insert&#xD;
"'": self-insert&#xD;
"(": self-insert&#xD;
")": self-insert&#xD;
"*": self-insert&#xD;
"+": self-insert&#xD;
",": self-insert&#xD;
"-": self-insert&#xD;
".": self-insert&#xD;
"/": self-insert&#xD;
"0": self-insert&#xD;
"1": self-insert&#xD;
"2": self-insert&#xD;
"3": self-insert&#xD;
"4": self-insert&#xD;
"5": self-insert&#xD;
"6": self-insert&#xD;
"7": self-insert&#xD;
"8": self-insert&#xD;
"9": self-insert&#xD;
":": self-insert&#xD;
";": self-insert&#xD;
"&amp;lt;": self-insert&#xD;
"=": self-insert&#xD;
"&amp;gt;": self-insert&#xD;
"?": self-insert&#xD;
"@": self-insert&#xD;
"A": self-insert&#xD;
"B": self-insert&#xD;
"C": self-insert&#xD;
"D": self-insert&#xD;
"E": self-insert&#xD;
"F": self-insert&#xD;
"G": self-insert&#xD;
"H": self-insert&#xD;
"I": self-insert&#xD;
"J": self-insert&#xD;
"K": self-insert&#xD;
"L": self-insert&#xD;
"M": self-insert&#xD;
"N": self-insert&#xD;
"O": self-insert&#xD;
"P": self-insert&#xD;
"Q": self-insert&#xD;
"R": self-insert&#xD;
"S": self-insert&#xD;
"T": self-insert&#xD;
"U": self-insert&#xD;
"V": self-insert&#xD;
"W": self-insert&#xD;
"X": self-insert&#xD;
"Y": self-insert&#xD;
"Z": self-insert&#xD;
"[": self-insert&#xD;
"\\": self-insert&#xD;
"]": self-insert&#xD;
"^": self-insert&#xD;
"_": self-insert&#xD;
"`": self-insert&#xD;
"a": self-insert&#xD;
"b": self-insert&#xD;
"c": self-insert&#xD;
"d": self-insert&#xD;
"e": self-insert&#xD;
"f": self-insert&#xD;
"g": self-insert&#xD;
"h": self-insert&#xD;
"i": self-insert&#xD;
"j": self-insert&#xD;
"k": self-insert&#xD;
"l": self-insert&#xD;
"m": self-insert&#xD;
"n": self-insert&#xD;
"o": self-insert&#xD;
"p": self-insert&#xD;
"q": self-insert&#xD;
"r": self-insert&#xD;
"s": self-insert&#xD;
"t": self-insert&#xD;
"u": self-insert&#xD;
"v": self-insert&#xD;
"w": self-insert&#xD;
"x": self-insert&#xD;
"y": self-insert&#xD;
"z": self-insert&#xD;
"{": self-insert&#xD;
"|": self-insert&#xD;
"}": self-insert&#xD;
"~": self-insert&#xD;
"\200": self-insert&#xD;
"\201": self-insert&#xD;
"\202": self-insert&#xD;
"\203": self-insert&#xD;
"\204": self-insert&#xD;
"\205": self-insert&#xD;
"\206": self-insert&#xD;
"\207": self-insert&#xD;
"\210": self-insert&#xD;
"\211": self-insert&#xD;
"\212": self-insert&#xD;
"\213": self-insert&#xD;
"\214": self-insert&#xD;
"\215": self-insert&#xD;
"\216": self-insert&#xD;
"\217": self-insert&#xD;
"\220": self-insert&#xD;
"\221": self-insert&#xD;
"\222": self-insert&#xD;
"\223": self-insert&#xD;
"\224": self-insert&#xD;
"\225": self-insert&#xD;
"\226": self-insert&#xD;
"\227": self-insert&#xD;
"\230": self-insert&#xD;
"\231": self-insert&#xD;
"\232": self-insert&#xD;
"\233": self-insert&#xD;
"\234": self-insert&#xD;
"\235": self-insert&#xD;
"\236": self-insert&#xD;
"\237": self-insert&#xD;
"&amp;nbsp;": self-insert&#xD;
"&amp;iexcl;": self-insert&#xD;
"&amp;cent;": self-insert&#xD;
"&amp;pound;": self-insert&#xD;
"&amp;euro;": self-insert&#xD;
"&amp;yen;": self-insert&#xD;
"&amp;Scaron;": self-insert&#xD;
"&amp;sect;": self-insert&#xD;
"&amp;scaron;": self-insert&#xD;
"&amp;copy;": self-insert&#xD;
"&amp;ordf;": self-insert&#xD;
"&amp;laquo;": self-insert&#xD;
"&amp;not;": self-insert&#xD;
"&amp;shy;": self-insert&#xD;
"&amp;reg;": self-insert&#xD;
"&amp;macr;": self-insert&#xD;
"&amp;deg;": self-insert&#xD;
"&amp;plusmn;": self-insert&#xD;
"&amp;sup2;": self-insert&#xD;
"&amp;sup3;": self-insert&#xD;
"Ž": self-insert&#xD;
"&amp;micro;": self-insert&#xD;
"&amp;para;": self-insert&#xD;
"&amp;middot;": self-insert&#xD;
"ž": self-insert&#xD;
"&amp;sup1;": self-insert&#xD;
"&amp;ordm;": self-insert&#xD;
"&amp;raquo;": self-insert&#xD;
"&amp;OElig;": self-insert&#xD;
"&amp;oelig;": self-insert&#xD;
"&amp;Yuml;": self-insert&#xD;
"&amp;iquest;": self-insert&#xD;
"&amp;Agrave;": self-insert&#xD;
"&amp;Aacute;": self-insert&#xD;
"&amp;Acirc;": self-insert&#xD;
"&amp;Atilde;": self-insert&#xD;
"&amp;Auml;": self-insert&#xD;
"&amp;Aring;": self-insert&#xD;
"&amp;AElig;": self-insert&#xD;
"&amp;Ccedil;": self-insert&#xD;
"&amp;Egrave;": self-insert&#xD;
"&amp;Eacute;": self-insert&#xD;
"&amp;Ecirc;": self-insert&#xD;
"&amp;Euml;": self-insert&#xD;
"&amp;Igrave;": self-insert&#xD;
"&amp;Iacute;": self-insert&#xD;
"&amp;Icirc;": self-insert&#xD;
"&amp;Iuml;": self-insert&#xD;
"&amp;ETH;": self-insert&#xD;
"&amp;Ntilde;": self-insert&#xD;
"&amp;Ograve;": self-insert&#xD;
"&amp;Oacute;": self-insert&#xD;
"&amp;Ocirc;": self-insert&#xD;
"&amp;Otilde;": self-insert&#xD;
"&amp;Ouml;": self-insert&#xD;
"&amp;times;": self-insert&#xD;
"&amp;Oslash;": self-insert&#xD;
"&amp;Ugrave;": self-insert&#xD;
"&amp;Uacute;": self-insert&#xD;
"&amp;Ucirc;": self-insert&#xD;
"&amp;Uuml;": self-insert&#xD;
"&amp;Yacute;": self-insert&#xD;
"&amp;THORN;": self-insert&#xD;
"&amp;szlig;": self-insert&#xD;
"&amp;agrave;": self-insert&#xD;
"&amp;aacute;": self-insert&#xD;
"&amp;acirc;": self-insert&#xD;
"&amp;atilde;": self-insert&#xD;
"&amp;auml;": self-insert&#xD;
"&amp;aring;": self-insert&#xD;
"&amp;aelig;": self-insert&#xD;
"&amp;ccedil;": self-insert&#xD;
"&amp;egrave;": self-insert&#xD;
"&amp;eacute;": self-insert&#xD;
"&amp;ecirc;": self-insert&#xD;
"&amp;euml;": self-insert&#xD;
"&amp;igrave;": self-insert&#xD;
"&amp;iacute;": self-insert&#xD;
"&amp;icirc;": self-insert&#xD;
"&amp;iuml;": self-insert&#xD;
"&amp;eth;": self-insert&#xD;
"&amp;ntilde;": self-insert&#xD;
"&amp;ograve;": self-insert&#xD;
"&amp;oacute;": self-insert&#xD;
"&amp;ocirc;": self-insert&#xD;
"&amp;otilde;": self-insert&#xD;
"&amp;ouml;": self-insert&#xD;
"&amp;divide;": self-insert&#xD;
"&amp;oslash;": self-insert&#xD;
"&amp;ugrave;": self-insert&#xD;
"&amp;uacute;": self-insert&#xD;
"&amp;ucirc;": self-insert&#xD;
"&amp;uuml;": self-insert&#xD;
"&amp;yacute;": self-insert&#xD;
"&amp;thorn;": self-insert&#xD;
"&amp;yuml;": self-insert&#xD;
"\C-@": set-mark&#xD;
"\e ": set-mark&#xD;
# shell-backward-kill-word (not bound)&#xD;
# shell-backward-word (not bound)&#xD;
"\e\C-e": shell-expand-line&#xD;
# shell-forward-word (not bound)&#xD;
# shell-kill-word (not bound)&#xD;
# skip-csi-sequence (not bound)&#xD;
"\C-x(": start-kbd-macro&#xD;
# tab-insert (not bound)&#xD;
"\e&amp;amp;": tilde-expand&#xD;
"\C-t": transpose-chars&#xD;
"\et": transpose-words&#xD;
# tty-status (not bound)&#xD;
"\C-x\C-u": undo&#xD;
"\C-_": undo&#xD;
# universal-argument (not bound)&#xD;
# unix-filename-rubout (not bound)&#xD;
"\C-u": unix-line-discard&#xD;
"\C-w": unix-word-rubout&#xD;
"\eu": upcase-word&#xD;
# vi-append-eol (not bound)&#xD;
# vi-append-mode (not bound)&#xD;
# vi-arg-digit (not bound)&#xD;
# vi-back-to-indent (not bound)&#xD;
# vi-bword (not bound)&#xD;
# vi-bWord (not bound)&#xD;
# vi-change-case (not bound)&#xD;
# vi-change-char (not bound)&#xD;
# vi-change-to (not bound)&#xD;
# vi-char-search (not bound)&#xD;
# vi-column (not bound)&#xD;
# vi-complete (not bound)&#xD;
# vi-delete (not bound)&#xD;
# vi-delete-to (not bound)&#xD;
# vi-editing-mode (not bound)&#xD;
# vi-end-word (not bound)&#xD;
# vi-eof-maybe (not bound)&#xD;
# vi-eword (not bound)&#xD;
# vi-eWord (not bound)&#xD;
# vi-fetch-history (not bound)&#xD;
# vi-first-print (not bound)&#xD;
# vi-fword (not bound)&#xD;
# vi-fWord (not bound)&#xD;
# vi-goto-mark (not bound)&#xD;
# vi-insert-beg (not bound)&#xD;
# vi-insertion-mode (not bound)&#xD;
# vi-match (not bound)&#xD;
# vi-movement-mode (not bound)&#xD;
# vi-next-word (not bound)&#xD;
# vi-overstrike (not bound)&#xD;
# vi-overstrike-delete (not bound)&#xD;
# vi-prev-word (not bound)&#xD;
# vi-put (not bound)&#xD;
# vi-redo (not bound)&#xD;
# vi-replace (not bound)&#xD;
# vi-rubout (not bound)&#xD;
# vi-search (not bound)&#xD;
# vi-search-again (not bound)&#xD;
# vi-set-mark (not bound)&#xD;
# vi-subst (not bound)&#xD;
# vi-tilde-expand (not bound)&#xD;
# vi-yank-arg (not bound)&#xD;
# vi-yank-to (not bound)&#xD;
"\C-y": yank&#xD;
"\e.": yank-last-arg&#xD;
"\e_": yank-last-arg&#xD;
"\e\C-y": yank-nth-arg&#xD;
"\ey": yank-pop&#xD;
&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;br /&gt;&#xD;
4. alias&lt;br /&gt;&amp;nbsp; 别名，对于经常用到的自定义命令可以用shellout方式封装一下，或者最简单的就是别名。&lt;br /&gt;&#xD;
&lt;p&gt;5.&amp;nbsp; 配置文件&lt;/p&gt;&#xD;
&lt;p&gt;上面这些都个放到配置文件里，避免一次有一次的修改. 放在.bashrc 中，同时在.profile 文件里面调用bashrc.&lt;/p&gt;&#xD;
&lt;p&gt;进一步可以把这个文件放到云上面去，通过One Ubuntu 来同步不同计算机之间被的配置文件。 这样所有的机器，即使从新装机，也不用怕配额之文件丢失，也不用再去修改。&lt;/p&gt;&#xD;
&lt;p&gt;强烈建议做这么一次，公欲利其事必先利其器：）&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;reference:&lt;/p&gt;&#xD;
&lt;p&gt;http://www.kerneltravel.net/newbie/bash_readline.htm&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zhyg6516/aggbug/2026153.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhyg6516/archive/2011/04/24/2026153.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
