﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-【永恒的瞬间】  -文章分类-Sun_Solaris</title><link>http://www.blogjava.net/19851985lili/category/20166.html</link><description>☜GivE mE HapPy ☞




</description><language>zh-cn</language><lastBuildDate>Thu, 31 May 2007 05:02:41 GMT</lastBuildDate><pubDate>Thu, 31 May 2007 05:02:41 GMT</pubDate><ttl>60</ttl><item><title>图解Solaris10 For X86在vmware安装全过程</title><link>http://www.blogjava.net/19851985lili/articles/120684.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Tue, 29 May 2007 06:51:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/120684.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/120684.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/120684.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/120684.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/120684.html</trackback:ping><description><![CDATA[<div style="FLOAT: right" align=right><a title="评分 0" href="http://www.unix-center.com/bbs/misc.php?action=viewratings&amp;tid=298&amp;pid=1409"></a></div>
<p><span class=bold>图解Solaris10 For X86在vmware安装全过程</span><br><br></p>
<div class=t_msgfont id=message1409>1、配置VMWARE4.51 新建虚拟机，选择other\other类，基本选项都是默认，但硬盘要大大的，我开始选5.0G安装失败了，我是新手选择全部安装组件所以占硬盘，实际安装完总共4G多。<br>2、抽4个小时吧，准备好水和粮食，开始硬仗啦！把VMWARE4.51 的CDROM指向sol-10-GA-x86-v1-iso.iso 点亮虚拟机&#8220;start this virtul machine"<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152059252.jpg');}" alt="Click here to open new window&#10;CTRL+Mouse wheel to zoom in/out" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152059252.jpg" width=716 onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0 resized="true"><br>选择安装类型我选择的是3，因为它看上去比较友好吧, pcn0是我的网卡，它另一头是加电的ADSL<br>3、按ESC改变外设的配置主要是显卡，手要快啊<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/20072715213775.jpg');}" alt="Click here to open new window&#10;CTRL+Mouse wheel to zoom in/out" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/20072715213775.jpg" width=716 onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0 resized="true"><br>4、改显卡，其实这里的显示不是最终配置，只是为了安装过程显示<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/20072715216271.jpg');}" alt="Click here to open new window&#10;CTRL+Mouse wheel to zoom in/out" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/20072715216271.jpg" width=716 onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0 resized="true"><br>5、按某位仁兄的帖子设定，实际安装完后配置结果是比较接近刚刚的默认值<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/20072715219888.jpg');}" alt="Click here to open new window&#10;CTRL+Mouse wheel to zoom in/out" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/20072715219888.jpg" width=716 onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0 resized="true"><br>6 、ESC +2键继续（请注意下面的菜单阿）<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152111235.jpg');}" alt="Click here to open new window&#10;CTRL+Mouse wheel to zoom in/out" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152111235.jpg" width=716 onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0 resized="true"><br>7、其实我的显示器是17的<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152114448.jpg');}" alt="Click here to open new window&#10;CTRL+Mouse wheel to zoom in/out" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152114448.jpg" width=716 onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0 resized="true"><br>8、 800x600<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152115747.jpg');}" alt="Click here to open new window&#10;CTRL+Mouse wheel to zoom in/out" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152115747.jpg" width=716 onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0 resized="true"><br>9、继续<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152117557.jpg');}" alt="Click here to open new window&#10;CTRL+Mouse wheel to zoom in/out" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152117557.jpg" width=716 onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0 resized="true"><br>10、 ESC+2 测试效果，会出来各种颜色的椭圆，下面有yes&nbsp;&nbsp;no点yes 测试成功<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152119339.jpg');}" alt="Click here to open new window&#10;CTRL+Mouse wheel to zoom in/out" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152119339.jpg" width=716 onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0 resized="true"><br>11、选语言，看着办<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152120506.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152120506.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>12、F2<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152121581.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152121581.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>13、F2<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152122355.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152122355.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0>&nbsp;&nbsp;<br>14、继续<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152123783.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152123783.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0>&nbsp;&nbsp;<br>15、继续<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152125905.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152125905.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>16、主机名（安装完可以改）<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152127636.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152127636.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>17、&#8230;&#8230;！！<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152129176.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152129176.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0>&nbsp;&nbsp;<br>18，选择子网才会让写子网掩码<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152131666.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152131666.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>19、加IPV6 也行不影响使用（看字幕）<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152133372.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152133372.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>20、路由，我是ADSL和路由没关系1，3都行<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152135259.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152135259.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>21、回顾网络配置<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152137254.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152137254.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>22、参考他贴，我不清楚，所以默认<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152138147.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152138147.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>23、命名服务，我选的NONE但安装后的一个错误可能和他有关，不过解决了，请接着看，我后悔没选DNS，一般我按系统都来一个chenghe.com<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152140691.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152140691.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>24、口令拉<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152142783.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152142783.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>25、标准（其他不清楚）<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152143180.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152143180.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>26、手动啦，这样他会要求你适时换盘（用实际光驱的话，自动也许好一点）<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152145572.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152145572.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>27、自动引导吧，我可不想每次都得手动敲命令引导<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152147944.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152147944.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>28、协议阿，每个软件都有，除了病毒<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152148668.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152148668.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>29、选择安装产品、我是新玩家，有硬盘就全装，不然，安完打补丁会有麻烦啊<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152150616.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152150616.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>30、 附加产品我没下，不用扫描了<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152152450.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152152450.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>31、就是有硬盘，我选大的、大的全（我刚又配个80G的硬盘加移动盒）<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152153892.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152153892.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>32、要选硬盘了，格式化等等，按空格键选<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152155960.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152155960.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>33、整个的吧，这块虚拟硬盘就是给他的<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152158804.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152158804.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>34、自动设置分区F2 ，手工的freebsd,openbsd也设过，但新学的东西默认保险吧<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/20072715221439.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/20072715221439.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>35、默认的两个挂载点就行、选多了分细了会要求更大的硬盘，实际系统会根据需要自动划分细些、如果是实际应用的话应该手动设啊<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/20072715224385.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/20072715224385.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>36、默认划分、继续<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/20072715226945.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/20072715226945.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>37、我没有文件服务器、另外也不缺硬盘空间，继续<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/20072715228155.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/20072715228155.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>38、总结一下，可以F4 修改不满意的地方啊，我继续<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/20072715228709.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/20072715228709.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>39、大概是因为现在的引导设备是CDROM，系统改为刚配好的硬盘了，开始吧<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152210788.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152210788.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>40、安装进度，等吧，这里只是开始啊<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152212890.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152212890.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>41、第一张盘用完了，系统自动重起<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152213117.jpg');}" alt="" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152213117.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0><br>42、启动信息<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152215357.jpg');}" alt="Click here to open new window&#10;CTRL+Mouse wheel to zoom in/out" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152215357.jpg" width=716 onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0 resized="true"><br>43、大概意思是需要有个域名，要不要覆盖yes的话会要求你重新写个域名。注意到我前面配制网络的时候要求过命名服务，我选的NONE。这里我选NO，等安装完不行再修改吧<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152217531.jpg');}" alt="Click here to open new window&#10;CTRL+Mouse wheel to zoom in/out" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152217531.jpg" width=716 onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0 resized="true"><br>44、警告，系统设备配置也许不正确或不完整，请输入ROOT的密码以便用KDMconfig工具进行修改，那就改吧<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152218492.jpg');}" alt="Click here to open new window&#10;CTRL+Mouse wheel to zoom in/out" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152218492.jpg" width=716 onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0 resized="true"><br>45、提示显卡和显示器配置不正确，F2改一下<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152220624.jpg');}" alt="Click here to open new window&#10;CTRL+Mouse wheel to zoom in/out" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152220624.jpg" width=716 onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0 resized="true"><br>46、与开始安装时步骤差不多，改改看<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152220860.jpg');}" alt="Click here to open new window&#10;CTRL+Mouse wheel to zoom in/out" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152220860.jpg" width=716 onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0 resized="true"><br>47、自动找到的配置、从这里看到solaris10可以自动识别匹配vmware、不用特意装驱动<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152221463.jpg');}" alt="Click here to open new window&#10;CTRL+Mouse wheel to zoom in/out" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152221463.jpg" width=716 onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0 resized="true"><br>48、默认匹配<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152223810.jpg');}" alt="Click here to open new window&#10;CTRL+Mouse wheel to zoom in/out" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152223810.jpg" width=716 onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0 resized="true"><br>49、17就17，反正我的显示器是飞利浦17液晶<br><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152224248.jpg');}" alt="Click here to open new window&#10;CTRL+Mouse wheel to zoom in/out" src="http://www.unix-cd.com/unixcd12/eWebEditor/UploadFile/200727152224248.jpg" width=716 onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0 resized="true"><br><br></div>
<img src ="http://www.blogjava.net/19851985lili/aggbug/120684.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-05-29 14:51 <a href="http://www.blogjava.net/19851985lili/articles/120684.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Solaris 资源 FAQ</title><link>http://www.blogjava.net/19851985lili/articles/120681.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Tue, 29 May 2007 06:36:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/120681.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/120681.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/120681.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/120681.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/120681.html</trackback:ping><description><![CDATA[<div class=t_msgfont id=message177>OpenSolaris 官方站点<br><a href="http://opensolaris.org/" target=_blank>http://opensolaris.org</a><br><br>Sun 中国技术社区<br><a href="http://developers.sun.com.cn/" target=_blank>http://developers.sun.com.cn</a><br><br>OpenSolaris 中文 Wiki<br><a href="http://wiki.gceclub.sun.com.cn/index.php" target=_blank>http://wiki.gceclub.sun.com.cn/index.php</a><br><br>OpenSolaris/Solaris中文FAQ<br><a href="http://wiki.gceclub.sun.com.cn/index.php/Opensolaris_chinese_faq" target=_blank>http://wiki.gceclub.sun.com.cn/index.php/Opensolaris_chinese_faq</a><br><br><br>一般讨论
<ul>
    <li>1.1 <a href="http://wiki.gceclub.sun.com.cn/index.php/OpenSolaris%E5%92%8CSolaris%E7%9A%84%E5%8C%BA%E5%88%AB%3F" target=_blank><font color=#0000ff>OpenSolaris和Solaris的区别?</font></a>
    <li>1.2 <a href="http://wiki.gceclub.sun.com.cn/index.php/Solaris%E6%9C%89%E9%82%A3%E4%BA%9B%E4%B8%BB%E8%A6%81%E7%89%88%E6%9C%AC%3F" target=_blank><font color=#0000ff>Solaris有那些主要版本?</font></a>
    <li>1.3 <a href="http://wiki.gceclub.sun.com.cn/index.php/Sun_OS%E5%92%8CSolaris%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%EF%BC%9F" target=_blank><font color=#0000ff>Sun OS和Solaris有什么区别？</font></a>
    <li>1.4 <a href="http://wiki.gceclub.sun.com.cn/index.php/OpenSolaris%E7%9A%84%E7%89%88%E6%9C%AC%E6%9C%89%E5%93%AA%E4%BA%9B%3F" target=_blank><font color=#0000ff>OpenSolaris的版本有哪些?</font></a>
    <li>1.5 <a href="http://wiki.gceclub.sun.com.cn/index.php/OpenSolaris%E6%98%AFGPL%E7%9A%84%E5%90%97%3F" target=_blank><font color=#0000ff>OpenSolaris是GPL的吗?</font></a>
    <li>1.6 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%AD%A6%E4%B9%A0OpenSolaris/Solaris%E6%9C%89%E5%93%AA%E4%BA%9B%E5%8F%AF%E7%94%A8%E7%9A%84%E8%B5%84%E6%BA%90%3F" target=_blank><font color=#0000ff>学习OpenSolaris/Solaris有哪些可用的资源?</font></a>
    <li>1.7 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%93%AA%E9%87%8C%E8%83%BD%E5%A4%9F%E5%BE%97%E5%88%B0OpenSolaris%E7%9A%84%E6%BA%90%E4%BB%A3%E7%A0%81%3F" target=_blank><font color=#0000ff>哪里能够得到OpenSolaris的源代码?</font></a>
    <li>1.8 <a href="http://wiki.gceclub.sun.com.cn/index.php/Solaris%E6%98%AF%E5%85%8D%E8%B4%B9%E7%9A%84%E5%90%97%EF%BC%9F" target=_blank><font color=#0000ff>Solaris是免费的吗？</font></a>
    <li>1.9 <a href="http://wiki.gceclub.sun.com.cn/index.php?title=Solaris%E7%9A%84%E4%BC%98%E7%82%B9%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F&amp;action=edit" target=_blank><font color=#0000ff>Solaris的优点是什么？</font></a>
    <li>1.10<a href="http://wiki.gceclub.sun.com.cn/index.php?title=Solaris%E7%9B%AE%E5%89%8D%E6%9C%89%E4%BA%9B%E4%BB%80%E4%B9%88%E6%9C%8D%E5%8A%A1%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%9F&amp;action=edit" target=_blank><font color=#0000ff>Solaris目前有些什么服务应用程序？</font></a></li>
</ul>
系统安装
<ul>
    <li>2.1 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E5%BE%97%E5%88%B0%E5%92%8C%E5%AE%89%E8%A3%85Solaris%3F" target=_blank><font color=#0000ff>如何得到和安装Solaris?</font></a>
    <li>2.2 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%93%AA%E9%87%8C%E4%B8%8B%E8%BD%BD64%E4%BD%8D%E7%9A%84Solaris%3F" target=_blank><font color=#0000ff>哪里下载64位的Solaris?</font></a>
    <li>2.3 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%AE%89%E8%A3%85Solaris%E5%AF%B9%E7%A1%AC%E4%BB%B6%E6%9C%89%E4%BB%80%E4%B9%88%E8%A6%81%E6%B1%82%3F" target=_blank><font color=#0000ff>安装Solaris对硬件有什么要求?</font></a>
    <li>2.4 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%AE%89%E8%A3%85Solaris_X86%E4%B8%8D%E8%83%BD%E8%AF%86%E5%88%AB%E7%BD%91%E5%8D%A1%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F" target=_blank><font color=#0000ff>安装Solaris X86不能识别网卡怎么办？</font></a>
    <li>2.5 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%AE%89%E8%A3%85Solaris_X86%E4%B8%8D%E8%83%BD%E8%AF%86%E5%88%AB%E5%A3%B0%E5%8D%A1%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F" target=_blank><font color=#0000ff>安装Solaris X86不能识别声卡怎么办？</font></a>
    <li>2.6 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85%E4%B8%80%E4%B8%AASolaris/Windows_XP/Linux%E5%85%B1%E5%AD%98%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%EF%BC%9F" target=_blank><font color=#0000ff>如何安装一个Solaris/Windows XP/Linux共存的操作系统？</font></a>
    <li>2.7 <a href="http://wiki.gceclub.sun.com.cn/index.php/VMware_5.5%E7%89%88%E6%9C%AC%E4%B8%8A%EF%BC%8CSolaris%E5%AE%89%E8%A3%85%E5%81%9C%E6%AD%A2%E5%9C%A8skipped_interface_pcn0%E5%B0%B1%E4%B8%8D%E5%8A%A8%E4%BA%86%3F" target=_blank><font color=#0000ff>VMware 5.5版本上，Solaris安装停止在skipped interface pcn0就不动了?</font></a>
    <li>2.8 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%AE%89%E8%A3%85%E5%90%8E%EF%BC%8C%E6%98%BE%E7%A4%BA%E5%88%86%E8%BE%A8%E7%8E%87%E5%A4%AA%E4%BD%8E%EF%BC%8C%E5%A6%82%E4%BD%95%E8%B0%83%E6%95%B4%E5%88%86%E8%BE%A8%E7%8E%87%E5%95%8A%EF%BC%9F" target=_blank><font color=#0000ff>安装后，显示分辨率太低，如何调整分辨率啊？</font></a>
    <li>2.9 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%AE%89%E8%A3%85%E5%90%8E%E6%83%B3%E6%B7%BB%E5%8A%A0%E6%96%B0%E7%9A%84%E8%AF%AD%E8%A8%80%E6%94%AF%E6%8C%81%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F" target=_blank><font color=#0000ff>安装后想添加新的语言支持怎么办？</font></a>
    <li>2.10 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E7%BD%91%E7%BB%9C%E5%AE%89%E8%A3%85Solaris%EF%BC%9F" target=_blank><font color=#0000ff>如何网络安装Solaris？</font></a>
    <li>2.11 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E4%BB%8E%E7%A1%AC%E7%9B%98%E5%AE%89%E8%A3%85Solaris%EF%BC%9F" target=_blank><font color=#0000ff>如何从硬盘安装Solaris？</font></a>
    <li>2.12 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%AE%89%E8%A3%85Solaris%E5%A4%B1%E8%B4%A5%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F" target=_blank><font color=#0000ff>安装Solaris失败怎么办？</font></a>
    <li>2.13 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E7%9F%A5%E9%81%93%E6%88%91%E7%9A%84%E7%A1%AC%E4%BB%B6Solaris%E6%98%AF%E5%90%A6%E6%94%AF%E6%8C%81%EF%BC%9F" target=_blank><font color=#0000ff>如何知道我的硬件Solaris是否支持？</font></a>
    <li>2.14 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%9C%A8%E5%AE%89%E8%A3%85%E7%9A%84%E8%BF%87%E7%A8%8B%E4%B8%AD%E5%87%BA%E7%8E%B0%E2%80%9C%E4%B8%8D%E8%83%BD%E5%8F%91%E7%8E%B0%E7%A1%AC%E7%9B%98%E2%80%9D%E7%9A%84%E9%94%99%E8%AF%AF%EF%BC%8C%E8%AF%A5%E6%80%8E%E4%B9%88%E8%A7%A3%E5%86%B3%3F" target=_blank><font color=#0000ff>在安装的过程中出现&#8220;不能发现硬盘&#8221;的错误，该怎么解决?</font></a>
    <li>2.15 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%AE%89%E8%A3%85Solaris%E6%8F%90%E7%A4%BAat_least_one_30Mbyte_Solaris_fdisk_partition" target=_blank><font color=#0000ff>安装Solaris提示at least one 30Mbyte Solaris fdisk partition</font></a>
    <li>2.16 <a href="http://wiki.gceclub.sun.com.cn/index.php/Solaris%E6%94%AF%E6%8C%81%E5%8F%8C%E6%A0%B8%E5%90%97%EF%BC%9F" target=_blank><font color=#0000ff>Solaris支持双核吗？</font></a></li>
</ul>
使用/管理/配置
<ul>
    <li>3.1 系统启动和关闭
    <ul>
        <li>3.1.1 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E9%87%8D%E8%A3%85_Windows%E5%90%8EGrub%E5%A4%B1%E6%95%88%EF%BC%8C%E5%A6%82%E4%BD%95%E9%87%8D%E6%96%B0%E5%AE%89%E8%A3%85Grub%3F" target=_blank><font color=#0000ff>重装 Windows后Grub失效，如何重新安装Grub?</font></a>
        <li>3.1.2 <a href="http://wiki.gceclub.sun.com.cn/index.php/Bootblk%E6%8D%9F%E5%9D%8F%EF%BC%8C%E5%A6%82%E4%BD%95%E4%BF%AE%E5%A4%8D%3F" target=_blank><font color=#0000ff>bootblk损坏，如何修复?</font></a>
        <li>3.1.3 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E7%B3%BB%E7%BB%9F%E5%90%AF%E5%8A%A8%E6%8A%A5%E9%94%99%EF%BC%8C%E8%BF%9B%E5%85%A5%E5%8D%95%E7%94%A8%E6%88%B7%E6%A8%A1%E5%BC%8F%3F" target=_blank><font color=#0000ff>系统启动报错，进入单用户模式?</font></a>
        <li>3.1.4 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%E7%B3%BB%E7%BB%9F%3F" target=_blank><font color=#0000ff>如何重新启动系统?</font></a>
        <li>3.1.5 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E5%85%B3%E9%97%AD%E7%B3%BB%E7%BB%9F%3F" target=_blank><font color=#0000ff>如何关闭系统?</font></a>
        <li>3.1.6 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E7%94%A8%E5%91%BD%E4%BB%A4%E5%85%B3%E9%97%AD%E7%B3%BB%E7%BB%9F%E5%B9%B6%E6%96%AD%E7%94%B5%3F" target=_blank><font color=#0000ff>如何用命令关闭系统并断电?</font></a></li>
    </ul>
    <li>3.2 系统基本操作
    <ul>
        <li>3.2.1 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E8%99%9A%E6%8B%9F%E5%85%89%E9%A9%B1%EF%BC%8C%E8%AF%BB%E5%8F%96iso%E4%B8%AD%E7%9A%84%E6%96%87%E4%BB%B6%3F" target=_blank><font color=#0000ff>如何虚拟光驱，读取iso中的文件?</font></a>
        <li>3.2.2 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85%E8%BD%AF%E4%BB%B6%E5%8C%85%28Package%29%EF%BC%9F" target=_blank><font color=#0000ff>如何安装软件包(Package)？</font></a>
        <li>3.2.3 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E6%89%93Patch%EF%BC%9F" target=_blank><font color=#0000ff>如何打Patch？</font></a>
        <li>3.2.4 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E5%8E%BB%E6%8E%89%E6%96%87%E6%9C%AC%E4%B8%AD%5EM%EF%BC%9F" target=_blank><font color=#0000ff>如何去掉文本中^M？</font></a>
        <li>3.2.5 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E8%BF%90%E8%A1%8CLinux%E4%B8%8B%E7%9A%84%E7%A8%8B%E5%BA%8F%3F" target=_blank><font color=#0000ff>如何运行Linux下的程序?</font></a>
        <li>3.2.6 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E6%89%93%E5%BC%80%E5%8E%8B%E7%BC%A9%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%9F" target=_blank><font color=#0000ff>如何打开压缩的文件？</font></a>
        <li>3.2.7 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E8%83%BD%E5%9C%A8/home%E4%B8%8B%E5%88%9B%E5%BB%BA%E7%9B%AE%E5%BD%95%EF%BC%9F" target=_blank><font color=#0000ff>为什么不能在/home下创建目录？</font></a>
        <li>3.2.8 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E6%80%8E%E4%B9%88%E8%AE%A9Solaris%E9%BB%98%E8%AE%A4%E4%B8%8D%E5%90%AF%E5%8A%A8X_window%EF%BC%9F" target=_blank><font color=#0000ff>怎么让Solaris默认不启动X window？</font></a>
        <li>3.2.9 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E6%B7%BB%E5%8A%A0%E7%94%A8%E6%88%B7%3F" target=_blank><font color=#0000ff>如何添加用户?</font></a>
        <li>3.2.10 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%BF%98%E8%AE%B0%E4%BA%86root%E5%AF%86%E7%A0%81%EF%BC%8C%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3%EF%BC%9F" target=_blank><font color=#0000ff>忘记了root密码，如何解决？</font></a>
        <li>3.2.11 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E4%B8%B2%E5%8F%A3%E5%81%9A%E7%B3%BB%E7%BB%9F%E6%8E%A7%E5%88%B6%E5%8F%B0%EF%BC%9F" target=_blank><font color=#0000ff>如何使用串口做系统控制台？</font></a>
        <li>3.2.12 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E6%A0%B9%E7%9B%AE%E5%BD%95%E7%9A%84%E7%A9%BA%E9%97%B4%E6%BB%A1%E4%BA%86%EF%BC%8C%E6%80%8E%E4%B9%88%E6%89%A9%E5%AE%B9%EF%BC%9F" target=_blank><font color=#0000ff>根目录的空间满了，怎么扩容？</font></a>
        <li>3.2.13 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AEXorg%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%3F" target=_blank><font color=#0000ff>如何配置Xorg的配置文件?</font></a>
        <li>3.2.14 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E4%BB%8E%E6%A1%8C%E9%9D%A2%E6%96%B9%E5%BC%8F%E4%B8%8B%E5%A6%82%E4%BD%95%E6%89%93%E5%BC%80%E4%B8%80%E4%B8%AA%E7%BB%88%E7%AB%AF%28%E5%8D%B3%E5%91%BD%E4%BB%A4%E8%A1%8C%E8%BE%93%E5%85%A5%E7%AA%97%E5%8F%A3%29%3F" target=_blank><font color=#0000ff>从桌面方式下如何打开一个终端(即命令行输入窗口)?</font></a>
        <li>3.2.15 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E6%9F%A5%E7%9C%8B%E6%9F%90%E4%B8%80%E4%B8%AA%E5%91%BD%E4%BB%A4%E7%9A%84%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95%3F" target=_blank><font color=#0000ff>如何查看某一个命令的使用方法?</font></a>
        <li>3.2.16 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9C%A8%E7%94%A8man%E5%91%BD%E4%BB%A4%E6%9F%A5%E7%9C%8B%E6%9F%90%E4%B8%80%E4%B8%AA%E5%91%BD%E4%BB%A4%E7%9A%84%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95%E6%97%B6%E6%8F%90%E7%A4%BA%E2%80%9C%E6%B2%A1%E6%9C%89%E7%94%A8%E4%BA%8Exxx%E5%91%BD%E4%BB%A4%E7%9A%84%E6%89%8B%E5%86%8C%E2%80%9D%3F" target=_blank><font color=#0000ff>为什么在用man命令查看某一个命令的使用方法时提示&#8220;没有用于xxx命令的手册&#8221;?</font></a>
        <li>3.2.17 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%9C%A8%E8%BF%90%E8%A1%8C%E4%B8%80%E4%B8%AA%E5%8F%AF%E6%89%A7%E8%A1%8C%E7%9A%84%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%97%B6%E5%80%99%E8%A2%AB%E6%8F%90%E7%A4%BA%E2%80%9C%E6%9D%83%E9%99%90%E8%A2%AB%E5%90%A6%E5%AE%9A%E2%80%9D%E6%98%AF%E6%80%8E%E4%B9%88%E5%9B%9E%E4%BA%8B%3F" target=_blank><font color=#0000ff>在运行一个可执行的程序的时候被提示&#8220;权限被否定&#8221;是怎么回事?</font></a>
        <li>3.2.18 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%9C%A8solaris%E4%B8%AD%E5%A6%82%E4%BD%95%E5%AF%B9%E6%96%87%E4%BB%B6%E8%BF%9B%E8%A1%8C%E5%B8%B8%E8%A7%84%E7%9A%84%E6%93%8D%E4%BD%9C%3F" target=_blank><font color=#0000ff>在solaris中如何对文件进行常规的操作?</font></a>
        <li>3.2.19 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%E7%9B%AE%E5%BD%95%3F" target=_blank><font color=#0000ff>如何创建目录?</font></a>
        <li>3.2.20 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95%3F" target=_blank><font color=#0000ff>如何删除一个目录?</font></a>
        <li>3.2.21 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E8%AE%BE%E5%AE%9A%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95%E7%9A%84%E6%8B%A5%E6%9C%89%E8%80%85%3F" target=_blank><font color=#0000ff>如何设定文件或目录的拥有者?</font></a>
        <li>3.2.22 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E6%B7%BB%E5%8A%A0%E4%B8%80%E4%B8%AA%E7%94%A8%E6%88%B7%E7%BB%84%3F" target=_blank><font color=#0000ff>如何添加一个用户组?</font></a>
        <li>3.2.23 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E6%B7%BB%E5%8A%A0%E4%B8%80%E4%B8%AA%E7%94%A8%E6%88%B7%3F" target=_blank><font color=#0000ff>如何添加一个用户?</font></a>
        <li>3.2.24 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E4%BF%AE%E6%94%B9%E4%B8%80%E4%B8%AA%E7%94%A8%E6%88%B7%E7%9A%84%E5%AF%86%E9%92%A5%3F" target=_blank><font color=#0000ff>如何修改一个用户的密钥?</font></a>
        <li>3.2.25 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E7%94%A8%E6%88%B7%E7%9A%84%E7%BC%BA%E7%9C%81profile%E6%96%87%E4%BB%B6%E6%98%AF%E5%93%AA%E4%B8%80%E4%B8%AA%3F" target=_blank><font color=#0000ff>用户的缺省profile文件是哪一个?</font></a>
        <li>3.2.26 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E5%88%87%E6%8D%A2%E7%94%A8%E6%88%B7%3F" target=_blank><font color=#0000ff>如何切换用户?</font></a>
        <li>3.2.27 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E6%9F%A5%E7%9C%8B%E5%BD%93%E5%89%8D%E7%94%A8%E6%88%B7%E7%9A%84id%3F" target=_blank><font color=#0000ff>如何查看当前用户的id?</font></a>
        <li>3.2.28 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E6%80%8E%E4%B9%88%E8%A7%A3%E5%8E%8B%E7%BC%A9zip%E6%96%87%E4%BB%B6%3F" target=_blank><font color=#0000ff>怎么解压缩zip文件?</font></a>
        <li>3.2.29 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E6%80%8E%E4%B9%88%E8%A7%A3%E5%8E%8B%E7%BC%A9gz%E6%96%87%E4%BB%B6%3F" target=_blank><font color=#0000ff>怎么解压缩gz文件?</font></a>
        <li>3.2.30 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E6%80%8E%E4%B9%88%E8%A7%A3%E5%8E%8B%E7%BC%A9tar%E6%96%87%E4%BB%B6%3F" target=_blank><font color=#0000ff>怎么解压缩tar文件?</font></a>
        <li>3.2.31 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E6%80%8E%E6%A0%B7%E5%9C%A8%E5%91%BD%E4%BB%A4%E6%8F%90%E7%A4%BA%E7%AC%A6%E5%89%8D%E9%9A%8F%E7%9D%80%E7%9B%AE%E5%BD%95%E7%9A%84%E6%94%B9%E5%8F%98%E4%B8%80%E7%9B%B4%E6%98%BE%E7%A4%BA%E5%BD%93%E5%89%8D%E6%89%80%E5%9C%A8%E7%9A%84%E7%9B%AE%E5%BD%95%E6%88%96%E8%B7%AF%E5%BE%84%E5%91%A2%3F" target=_blank><font color=#0000ff>怎样在命令提示符前随着目录的改变一直显示当前所在的目录或路径呢?</font></a>
        <li>3.2.32 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9C%A8Login%E5%9B%BE%E5%BD%A2%E7%95%8C%E9%9D%A2%E4%B8%AD%E7%99%BB%E9%99%86%E5%A4%B1%E8%B4%A5%EF%BC%9F" target=_blank><font color=#0000ff>为什么在Login图形界面中登陆失败？</font></a>
        <li>3.2.33 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E6%80%8E%E6%A0%B7%E6%89%8D%E8%83%BD%E4%BD%BF%E7%94%A8%E4%B8%AD%E6%96%87%E8%BE%93%E5%85%A5%E6%B3%95%E5%91%A2%EF%BC%9F" target=_blank><font color=#0000ff>怎样才能使用中文输入法呢？</font></a></li>
    </ul>
    <li>3.3 Shell操作和使用
    <ul>
        <li>3.3.1 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AEShell%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%3F" target=_blank><font color=#0000ff>如何设置Shell环境变量?</font></a>
        <li>3.3.2 <a href="http://wiki.gceclub.sun.com.cn/index.php/Shell%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%92%8C%E8%AF%BB%E5%8F%96%E9%A1%BA%E5%BA%8F%3F" target=_blank><font color=#0000ff>Shell的配置文件和读取顺序?</font></a>
        <li>3.3.3 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AE%E5%BD%93%E5%89%8D%E4%BC%9A%E8%AF%9D%E4%B8%AD%E7%9A%84%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%3F" target=_blank><font color=#0000ff>如何设置当前会话中的环境变量?</font></a>
        <li>3.3.4 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%9C%A8%E4%BC%9A%E8%AF%9D%E8%BF%87%E7%A8%8B%E4%B8%AD%E5%A6%82%E4%BD%95%E5%8F%96%E6%B6%88%E5%B7%B2%E7%BB%8F%E8%AE%BE%E7%BD%AE%E5%A5%BD%E7%9A%84%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%3F" target=_blank><font color=#0000ff>在会话过程中如何取消已经设置好的环境变量?</font></a>
        <li>3.3.5 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E6%9F%A5%E7%9C%8B%E5%BD%93%E5%89%8D%E7%94%A8%E6%88%B7%E7%9A%84%E7%BC%BA%E7%9C%81SHELL%3F" target=_blank><font color=#0000ff>如何查看当前用户的缺省SHELL?</font></a>
        <li>3.2.6 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E6%9B%B4%E6%94%B9%E6%9F%90%E7%94%A8%E6%88%B7%E7%9A%84%E9%BB%98%E8%AE%A4Shell%3F" target=_blank><font color=#0000ff>如何更改某用户的默认Shell?</font></a></li>
    </ul>
    <li>3.4 系统基本配置(系统，CPU，内存，网络)
    <ul>
        <li>3.4.1 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E6%9F%A5%E7%9C%8BOpenSolaris/Solaris%E7%9A%84%E7%89%88%E6%9C%AC%E4%BF%A1%E6%81%AF%3F" target=_blank><font color=#0000ff>如何查看OpenSolaris/Solaris的版本信息?</font></a>
        <li>3.4.2 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E6%9F%A5%E7%9C%8B%E7%B3%BB%E7%BB%9F%E5%86%85%E6%A0%B8%E6%98%AF32%E4%BD%8D%E7%9A%84%E8%BF%98%E6%98%AF64%E4%BD%8D%E7%9A%84%3F" target=_blank><font color=#0000ff>如何查看系统内核是32位的还是64位的?</font></a>
        <li>3.4.3 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E6%9F%A5%E7%9C%8B%E7%B3%BB%E7%BB%9F%E4%B8%ADCPU%E7%9A%84%E6%95%B0%E7%9B%AE%EF%BC%9F" target=_blank><font color=#0000ff>如何查看系统中CPU的数目？</font></a>
        <li>3.4.4 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E4%BF%AE%E6%94%B9%E4%B8%BB%E6%9C%BA%E5%90%8D%3F" target=_blank><font color=#0000ff>如何修改主机名?</font></a>
        <li>3.2.5 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E6%9F%A5%E7%9C%8Bip%E5%9C%B0%E5%9D%80%3F" target=_blank><font color=#0000ff>如何查看ip地址?</font></a>
        <li>3.4.6 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E4%BF%AE%E6%94%B9IP%E5%9C%B0%E5%9D%80%3F" target=_blank><font color=#0000ff>如何修改IP地址?</font></a>
        <li>3.4.7 <a href="http://wiki.gceclub.sun.com.cn/index.php/DNS%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%9A%84%E8%AE%BE%E7%BD%AE%3F" target=_blank><font color=#0000ff>DNS客户端的设置?</font></a>
        <li>3.4.8 <a href="http://wiki.gceclub.sun.com.cn/index.php/DHCP%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%AE%BE%E7%BD%AE%3F" target=_blank><font color=#0000ff>DHCP客户端设置?</font></a>
        <li>3.4.9 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E7%BD%91%E7%BB%9C%E9%85%8D%E7%BD%AE%E7%94%9F%E6%95%88%E7%9A%84%E9%97%AE%E9%A2%98%3F" target=_blank><font color=#0000ff>网络配置生效的问题?</font></a>
        <li>3.4.10 <a href="http://wiki.gceclub.sun.com.cn/index.php/Solaris%E4%B8%8B%E5%A6%82%E4%BD%95%E4%BF%AE%E6%94%B9mac%E5%9C%B0%E5%9D%80%3F" target=_blank><font color=#0000ff>Solaris下如何修改mac地址?</font></a>
        <li>3.4.11 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E5%AF%9F%E7%9C%8BSolaris%E7%B3%BB%E7%BB%9F%E7%9A%84%E5%86%85%E5%AD%98%E5%A4%A7%E5%B0%8F%E5%8F%8A%E4%BD%BF%E7%94%A8%E6%83%85%E5%86%B5%3F" target=_blank><font color=#0000ff>如何察看Solaris系统的内存大小及使用情况?</font></a>
        <li>3.4.12 <a href="http://wiki.gceclub.sun.com.cn/index.php/Solaris%E4%B8%8B%E5%A6%82%E4%BD%95%E7%BB%99%E6%9C%BA%E5%99%A8%E6%B7%BB%E5%8A%A0%E4%B8%80%E4%B8%AA%E6%96%B0%E7%A1%AC%E4%BB%B6%EF%BC%9F" target=_blank><font color=#0000ff>Solaris下如何给机器添加一个新硬件？</font></a>
        <li>3.4.13 <a href="http://wiki.gceclub.sun.com.cn/index.php/Solaris%E4%B8%8B%E5%A6%82%E4%BD%95%E4%BF%AE%E6%94%B9%E7%BD%91%E5%8D%A1%E7%9A%84%E4%BC%A0%E8%BE%93%E6%A8%A1%E5%BC%8F%E5%91%A2%3F" target=_blank><font color=#0000ff>Solaris下如何修改网卡的传输模式呢?</font></a>
        <li>3.4.14 <a href="http://wiki.gceclub.sun.com.cn/index.php/Solaris%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AEADSL%E6%8B%A8%E5%8F%B7%E4%B8%8A%E7%BD%91%EF%BC%9F" target=_blank><font color=#0000ff>Solaris如何设置ADSL拨号上网？</font></a>
        <li>3.4.15 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AE%E5%9F%9F%E5%90%8D%EF%BC%9F" target=_blank><font color=#0000ff>如何设置域名？</font></a>
        <li>3.4.16 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AE%E4%B8%A4%E4%B8%AA%E7%BD%91%E5%85%B3%EF%BC%9F" target=_blank><font color=#0000ff>如何设置两个网关？</font></a>
        <li>3.4.16 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E4%BF%AE%E6%94%B9%E9%BB%98%E8%AE%A4locale%EF%BC%9F" target=_blank><font color=#0000ff>如何修改默认locale？</font></a>
        <li>3.2.17 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E6%9F%A5%E7%9C%8B%E7%BD%91%E5%85%B3%E4%BF%A1%E6%81%AF%3F" target=_blank><font color=#0000ff>如何查看网关信息?</font></a></li>
    </ul>
    <li>3.5 存储设备使用(硬盘，USB硬盘，CD, DVD等)
    <ul>
        <li>3.5.1 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E6%9F%A5%E7%9C%8Bsolaris%E4%B8%8B%E5%AE%89%E8%A3%85%E4%BA%86%E6%9C%89%E5%87%A0%E5%9D%97%E7%A1%AC%E7%9B%98%EF%BC%9F" target=_blank><font color=#0000ff>如何查看solaris下安装了有几块硬盘？</font></a>
        <li>3.5.2 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E5%9C%A8Solaris%E4%B8%8B%E4%BD%BF%E7%94%A8USB%E5%AD%98%E5%82%A8%E8%AE%BE%E5%A4%87%3F" target=_blank><font color=#0000ff>如何在Solaris下使用USB存储设备?</font></a>
        <li>3.5.3 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95mount%E4%B8%8A%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%B8%BAFAT32/PCFS/DOS%E7%9A%84%E7%A1%AC%E7%9B%98%3F" target=_blank><font color=#0000ff>如何mount上文件系统为FAT32/PCFS/DOS的硬盘?</font></a>
        <li>3.5.4 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E6%A3%80%E6%9F%A5%E7%A1%AC%E7%9B%98%E5%9D%8F%E9%81%93%EF%BC%8C%E4%BF%AE%E5%A4%8D%E7%A1%AC%E7%9B%98%E5%9D%8F%E9%81%93%3F" target=_blank><font color=#0000ff>如何检查硬盘坏道，修复硬盘坏道?</font></a>
        <li>3.5.5 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E5%88%BB%E5%BD%95%E5%85%89%E7%9B%98%EF%BC%9F" target=_blank><font color=#0000ff>如何刻录光盘？</font></a>
        <li>3.5.6 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E5%88%B6%E4%BD%9C%E5%85%89%E7%9B%98%E9%95%9C%E5%83%8Fiso%E6%96%87%E4%BB%B6%EF%BC%9F" target=_blank><font color=#0000ff>如何制作光盘镜像iso文件？</font></a>
        <li>3.5.7 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95mount%E4%B8%8A%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%B8%BAFAT32/PCFS/DOS%E7%9A%84%E7%A1%AC%E7%9B%98%E6%98%BE%E7%A4%BA%E4%B8%AD%E6%96%87%E6%96%87%E4%BB%B6%E5%92%8C%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%9F" target=_blank><font color=#0000ff>如何mount上文件系统为FAT32/PCFS/DOS的硬盘显示中文文件和文件夹？</font></a>
        <li>3.5.8 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95mount%E4%B8%8AEXT%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%EF%BC%9F" target=_blank><font color=#0000ff>如何mount上EXT文件系统？</font></a>
        <li>3.5.9 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95mount%E4%B8%8ANTFS%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%28read-only%29%EF%BC%9F" target=_blank><font color=#0000ff>如何mount上NTFS文件系统(read-only)？</font></a></li>
    </ul>
    <li>3.6 系统软件使用
    <ul>
        <li>3.6.1 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%B8%B8%E7%94%A8%E8%BD%AF%E4%BB%B6%E4%B8%8B%E8%BD%BD" target=_blank><font color=#0000ff>常用软件下载</font></a>
        <li>3.6.2 <a href="http://wiki.gceclub.sun.com.cn/index.php/Solaris%E8%BD%AF%E4%BB%B6%E4%B8%8B%E8%BD%BD%E7%AB%99%E7%82%B9" target=_blank><font color=#0000ff>Solaris软件下载站点</font></a>
        <li>3.6.3 <a href="http://wiki.gceclub.sun.com.cn/index.php/Solaris%E4%B8%8B%E6%9C%89PDF%E9%98%85%E8%AF%BB%E5%99%A8%E5%90%97%EF%BC%9F" target=_blank><font color=#0000ff>Solaris下有PDF阅读器吗？</font></a>
        <li>3.6.4 <a href="http://wiki.gceclub.sun.com.cn/index.php/Solaris%E6%9C%89%E7%94%B5%E5%AD%90%E8%AF%8D%E5%85%B8%E5%90%97%EF%BC%9F" target=_blank><font color=#0000ff>Solaris有电子词典吗？</font></a>
        <li>3.6.5 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E7%94%A8Solaris_10%E7%9A%84SMF%E9%85%8D%E7%BD%AETomcat%E4%B8%BA%E8%87%AA%E5%8A%A8%E5%90%AF%E5%8A%A8%EF%BC%9F" target=_blank><font color=#0000ff>如何用Solaris 10的SMF配置Tomcat为自动启动？</font></a></li>
    </ul>
    <li>3.7 系统常用服务管理(Telnet,FTP, SSH等)
    <ul>
        <li>3.7.1 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E4%BD%BF%E7%94%A8FTP%E6%97%B6%2C%E4%B8%8D%E8%83%BD%E4%BB%A5root%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95%E7%B3%BB%E7%BB%9F%EF%BC%8C%E5%BA%94%E4%BF%AE%E6%94%B9%E4%BB%80%E4%B9%88%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%3F" target=_blank><font color=#0000ff>使用FTP时,不能以root用户登录系统，应修改什么配置文件?</font></a>
        <li>3.7.2 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E4%BD%BF%E7%94%A8Telnet%E6%97%B6%2C%E4%B8%8D%E8%83%BD%E4%BB%A5root%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95%E7%B3%BB%E7%BB%9F%EF%BC%8C%E5%BA%94%E4%BF%AE%E6%94%B9%E4%BB%80%E4%B9%88%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%3F" target=_blank><font color=#0000ff>使用Telnet时,不能以root用户登录系统，应修改什么配置文件?</font></a>
        <li>3.7.3 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E4%BD%BF%E7%94%A8SSH%E6%97%B6%2C%E4%B8%8D%E8%83%BD%E4%BB%A5root%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95%E7%B3%BB%E7%BB%9F%EF%BC%8C%E5%BA%94%E4%BF%AE%E6%94%B9%E4%BB%80%E4%B9%88%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%3F" target=_blank><font color=#0000ff>使用SSH时,不能以root用户登录系统，应修改什么配置文件?</font></a>
        <li>3.7.4 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E4%BD%BF%E7%94%A8Samba%EF%BC%8C%E5%A6%82%E4%BD%95%E5%9C%A8%E5%AE%A2%E6%88%B7%E6%9C%BA%E4%B8%8A%E6%98%BE%E7%A4%BA%E4%B8%AD%E6%96%87%3F" target=_blank><font color=#0000ff>使用Samba，如何在客户机上显示中文?</font></a>
        <li>3.7.5 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8Samba%E5%AE%9E%E7%8E%B0Solaris10%E4%B8%8EWindows%E9%97%B4%E7%9A%84%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB%3F" target=_blank><font color=#0000ff>如何使用Samba实现Solaris10与Windows间的文件共享?</font></a>
        <li>3.7.6 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E9%99%90%E5%88%B6%E7%94%A8%E6%88%B7%E5%8F%AF%E4%BD%BF%E7%94%A8FTP%E4%B8%8D%E8%83%BD%E7%94%A8Telnet%3F" target=_blank><font color=#0000ff>如何限制用户可使用FTP不能用Telnet?</font></a>
        <li>3.7.7 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E9%99%90%E5%88%B6%E7%94%A8%E6%88%B7FTP%E5%8F%AA%E8%83%BD%E4%BD%BF%E7%94%A8%E6%8C%87%E5%AE%9A%E7%9B%AE%E5%BD%95%3F" target=_blank><font color=#0000ff>如何限制用户FTP只能使用指定目录?</font></a></li>
    </ul>
    </li>
</ul>
<ul>
    <li>3.8 ZFS
    <li>3.9 Container and Zone
    <li>3.10 DTrace
    <li>3.11 Oracle
    <ul>
        <li>3.11.1 <a href="http://wiki.gceclub.sun.com.cn/index.php/Oracle%E8%83%BD%E5%AE%89%E8%A3%85%E5%9C%A8Solaris_10_x86-32%E4%B8%8A%E5%90%97%3F" target=_blank><font color=#0000ff>Oracle能安装在Solaris 10 x86-32上吗?</font></a>
        <li>3.11.2 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%9C%A8Solaris_10%E4%B8%8B%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85Oralce%3F" target=_blank><font color=#0000ff>在Solaris 10下如何安装Oralce?</font></a>
        <li>3.11.3 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%9C%A8Solaris_10%E4%B8%8B%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85Oralce_10g_RAC%3F" target=_blank><font color=#0000ff>在Solaris 10下如何安装Oralce 10g RAC?</font></a></li>
    </ul>
    <li>3.12 系统安全管理
    <ul>
        <li>3.12.1 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E4%BF%AE%E6%94%B9%E7%99%BB%E9%99%86%E7%B3%BB%E7%BB%9F%E8%AE%B0%E5%BD%95" target=_blank><font color=#0000ff>如何修改登陆系统记录</font></a></li>
    </ul>
    </li>
</ul>
应用程序开发
<ul>
    <li>4.1 Sun Studio
    <ul>
        <li>4.1.1 <a href="http://wiki.gceclub.sun.com.cn/index.php/Sun_Studio%E6%98%AF%E5%85%8D%E8%B4%B9%E7%9A%84%E5%90%97%EF%BC%9F" target=_blank><font color=#0000ff>Sun Studio是免费的吗？</font></a>
        <li>4.1.2 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%93%AA%E9%87%8C%E5%8F%AF%E4%BB%A5%E4%B8%8B%E8%BD%BD%E5%88%B0Sun_Studio%EF%BC%9F" target=_blank><font color=#0000ff>哪里可以下载到Sun Studio？</font></a>
        <li>4.1.3 <a href="http://wiki.gceclub.sun.com.cn/index.php/Sun_Studio%E5%92%8CGCC%E7%9B%B8%E6%AF%94%E6%9C%89%E4%BB%80%E4%B9%88%E4%BC%98%E5%8A%BF%EF%BC%9F" target=_blank><font color=#0000ff>Sun Studio和GCC相比有什么优势？</font></a>
        <li>4.1.4 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E7%94%A8dbx%E6%89%93%E5%BC%80core%E6%96%87%E4%BB%B6%E5%90%8E%EF%BC%8C%E6%95%B2%E5%85%A5where%E5%91%BD%E4%BB%A4%E5%90%8Edbx%E5%B4%A9%E6%BA%83%3F" target=_blank><font color=#0000ff>用dbx打开core文件后，敲入where命令后dbx崩溃?</font></a></li>
    </ul>
    <li>4.2 Java
    <ul>
        <li>4.2.1 <a href="http://wiki.gceclub.sun.com.cn/index.php/Solaris10%E5%9C%A8%E5%AE%89%E8%A3%85%E5%AE%8C%E6%88%90%E5%90%8E%E6%98%AF%E5%90%A6%E5%B7%B2%E7%BB%8F%E9%A2%84%E8%A3%85%E4%BA%86JDK%3F" target=_blank><font color=#0000ff>Solaris10在安装完成后是否已经预装了JDK?</font></a>
        <li>4.2.2 <a href="http://wiki.gceclub.sun.com.cn/index.php/JDK%E5%AE%89%E8%A3%85%E5%9C%A8%E4%BB%80%E4%B9%88%E7%9B%AE%E5%BD%95%E4%B8%8B%3F" target=_blank><font color=#0000ff>JDK安装在什么目录下?</font></a>
        <li>4.2.3 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E6%9F%A5%E7%9C%8B%E5%BD%93%E5%89%8Djava%E7%9A%84%E7%89%88%E6%9C%AC%EF%BC%9FSolaris10%E9%BB%98%E8%AE%A4%E7%9A%84%E7%89%88%E6%9C%AC%E6%98%AF%E5%93%AA%E4%B8%80%E4%B8%AA%3F" target=_blank><font color=#0000ff>如何查看当前java的版本？Solaris10默认的版本是哪一个?</font></a>
        <li>4.2.4 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E6%9E%9C%E6%83%B3%E6%8A%8ASolaris10%E4%B8%AD%E7%9A%84%E7%BC%BA%E7%9C%81JDK%E4%BB%8E1.5%E6%94%B9%E5%8F%98%E4%B8%BA1.4%2C%E5%A6%82%E4%BD%95%E6%93%8D%E4%BD%9C%3F" target=_blank><font color=#0000ff>如果想把Solaris10中的缺省JDK从1.5改变为1.4,如何操作?</font></a>
        <li>4.2.5 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AEjava%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%3F" target=_blank><font color=#0000ff>如何设置java环境变量?</font></a>
        <li>4.2.6 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E6%9F%A5%E7%9C%8Bjava%E8%BF%9B%E7%A8%8B%E6%98%AF%E5%90%A6%E5%B7%B2%E7%BB%8F%E5%90%AF%E5%8A%A8%3F" target=_blank><font color=#0000ff>如何查看java进程是否已经启动?</font></a></li>
    </ul>
    <li>4.3 <a href="http://wiki.gceclub.sun.com.cn/index.php/Solaris%E4%B8%8B%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85gcc%E7%BC%96%E8%AF%91%E5%99%A8%3F" target=_blank><font color=#0000ff>Solaris下如何安装gcc编译器?</font></a>
    <li>4.4 <a href="http://wiki.gceclub.sun.com.cn/index.php/Solaris%E4%B8%8Bcc%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E8%83%BD%E7%94%A8%3F" target=_blank><font color=#0000ff>Solaris下cc为什么不能用?</font></a>
    <li>4.5 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%9C%A8Solaris%E4%B8%8B%E7%BC%96%E8%AF%91socket%E7%A8%8B%E5%BA%8F%E6%97%B6%E5%8F%91%E7%94%9F%E2%80%9C%E7%AC%A6%E5%8F%B7%E5%8F%82%E7%85%A7%E9%94%99%E8%AF%AF%E2%80%9D%E6%8F%90%E7%A4%BA%EF%BC%9F" target=_blank><font color=#0000ff>在Solaris下编译socket程序时发生&#8220;符号参照错误&#8221;提示？</font></a>
    <li>4.6 <a href="http://wiki.gceclub.sun.com.cn/index.php/Python%E5%9C%A8Solaris%E4%B8%8B%E6%98%AF%E9%BB%98%E8%AE%A4%E5%AE%89%E8%A3%85%E7%9A%84%E5%90%97%EF%BC%9F" target=_blank><font color=#0000ff>Python在Solaris下是默认安装的吗？</font></a>
    <li>4.7 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E4%BF%AE%E6%94%B9%E6%96%87%E4%BB%B6%E6%8F%8F%E8%BF%B0%E7%AC%A6%E9%99%90%E5%88%B6%EF%BC%9F" target=_blank><font color=#0000ff>如何修改文件描述符限制？</font></a>
    <li>4.8 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96Solaris%E7%B3%BB%E7%BB%9F%E4%BF%A1%E6%81%AF%28%E7%A3%81%E7%9B%98%E5%8A%A8%E6%80%81%E4%BD%BF%E7%94%A8%2C%E5%86%85%E5%AD%98%E7%9A%84%E4%BD%BF%E7%94%A8%2C%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%2C%E7%BD%91%E5%8D%A1%E4%BF%A1%E6%81%AF%E5%92%8CIP%E5%9C%B0%E5%9D%80%29%EF%BC%9F" target=_blank><font color=#0000ff>如何获取Solaris系统信息(磁盘动态使用,内存的使用,文件系统,网卡信息和IP地址)？</font></a>
    <li>4.9 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E4%BD%BF%E7%94%A8Sunfreeware%E7%9A%84gcc33%E7%BC%96%E8%AF%91%EF%BC%8C%E6%8A%A5signal.h%E8%A7%A3%E6%9E%90%E9%94%99%E8%AF%AFparse_error%3F" target=_blank><font color=#0000ff>使用Sunfreeware的gcc33编译，报signal.h解析错误parse error?</font></a>
    <li>4.10 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%9C%A8Solaris%E4%B8%8B%E5%A6%82%E4%BD%95%E6%A3%80%E6%9F%A5%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F%E7%9A%84%E9%97%AE%E9%A2%98%3F" target=_blank><font color=#0000ff>在Solaris下如何检查应用程序内存泄漏的问题?</font></a>
    <li>4.11 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E8%AE%A9%E6%99%AE%E9%80%9A%E7%94%A8%E6%88%B7%E8%83%BD%E5%A4%9F%E4%BD%BF%E7%94%A81024%E5%8F%B7%E4%BB%A5%E4%B8%8B%E7%9A%84%E7%AB%AF%E5%8F%A3%3F" target=_blank><font color=#0000ff>如何让普通用户能够使用1024号以下的端口?</font></a>
    <li>4.12 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%93%AA%E9%87%8C%E6%9C%89Solaris%E5%B9%B3%E5%8F%B0%E8%BE%93%E5%85%A5%E6%B3%95%E7%A8%8B%E5%BA%8F%E7%BC%96%E7%A8%8B%E7%9A%84%E7%9B%B8%E5%85%B3%E8%B5%84%E6%96%99%3F" target=_blank><font color=#0000ff>哪里有Solaris平台输入法程序编程的相关资料?</font></a>
    <li>4.13 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E4%B8%BA%E4%BB%80%E4%B9%88%E7%A8%8B%E5%BA%8F%E4%BC%9A%E5%87%BA%E7%8E%B0Bus_Error%3F" target=_blank><font color=#0000ff>为什么程序会出现Bus Error?</font></a>
    <li>4.14 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E5%9C%A8Solaris%E4%B8%8B%E9%80%9A%E8%BF%87ODBC%E8%BF%9E%E6%8E%A5Windows%E7%9A%84MS_SQL_Server%3F" target=_blank><font color=#0000ff>如何在Solaris下通过ODBC连接Windows的MS SQL Server?</font></a>
    <li>4.15 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E5%9C%A8Solaris%E4%B8%8B%E5%AE%89%E8%A3%85lxrun%3F" target=_blank><font color=#0000ff>如何在Solaris下安装lxrun?</font></a></li>
</ul>
内核和驱动程序开发
<ul>
    <li>5.1 <a href="http://wiki.gceclub.sun.com.cn/index.php/Solaris%E6%98%AF%E5%BE%AE%E5%86%85%E6%A0%B8%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%90%97%3F" target=_blank><font color=#0000ff>Solaris是微内核操作系统吗?</font></a>
    <li>5.2 <a href="http://wiki.gceclub.sun.com.cn/index.php/Solaris%E4%B8%8A%E6%9C%89%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E5%86%85%E6%A0%B8%E7%BA%A7%E8%B0%83%E8%AF%95%E5%99%A8%3F" target=_blank><font color=#0000ff>Solaris上有什么样的内核级调试器?</font></a>
    <li>5.3 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%93%AA%E9%87%8C%E5%8F%AF%E4%BB%A5%E6%89%BE%E5%88%B0Solaris%E4%B8%8B%E7%9A%84usb%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E5%BC%80%E5%8F%91%E8%B5%84%E6%96%99%3F" target=_blank><font color=#0000ff>哪里可以找到Solaris下的usb驱动程序的开发资料?</font></a>
    <li>5.4 <a href="http://wiki.gceclub.sun.com.cn/index.php/Solaris%E9%BB%98%E8%AE%A4%E5%86%85%E6%A0%B8%E6%A0%88%E5%A4%A7%E5%B0%8F%E6%98%AF%E5%A4%9A%E5%B0%91%EF%BC%9F" target=_blank><font color=#0000ff>Solaris默认内核栈大小是多少？</font></a>
    <li>5.5 <a href="http://wiki.gceclub.sun.com.cn/index.php/OpenSolaris%E7%9A%84%E5%86%85%E6%A0%B8%E6%BA%90%E7%A0%81%E4%B8%AD%E7%9A%84assert%28%29%E5%87%BD%E6%95%B0%E8%B5%B7%E4%BB%80%E4%B9%88%E4%BD%9C%E7%94%A8%3F" target=_blank><font color=#0000ff>OpenSolaris的内核源码中的assert()函数起什么作用?</font></a>
    <li>5.6 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%A6%82%E4%BD%95%E7%94%A8savecore%E4%BA%A7%E7%94%9Flive_dump%3F" target=_blank><font color=#0000ff>如何用savecore产生live dump?</font></a>
    <li>5.7 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%93%AA%E9%87%8C%E5%8F%AF%E4%BB%A5%E6%89%BE%E5%88%B0Solaris%E4%B8%8B%E7%9A%84%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91%E8%B5%84%E6%96%99%3F" target=_blank><font color=#0000ff>哪里可以找到Solaris下的驱动开发资料?</font></a></li>
</ul>
其他
<ul>
    <li>6.1 VMWare
    <ul>
        <li>6.1.1 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%9C%A8VMWare%E4%B8%8B%E8%83%BD%E4%BD%BF%E7%94%A8Solaris%E5%90%97%EF%BC%9F" target=_blank><font color=#0000ff>在VMWare下能使用Solaris吗？</font></a>
        <li>6.1.2 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%9C%A8VMWare%E4%B8%8B%E6%9C%89%E9%92%88%E5%AF%B9Solaris%E4%BD%BF%E7%94%A8%E7%9A%84VM_Tools%E5%90%97%EF%BC%9F" target=_blank><font color=#0000ff>在VMWare下有针对Solaris使用的VM Tools吗？</font></a>
        <li>6.1.3 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%9C%A8VMWare%E4%B8%8B%EF%BC%8CSolaris%E5%A6%82%E4%BD%95%E4%B8%8A%E7%BD%91%EF%BC%9F" target=_blank><font color=#0000ff>在VMWare下，Solaris如何上网？</font></a>
        <li>6.1.4 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E6%9C%89%E6%B2%A1%E6%9C%89Solaris_10%E7%9A%84VMWare%E8%99%9A%E6%8B%9F%E6%9C%BA%E6%98%A0%E5%83%8F%E6%96%87%E4%BB%B6%E4%B8%8B%E8%BD%BD%EF%BC%9F" target=_blank><font color=#0000ff>有没有Solaris 10的VMWare虚拟机映像文件下载？</font></a></li>
    </ul>
    <li>6.2 <a href="http://wiki.gceclub.sun.com.cn/index.php/Solaris%E8%80%81%E7%89%88%E6%9C%AC8%2C9%E7%9A%84%E7%A8%8B%E5%BA%8F%E8%83%BD%E5%A4%9F%E7%9B%B4%E6%8E%A5%E5%9C%A8Solaris10%E4%B8%AD%E8%B7%91%E5%90%97%3F" target=_blank><font color=#0000ff>Solaris老版本8,9的程序能够直接在Solaris10中跑吗?</font></a>
    <ul>
        <li>6.3 QEMU
        <li>6.3.1 <a href="http://wiki.gceclub.sun.com.cn/index.php/%E5%9C%A8solaris%E4%B8%AD%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8qemu%E5%AE%89%E8%A3%85windows%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F" target=_blank><font color=#0000ff>在solaris中如何使用qemu安装windows操作系统</font></a></li>
    </ul>
    </li>
</ul>
<br>附：以下转自Wikipdia的Solaris条目，根据最新信息，有所修改<br><br>Solaris<br><br>Solaris是太阳公司研制的UNIX类操作系统。目前正式发布的最新版为Solaris 10。早期的Solaris是由BSD系列发展而来。这是因为太阳公司的创始人来自U.C.Berkeley。但是随着时间的推移，Solaris现在在接口上正在逐渐向System V靠拢。 目前Solaris仍旧属于私有软件。2005年6月14日，Sun公司将正在开发中的Solaris 11的源代码以CDDL许可开放，这一开放版本就是OpenSolaris。<br><br>Sun的操作系统最初叫做SunOS，由于Sun Microsystem的创始人之一，Bill Joy, U.C.Berkeley，因此SunOS主要是基于BSDUnix 版本。SunOS 5.0开始，SUN的操作系统开发开始转向System V Release 4，并且有了新的名字叫做Solaris 2.0；Solaris 2.6以后,SUN删除了版本号中的"2，因此，SunOS 5.10就叫做Solaris 10。 Solaris的早期版本后来又被重新命名为Solaris 1.x. 所以"SunOS"这个词被用做专指Solaris操作系统的内核，因此Solaris被认为是由SunOS，图形化的桌面计算环境, 以及它网络增强部分组成。<br><br>目录<br>1 平台 <br>2 用户群 <br>3 桌面环境 <br>4 开放源代码 <br>5 相关技术 <br>6 主要版本 <br>7 OpenSolaris的衍生版本 <br><br><br>平台<br>Solaris运行在两个平台：Intel x86及SPARC/UltraSPARC。后者是Sun工作站使用的处理器。因此，Solaris在SPARC上拥有强大的处理能力和硬件支持，同时Intel x86上的性能也正在得到改善。对两个平台，Solaris屏蔽了底层平台差异，为用户提供了尽可能一样的使用体验。 最新发布的Solaris10包含若干创新技术，包括ZFS，DTrace，Solaris Zones（Container）,预测性自愈等。其中一些以往只可能在专业服务器等具有相关硬件的大型机器上才可能得到支持，但Solaris10使得任何一台普通PC都可以具有这些能力。 Solaris支持多种系统架构: SPARC, x86 and x64. x64即AMD64及EMT64处理器。在版本2.5.1的时候，Solaris曾经一度被移植到PowerPC架构, 但是后来又在这一版本正式发布时被删去。与Linux相比，Solaris可以更有效地支持对称多处理器、即SMP架构。Sun同时宣布将在Solaris 10的后续版本中提供Linux运行环境, 允许Linux二进制程序直接在Solaris x86和x64系统上运行，目前，这一技术已通过Solaris Zone的一个特殊实现(BrandZ)得到支持。<br>Solaris传统上与基于Sun SPARC处理器的硬件体系结构结合紧密, 在设计上和市场上经常捆绑在一起，整个软硬件系统的可靠性和性能也因此大大增强。然而SPARC系统的成本和价格通常要高于PC类的产品，这成为 Solaris进一步普及的障碍。可喜的是，Solaris对x86体系结构的支持正得到大大加强，特别是Solaris 10已经能很好地支持x64(AMD64/EMT64)架构。Sun公司已推出自行设计的基于AMD64的工作站和服务器，并随机附带Solaris 10。<br><br>用户群<br>早期的Solaris主要用于Sun工作站上，不过随著Sun让Solaris可以免费下载和OpenSolaris的释出后，Solaris/OpenSolaris 除了作为服务器/工作站的用途外。已经开始可以作为Desktop用途。虽然现在仍然不普及且应用程序和设备驱动的支援尚嫌不足，但这一问题正得到快速改善，未来 用户群朝向一般大众的情况仍是有很高的可能性的。<br>目前各大软件、应用程序厂商对SPARC平台的支援尚算良好，但对x86平台的Solaris多半都不支援。这也是x86使用者面临的 困境之一。<br><br>桌面环境<br>第一个Solaris的桌面环境是OpenWindows。紧接着是Solaris 2.5的CDE。 在Solaris 10中，Sun又推出了基于GNOME的，Java Desktop System。另外也支援KDE(详见：KDE-Solaris)，XFCE,WindowMaker等(BlastWave).<br><br>开放源代码<br>Solaris已开放其部分源代码，但是由于Sun公司的源代码许可证，Solaris不是自由软件，而OpenSolaris才是。 可参看<a href="http://www.opensolaris.org/os/" target=_blank>http://www.opensolaris.org/os/</a> . Solaris的大多数源代码已经在CDDL的许可下在OpenSolaris开源项目中发布。二进制和源代码目前都可以被下载和许可而无需任何费用。<br>Sun的Common Development and Distribution License被选择用做OpenSolaris的许可, 并通过了Open Source Initiative评审和批准(尽管它与时下流行的[GPL]是互不兼容的)。 OpenSolaris于2005年6月14日正式启动，源代码来自当前的Solaris开发版本。Solaris未来的版本将从OpenSolaris衍生。<br>关于CDDL可以参考：CDDL授权条款<br><br>相关技术<br>ZFS<br>DTrace<br>Zone<br><br>主要版本<br>Solaris最新的主要发布版本如下:<br>Solaris版本 SunOS内核版本 发布日期 简介<br>Solaris 11 SunOS 5.11 Nevada 尚未正式发布<br>Solaris 10 SunOS 5.10 2005年1月31日 包括DTrace (动态跟踪), Solaris Containers, Service<br>Management Facility (SMF)，SMF取代了传统的UNIX的init.d<br>脚本, 和iSCSI支持。 基于Gnome的Java Desktop System作为<br>默认桌面, 还包含了CDE。<br>Solaris 9 SunOS 5.9 2002年5月22日 最近的更新是Solaris 9 9/05<br>Solaris 8 SunOS 5.8 2000年2月 包括Multipath I/O. 引入Role-Based Access Control (RBAC)功<br>能。 最近的更新是Solaris 8 2/04.<br>Solaris 7 SunOS 5.7 1998年11月 第一个64位版本。<br>Solaris 2.6 SunOS 5.6 1997年7月 包括Kerberos 5, PAM, TrueType字体, WebNFS <br>Solaris 2.5.1 SunOS 5.5.1 1996年5月 用户ID(uid_t)扩展为32-bits。<br>Solaris 2.5 SunOS 5.5 1995年11月 首先支持Ultra 1并包含了CDE <br><br>SUN对Solaris 7和Solaris 2.6已经不再销售但仍旧提供支持。更早期的版本已经没有支持。<br><br>SunOS仍旧用来称呼Solaris的核心. SunOS的版本号是以5.{Solaris版本号}来表示。例如，最新的Solaris发布版本，Solaris 10， 在SunOS 5.10上运行。Solaris的man手册是以SunOS为标记的，启动的时候也显示它, 但是"SunOS"这个词不再用于Sun的市场文档中。<br><br>OpenSolaris的衍生版本<br>Schillix, 最早的OpenSolaris发布版本 <br>Belenix, OpenSolaris发布版本之一，liveCD形式。 <br>Nexenta, 类Debian的发布版本-基于GNU软件和Solaris的SunOS内核，也被称为GNU/Solaris <br>Polaris, PowerPC移植版本 <br>Martux <br>Solari</div>
<img src ="http://www.blogjava.net/19851985lili/aggbug/120681.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-05-29 14:36 <a href="http://www.blogjava.net/19851985lili/articles/120681.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>深入理解软件包的配置、编译与安装</title><link>http://www.blogjava.net/19851985lili/articles/116578.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Thu, 10 May 2007 12:38:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/116578.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/116578.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/116578.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/116578.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/116578.html</trackback:ping><description><![CDATA[<h2>前言</h2>
<p>从源代码安装过软件的朋友一定对 ./configure &amp;&amp; make &amp;&amp; make install 安装三步曲非常熟悉了。然而究竟这个过程中的每一步幕后都发生了些什么呢？本文将带领你一探究竟。深入理解这个过程将有助于你在LFS的基础上玩出自己的花样来。不过需要说明的是本文对 Makefile 和 make 的讲解是相当近视和粗浅的，但是对于理解安装过程来说足够了。</p>
<h2>概述</h2>
<p>用一句话来解释这个过程就是：</p>
<p>根据源码包中 Makefile.in 文件的指示，configure 脚本检查当前的系统环境和配置选项，在当前目录中生成 Makefile 文件(还有其它本文无需关心的文件)，然后 make 程序就按照当前目录中的 Makefile 文件的指示将源代码编译为二进制文件，最后将这些二进制文件移动(即安装)到指定的地方(仍然按照 Makefile 文件的指示)。</p>
<p>由此可见 Makefile 文件是幕后的核心。要深入理解安装过程，必须首先对 Makefile 文件有充分的了解。本文将首先讲述 Makefile 与 make ，然后再讲述 configure 脚本。并且在讲述这两部分内容时，提供了尽可能详细的、可以运用于实践的参考资料。</p>
<h2>Makefile 与 make</h2>
<p>用一句话来概括Makefile 与 make 的关系就是：<br>Makefile 包含了所有的规则和目标，而 make 则是为了完成目标而去解释 Makefile 规则的工具。</p>
<h3>make 语法</h3>
<p>首先看看 make 的命令行语法：</p>
<p><code>make [options] [targets] [VAR=VALUE]...</code></p>
<p>[options]是命令行选项，可以用 make --help 命令查看全部，[VAR=VALUE]是在命令行上指定环境变量，这两个大家都很熟悉，将在稍后详细讲解。而[targets]是什么呢？字面的意思是"目标"，也就是希望本次 make 命令所完成的任务。凭经验猜测，这个[targets]大概可以用"ckeck","install"之类(也就是常见的测试和安装命令)。但是它到底是个啥玩意儿？不带任何"目标"的 make 命令是什么意思？为什么在安装 LFS 工具链中的 Perl-5.8.8 软件包时会出现"make perl utilities"这样怪异的命令？要回答这些问题必须首先理解 Makefile 文件中的"规则"。 </p>
<h3>Makefile 规则</h3>
<p>Makefile 规则包含了文件之间的依赖关系和更新此规则目标所需要的命令。</p>
<p>一个简单的 Makefile 规则是这样写的：</p>
<pre>TARGET : PREREQUISITES
COMMAND
</pre>
<dl>
<dt>TARGET
<dd>规则的目标。也就是可以被 make 使用的"目标"。有些目标可以没有依赖而只有动作(命令行)，比如"clean"，通常仅仅定义一系列删除中间文件的命令。同样，有些目标可以没有动作而只有依赖，比如"all"，通常仅仅用作"终极目标"。
<dt>PREREQUISITES
<dd>规则的依赖。通常一个目标依赖于一个或者多个文件。
<dt>COMMAND
<dd>规则的命令行。一个规则可以有零个或多个命令行。 </dd></dl>
<p>OK! 现在你明白[targets]是什么了，原来它们来自于 Makefile 文件中一条条规则的目标(TARGET)。另外，Makefile文件中第一条规则的目标被称为"终极目标"，也就是你省略[targets]参数时的目标(通常为"all")。</p>
<p>当你查看一个实际的 Makefile 文件时，你会发现有些规则非常复杂，但是它都符合规则的基本格式。此外，Makefile 文件中通常还包含了除规则以外的其它很多东西，不过本文只关心其中的变量。</p>
<h3>Makefile 变量</h3>
<p>Makefile 中的"变量"更像是 C 语言中的宏，代表一个文本字符串(变量的值)，可以用于规则的任何部分。变量的定义很简单：VAR=VALUE；变量的引用也很简单：$(VAR) 或者 ${VAR}。变量引用的展开过程是严格的文本替换过程，就是说变量值的字符串被精确的展开在变量被引用的地方。比如，若定义：VAR=c，那么，"$(VAR) $(VAR)-$(VAR) VAR.$(VAR)"将被展开为"c c-c VAR.c"。</p>
<p>虽然在 Makefile 中可以直接使用系统的环境变量，但是也可以通过在 Makefile 中定义同名变量来"遮盖"系统的环境变量。另一方面，我们可以在调用 make 时使用 -e 参数强制使系统中的环境变量覆盖 Makefile 中的同名变量，除此之外，在调用 make 的命令行上使用 VAR=VALUE 格式指定的环境变量也可以覆盖 Makefile 中的同名变量。</p>
<h3>Makefile 实例</h3>
<p>下面看一个简单的、实际的Makefile文件：</p>
<code>
<pre>CC=gcc
CPPFLAGS=
CFLAGS=-O2 -pipe
LDFLAGS=-s
PREFIX=/usr
all : prog1 prog2
prog1 : prog1.o
$(CC) $(LDFLAGS) -o prog1 prog1.o
prog1.o : prog1.c
$(CC) -c $(CFLAGS) prog1.c
prog2 : prog2.o
$(CC) $(CFLAGS) $(LDFLAGS) -o prog2 prog2.o
prog2.o : prog2.c
$(CC) -c $(CPPFLAGS) $(CFLAGS) prog2.c
clean :
rm -f *.{o,a} prog{1,2}
install : prog1 prog2
if ( test ! -d $(PREFIX)/bin ) ; then mkdir -p $(PREFIX)/bin ; fi
cp -f prog1 $(PREFIX)/bin/prog1
cp -f prog2 $(PREFIX)/bin/prog2
check test : prog1 prog2
prog1 &lt; sample1.ref &gt; sample1.rz
prog1 &lt; sample2.ref &gt; sample3.rz
cmp sample1.ok sample1.rz
cmp sample2.ok sample2.rz
</pre>
</code>
<p>从中可以看出，make 与 make all 以及 make prog1 prog2 三条命令其实是等价的。而常用的 make check 和 make install 也找到了归属。同时我们也看到了 Makefile 中的各种变量是如何影响编译的。针对这个特定的 Makefile ，你甚至可以省略安装三步曲中的 make 命令而直接使用 make install 进行安装。</p>
<p>同样，为了使用自定义的编译参数编译 prog2 ，我们可以使用 make prog2 CFLAGS="-O3 -march=athlon64" 或 CFLAGS="-O3 -march=athlon64" &amp;&amp; make -e prog2 命令达到此目的。</p>
<h3>Makefile 惯例</h3>
<p>下面是Makefile中一些约定俗成的目标名称及其含义：</p>
<dl>
<dt>all
<dd>编译整个软件包，但不重建任何文档。一般此目标作为默认的终极目标。此目标一般对所有源程序的编译和连接使用"-g"选项，以使最终的可执行程序中包含调试信息。可使用 strip 程序去掉这些调试符号。
<dt>clean
<dd>清除当前目录下在 make 过程中产生的文件。它不能删除软件包的配置文件，也不能删除 build 时创建的那些文件。
<dt>distclean
<dd>类似于"clean"，但增加删除当前目录下的的配置文件、build 过程产生的文件。
<dt>info
<dd>产生必要的 Info 文档。
<dt>check 或 test
<dd>完成所有的自检功能。在执行检查之前，应确保所有程序已经被创建(但可以尚未安装)。为了进行测试，需要实现在程序没有安装的情况下被执行的测试命令。
<dt>install
<dd>完成程序的编译并将最终的可执行程序、库文件等拷贝到指定的目录。此种安装一般不对可执行程序进行 strip 操作。
<dt>install-strip
<dd>和"install"类似，但是会对复制到安装目录下的可执行文件进行 strip 操作。
<dt>uninstall
<dd>删除所有由"install"安装的文件。
<dt>installcheck
<dd>执行安装检查。在执行安装检查之前，需要确保所有程序已经被创建并且被安装。
<dt>installdirs
<dd>创建安装目录及其子目录。它不能更改软件的编译目录，而仅仅是创建程序的安装目录。 </dd></dl>
<p>下面是 Makefile 中一些约定俗成的变量名称及其含义：</p>
<p>这些约定俗成的变量分为三类。第一类代表可执行程序的名字，例如 CC 代表编译器这个可执行程序；第二类代表程序使用的参数(多个参数使用空格分开)，例如 CFLAGS 代表编译器执行时使用的参数(一种怪异的做法是直接在 CC 中包含参数)；第三类代表安装目录，例如 prefix 等等，含义简单，下面只列出它们的默认值。</p>
<pre>AR   函数库打包程序，可创建静态库.a文档。默认是"ar"。
AS   汇编程序。默认是"as"。
CC   C编译程序。默认是"cc"。
CXX  C++编译程序。默认是"g++"。
CPP  C/C++预处理器。默认是"$(CC) -E"。
FC   Fortran编译器。默认是"f77"。
PC   Pascal语言编译器。默认是"pc"。
YACC Yacc文法分析器。默认是"yacc"。
ARFLAGS     函数库打包程序的命令行参数。默认值是"rv"。
ASFLAGS     汇编程序的命令行参数。
CFLAGS      C编译程序的命令行参数。
CXXFLAGS    C++编译程序的命令行参数。
CPPFLAGS    C/C++预处理器的命令行参数。
FFLAGS      Fortran编译器的命令行参数。
PFLAGS      Pascal编译器的命令行参数。
YFLAGS      Yacc文法分析器的命令行参数。
LDFLAGS     链接器的命令行参数。
prefix      /usr/local
exec_prefix $(prefix)
bindir      $(exec_prefix)/bin
sbindir     $(exec_prefix)/sbin
libexecdir  $(exec_prefix)/libexec
datadir     $(prefix)/share
sysconfdir  $(prefix)/etc
sharedstatedir $(prefix)/com
localstatedir  $(prefix)/var
libdir      $(exec_prefix)/lib
infodir     $(prefix)/info
includedir  $(prefix)/include
oldincludedir  $(prefix)/include
mandir      $(prefix)/man
srcdir      需要编译的源文件所在的目录，无默认值
</pre>
<h3>make 选项</h3>
<p>最后说说 make 的命令行选项(以Make-3.81版本为准)：</p>
<dl>
<dt>-B, --always-make
<dd>无条件的重建所有规则的目标，而不是根据规则的依赖关系决定是否重建某些目标文件。
<dt>-C DIR, --directory=DIR
<dd>在做任何动作之前先切换工作目录到 DIR ，然后再执行 make 程序。
<dt>-d
<dd>在 make 执行过程中打印出所有的调试信息。包括：make 认为那些文件需要重建；那些文件需要比较它们的最后修改时间、比较的结果；重建目标所要执行的命令；使用的隐含规则等。使用该选项我们可以看到 make 构造依赖关系链、重建目标过程的所有信息，它等效于"-debug=a"。
<dt>--debug=FLAGS
<dd>在 make 执行过程中打印出调试信息。FLAGS 用于控制调试信息级别：
<dl>
<dt>a
<dd>输出所有类型的调试信息
<dt>b
<dd>输出基本调试信息。包括：那些目标过期、是否重建成功过期目标文件。
<dt>v
<dd>除 b 级别以外还包括：解析的 makefile 文件名，不需要重建文件等。
<dt>i
<dd>除 b 级别以外还包括：所有使用到的隐含规则描述。
<dt>j
<dd>输出所有执行命令的子进程，包括命令执行的 PID 等。
<dt>m
<dd>输出 make 读取、更新、执行 makefile 的信息。 </dd></dl>
<dt>-e, --environment-overrides
<dd>使用系统环境变量的定义覆盖 Makefile 中的同名变量定义。
<dt>-f FILE, --file=FILE, --makefile=FILE
<dd>将 FILE 指定为 Makefile 文件。
<dt>-h, --help
<dd>打印帮助信息。
<dt>-i, --ignore-errors
<dd>忽略规则命令执行过程中的错误。
<dt>-I DIR, --include-dir=DIR
<dd>指定包含 Makefile 文件的搜索目录。使用多个"-I"指定目录时，搜索目录按照指定顺序进行。
<dt>-j [N], --jobs[=N]
<dd>指定并行执行的命令数目。在没有指定"-j"参数的情况下，执行的命令数目将是系统允许的最大可能数目。
<dt>-k, --keep-going
<dd>遇见命令执行错误时不终止 make 的执行，也就是尽可能执行所有的命令，直到出现致命错误才终止。
<dt>-l [N], --load-average[=N], --max-load[=N]
<dd>如果系统负荷超过 LOAD(浮点数)，不再启动新任务。
<dt>-L, --check-symlink-times
<dd>同时考察符号连接的时间戳和它所指向的目标文件的时间戳，以两者中较晚的时间戳为准。
<dt>-n, --just-print, --dry-run, --recon
<dd>只打印出所要执行的命令，但并不实际执行命令。
<dt>-o FILE, --old-file=FILE, --assume-old=FILE
<dd>即使相对于它的依赖已经过期也不重建 FILE 文件；同时也不重建依赖于此文件任何文件。
<dt>-p, --print-data-base
<dd>命令执行之前，打印出 make 读取的 Makefile 的所有数据（包括规则和变量的值），同时打印出 make 的版本信息。如果只需要打印这些数据信息，可以使用 make -qp 命令。查看 make 执行前的预设规则和变量，可使用命令 make &#8211;p -f /dev/null 。
<dt>-q, --question
<dd>"询问模式"。不运行任何命令，并且无输出，只是返回一个查询状态。返回状态为 0 表示没有目标需要重建，1 表示存在需要重建的目标，2 表示有错误发生。
<dt>-r, --no-builtin-rules
<dd>取消所有内嵌的隐含规则，不过你可以在 Makefile 中使用模式规则来定义规则。同时还会取消所有支持后追规则的隐含后缀列表，同样我们也可以在 Makefile 中使用".SUFFIXES"定义我们自己的后缀规则。此选项不会取消 make 内嵌的隐含变量。
<dt>-R, --no-builtin-variables
<dd>取消 make 内嵌的隐含变量，不过我们可以在 Makefile 中明确定义某些变量。注意，此选项同时打开了"-r"选项。因为隐含规则是以内嵌的隐含变量为基础的。
<dt>-s, --silent, --quiet
<dd>不显示所执行的命令。
<dt>-S, --no-keep-going, --stop
<dd>取消"-k"选项。在递归的 make 过程中子 make 通过 MAKEFLAGS 变量继承了上层的命令行选项。我们可以在子 make 中使用"-S"选项取消上层传递的"-k"选项，或者取消系统环境变量 MAKEFLAGS 中的"-k"选项。
<dt>-t, --touch
<dd>更新所有目标文件的时间戳到当前系统时间。防止 make 对所有过时目标文件的重建。
<dt>-v, --version
<dd>打印版本信息。
<dt>-w, --print-directory
<dd>在 make 进入一个目录之前打印工作目录。使用"-C"选项时默认打开这个选项。
<dt>--no-print-directory
<dd>取消"-w"选项。可以是用在递归的 make 调用过程中，取消"-C"参数将默认打开"-w"。
<dt>-W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE
<dd>设定 FILE 文件的时间戳为当前时间，但不改变文件实际的最后修改时间。此选项主要是为实现了对所有依赖于 FILE 文件的目标的强制重建。
<dt>--warn-undefined-variables
<dd>在发现 Makefile 中存在对未定义的变量进行引用时给出告警信息。此功能可以帮助我们调试一个存在多级套嵌变量引用的复杂 Makefile 。但是：我们建议在书写 Makefile 时尽量避免超过三级以上的变量套嵌引用。 </dd></dl>
<h2>configure</h2>
<p>此阶段的主要目的是生成 Makefile 文件，是最关键的运筹帷幄阶段，基本上所有可以对安装过程进行的个性化调整都集中在这一步。</p>
<p>configure 脚本能够对 Makefile 中的哪些内容产生影响呢？基本上可以这么说：所有内容，包括本文最关心的 Makefile 规则与 Makefile 变量。那么又是哪些因素影响着最终生成的 Makefile 文件呢？答曰：系统环境和配置选项。</p>
<p>配置选项的影响是显而易见的。但是"系统环境"的概念却很宽泛，包含很多方面内容，不过我们这里只关心环境变量，具体说来就是将来会在 Makefile 中使用到的环境变量以及与 Makefile 中的变量同名的环境变量。</p>
<h3>通用 configure 语法</h3>
<p>在进一步讲述之前，先看看 configure 脚本的语法，一般有两种：</p>
<p>configure [OPTIONS] [VAR=VALUE]...</p>
<p>configure [OPTIONS] [HOST]</p>
<p>不管是哪种语法，我们都可以用 configure --help 查看所有可用的[OPTIONS]，并且通常在结尾部分还能看到这个脚本所关心的环境变量有哪些。在本文中将对这两种语法进行合并，使用下面这种简化的语法：</p>
<p>configure [OPTIONS]</p>
<p>这种语法能够被所有的 configure 脚本所识别，同时也能通过设置环境变量和使用特定的[OPTIONS]完成上述两种语法的一切功能。</p>
<h3>通用 configure 选项</h3>
<p>虽然每个软件包的 configure 脚本千差万别，但是它们却都有一些共同的选项，也基本上都遵守相同的选项语法。</p>
<h4>脚本自身选项</h4>
<dl>
<dt>--help
<dd>显示帮助信息。
<dt>--version
<dd>显示版本信息。
<dt>--cache-file=FILE
<dd>在FILE文件中缓存测试结果(默认禁用)。
<dt>--no-create
<dd>configure脚本运行结束后不输出结果文件，常用于正式编译前的测试。
<dt>--quiet, --silent
<dd>不显示脚本工作期间输出的"checking ..."消息。 </dd></dl>
<h4>目录选项</h4>
<dl>
<dt>--srcdir=DIR
<dd>源代码文件所在目录，默认为configure脚本所在目录或其父目录。
<dt>--prefix=PREFIX
<dd>体系无关文件的顶级安装目录PREFIX ，默认值一般是 /usr/local 或 /usr/local/pkgName
<dt>--exec-prefix=EPREFIX
<dd>体系相关文件的顶级安装目录EPREFIX ，默认值一般是 PREFIX
<dt>--bindir=DIR
<dd>用户可执行文件的存放目录DIR ，默认值一般是 EPREFIX/bin
<dt>--sbindir=DIR
<dd>系统管理员可执行目录DIR ，默认值一般是 EPREFIX/sbin
<dt>--libexecdir=DIR
<dd>程序可执行目录DIR ，默认值一般是 EPREFIX/libexec
<dt>--datadir=DIR
<dd>通用数据文件的安装目录DIR ，默认值一般是 PREFIX/share
<dt>--sysconfdir=DIR
<dd>只读的单一机器数据目录DIR ，默认值一般是 PREFIX/etc
<dt>--sharedstatedir=DIR
<dd>可写的体系无关数据目录DIR ，默认值一般是 PREFIX/com
<dt>--localstatedir=DIR
<dd>可写的单一机器数据目录DIR ，默认值一般是 PREFIX/var
<dt>--libdir=DIR
<dd>库文件的安装目录DIR ，默认值一般是 EPREFIX/lib
<dt>--includedir=DIR
<dd>C头文件目录DIR ，默认值一般是 PREFIX/include
<dt>--oldincludedir=DIR
<dd>非gcc的C头文件目录DIR ，默认值一般是 /usr/include
<dt>--infodir=DIR
<dd>Info文档的安装目录DIR ，默认值一般是 PREFIX/info
<dt>--mandir=DIR
<dd>Man文档的安装目录DIR ，默认值一般是 PREFIX/man </dd></dl>
<h4>体系结构选项</h4>
<p>玩交叉编译的朋友对这些选项已经很熟悉了，并且对于通常的交叉编译情况而言，HOST == BUILD != TARGET 。但是对于不使用交叉编译的朋友也不必担心，将它们三个都设为相同即可。</p>
<dl>
<dt>--host=HOST
<dd>运行工具链的机器，默认是 config.guess 脚本的输出结果。
<dt>--build=BUILD
<dd>用来建立工具链的机器，默认值是 HOST
<dt>--target=TARGET
<dd>工具链所生成的二进制代码最终运行的机器，默认值是 HOST </dd></dl>
<h4>特性选项</h4>
<dl>
<dt>--enable-FEATURE
<dd>启用FEATURE特性
<dt>--disable-FEATURE
<dd>禁用FEATURE特性
<dt>--with-PACKAGE[=DIR]
<dd>启用附加软件包PACKAGE，亦可同时指定PACKAGE所在目录DIR
<dt>--without-PACKAGE
<dd>禁用附加软件包PACKAGE </dd></dl>
<h3>通用环境变量</h3>
<p>除了上述通用的选项外，下列环境变量影响着最终生成的 Makefile 文件：</p>
<dl>
<dt>CPP
<dd>C预处理器命令
<dt>CXXCPP
<dd>C++预处理器命令
<dt>CPPFLAGS
<dd>C/C++预处理器命令行参数
<dt>CC
<dd>C编译器命令
<dt>CFLAGS
<dd>C编译器命令行参数
<dt>CXX
<dd>C++编译器命令
<dt>CXXFLAGS
<dd>C++编译器命令行参数
<dt>LDFLAGS
<dd>连接器命令行参数 </dd></dl>
<p>至于设置这些环境变量的方法，你可以将它们 export 为全局变量在全局范围内使用，也可以在命令行上使用 [VAR=VALUE]... configure [OPTIONS] 的语法局部使用。此处就不详细描述了。</p>
<img src ="http://www.blogjava.net/19851985lili/aggbug/116578.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-05-10 20:38 <a href="http://www.blogjava.net/19851985lili/articles/116578.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux 2.6.19.x 内核编译配置选项简介</title><link>http://www.blogjava.net/19851985lili/articles/116577.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Thu, 10 May 2007 12:30:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/116577.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/116577.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/116577.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/116577.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/116577.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Code maturity level options代码成熟度选项Prompt for development and/or incomplete code/drivers显示尚在开发中或尚未完成的代码与驱动.除非你是测试人员或者开发者,否则请勿选择 General setup常规设置Local version - append to kernel release在内...&nbsp;&nbsp;<a href='http://www.blogjava.net/19851985lili/articles/116577.html'>阅读全文</a><img src ="http://www.blogjava.net/19851985lili/aggbug/116577.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-05-10 20:30 <a href="http://www.blogjava.net/19851985lili/articles/116577.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GCC编译优化指南</title><link>http://www.blogjava.net/19851985lili/articles/116576.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Thu, 10 May 2007 12:27:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/116576.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/116576.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/116576.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/116576.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/116576.html</trackback:ping><description><![CDATA[<h2>前言</h2>
<p>网上关于编译优化的文章很多，但大多零零散散，不成体系，本文试图给出一个完整和清晰的优化思路，同时提供在实践中如何进行优化的详尽参考。但是，在介绍所有优化知识之前首先引用LFS-Book中的一句忠告：&#8220;使用编译器优化得到的小幅度性能提升，与它带来的风险相比微不足道&#8221;。你还要进行优化吗？</p>
<p>%@&#=^%~*# ... <br>OK, crazy guy! Let's Go!!</p>
<p>在继续之前，作者还是奉劝各位：如果追求极致的优化，那么它将是一件既耗时又麻烦的事情，你会陷入无止尽的测试、测试、再测试&#8230;&#8230;另外 Gentoo wiki 上有这么一句话："GCC has well over a hundred individual optimization flags and it would be insane to try and describe them all."所以本文不会涉及全部GCC优化选项。最后作者还是再罗唆一句：优化应当适可而止为好，将精力留出来做一些其它事情会更有意义！</p>
<h2>先决条件</h2>
<p>本文的主要读者是 LFS/Gentoo 的玩家，基本上比较 crazy 的玩家都接触过，如果你之前从未使用过 LFS/Gentoo ，请先按照<a href="http://lamp.linux.gov.cn/Linux/LFS-6.2/index.html"><u><font color=#800080>《Linux From Scratch 6.2 中文版》</font></u></a>做一遍 LFS ，然后再来阅读此文将会更有意义。另外，本文是建立在<a href="http://lamp.linux.gov.cn/Linux/inside_config_compile_install.html"><u><font color=#800080>《深入理解软件包的配置、编译与安装》</font></u></a>一文基础之上的，在开始阅读本文之前，请先阅读它。</p>
<h2>基本原理</h2>
<p>我们首先从三个方面来看与优化相关的内容：</p>
<ol>
    <li>从运行时的依赖关系来看，对性能有较大影响的组件有 kernel 和 glibc ，虽然这严格说来这不属于本文的话题，但是经过精心选择、精心配置、精心编译的内核与C库将对提高系统的运行速度起着基础性的作用。
    <li>从被编译的软件包来看，每个软件包的 configure 脚本都提供了许多配置选项，其中有许多选项是与性能息息相关的。比如，对于 Apache-2.2.3 而言，你可以使用 --enable-MODULE=static 将模块静态编译进核心，使用 --disable-MODULE 禁用不需要的模块，使用 --with-mpm=MPM 选择一个高效的多路处理模块，在不需要IPv6的情况下使用 --disable-ipv6 禁用IPv6支持，在不使用线程化的MPM时使用 --disable-threads 禁用线程支持，等等&#8230;&#8230;这部分内容显然不可能在本文中进行完整的讲述，本文只能讲述与优化相关的通用选项。针对特定的软件包，请在编译前使用 configure --help 查看所有选项，并精心选择。
    <li>从编译过程自身来看，将源代码编译为二进制文件是在 Makefile 文件的指导下，由 make 程序调用一条条编译命令完成的。而将源代码编译为二进制文件又需要经过以下四个步骤：预处理(cpp) &#8594; 编译(gcc或g++) &#8594; 汇编(as) &#8594; 连接(ld) ；括号中表示每个阶段所使用的程序，它们分别属于 GCC 和 Binutils 软件包。显然的，优化应当从编译工具自身的选择以及控制编译工具的行为入手。 </li>
</ol>
<p>大体上编译优化就这"三板斧"(其实是"三脚猫")了，本文接下来的内容将讨论这只猫的后两只脚。</p>
<h2>编译工具的选择</h2>
<p>对于编译工具自身的选择，在假定使用 Binutils 和 GCC 以及 Make 的前提下，没什么好说的，基本上新版本都能带来性能提升，同时比老版本对新硬件的支持更好，所以应当尽量选用新版本。不过追新也可能带来系统的不稳定，这就要针对实际情况进行权衡了。本文以 Binutils-2.17 和 GCC-4.1.1 以及 Make-3.81 为例进行说明。</p>
<h2>configure 选项</h2>
<p>这里我们只讲解通用的"体系结构选项"，由于"特性选项"在每个软件包之间千差万别，所以不可能在此处进行讲解。</p>
<p>这部分内容很简单，并且其含义也是不言而喻的，下面只列出常用的值：</p>
<ul>
    <li>i586-pc-linux-gnu
    <li>i686-pc-linux-gnu
    <li>x86_64-pc-linux-gnu
    <li>powerpc-unknown-linux-gnu
    <li>powerpc64-unknown-linux-gnu </li>
</ul>
<p>如果你实在不知道应当使用哪一个，那么就干脆不使用这几个选项，让 config.guess 脚本自己去猜吧，反正也挺准的。</p>
<h2>编译选项</h2>
<p>让我们先看看 Makefile 规则中的编译命令通常是怎么写的。</p>
<p>大多数软件包遵守如下约定俗成的规范：</p>
<pre style="BACKGROUND: #edc; FONT-FAMILY: Verdana, 宋体">#1,首先从源代码生成目标文件(预处理,编译,汇编)，"-c"选项表示不执行链接步骤。
$(CC) $(CPPFLAGS) $(CFLAGS) example.c   -c   -o example.o
#2,然后将目标文件连接为最终的结果(连接)，"-o"选项用于指定输出文件的名字。
$(CC) $(LDFLAGS) example.o   -o example
#有一些软件包一次完成四个步骤：
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) example.c   -o example
</pre>
<p>当然也有少数软件包不遵守这些约定俗成的规范，比如：</p>
<pre style="BACKGROUND: #edc; FONT-FAMILY: Verdana, 宋体">#1,有些在命令行中漏掉应有的Makefile变量(注意：有些遗漏是故意的)
$(CC) $(CFLAGS) example.c    -c   -o example.o
$(CC) $(CPPFLAGS) example.c  -c   -o example.o
$(CC) example.o   -o example
$(CC) example.c   -o example
#2,有些在命令行中增加了不必要的Makefile变量
$(CC) $(CFLAGS) $(LDFLAGS) example.o   -o example
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) example.c   -c   -o example.o
</pre>
<p>当然还有极个别软件包完全是"胡来"：乱用变量(增加不必要的又漏掉了应有的)者有之，不用$(CC)者有之，不一而足.....</p>
<p>尽管将源代码编译为二进制文件的四个步骤由不同的程序(cpp,gcc/g++,as,ld)完成，但是事实上 cpp, as, ld 都是由 gcc/g++ 进行间接调用的。换句话说，控制了 gcc/g++ 就等于控制了所有四个步骤。从 Makefile 规则中的编译命令可以看出，编译工具的行为全靠 CC/CXX CPPFLAGS CFLAGS/CXXFLAGS LDFLAGS 这几个变量在控制。当然理论上控制编译工具行为的还应当有 AS ASFLAGS ARFLAGS 等变量，但是实践中基本上没有软件包使用它们。</p>
<p>那么我们如何控制这些变量呢？一种简易的做法是首先设置与这些 Makefile 变量同名的环境变量并将它们 export 为全局，然后运行 configure 脚本，大多数 configure 脚本会使用这同名的环境变量代替 Makefile 中的值。但是少数 configure 脚本并不这样做，你必须手动编辑生成的 Makefile 文件，在其中寻找这些变量并修改它们的值，一些源码包在每个子文件夹中都有 Makefile 文件，真是一件很累人的事！</p>
<h3>CC 与 CXX</h3>
<p>这是 C 与 C++ 编译器命令。默认值一般是 "gcc" 与 "g++"。这个变量本来与优化没有关系，但是有些人因为担心软件包不遵守那些约定俗成的规范，害怕自己苦心设置的 CFLAGS/CXXFLAGS/LDFLAGS 之类的变量被忽略了，而索性将原本应当放置在其它变量中的选项一股老儿塞到 CC 或 CXX 中，比如：CC="gcc -march=k8 -O2 -s"。这是一种怪异的用法，本文不提倡这种做法，而是提倡按照变量本来的含义使用变量。</p>
<h3>CPPFLAGS</h3>
<p>这是用于预处理阶段的选项。不过能够用于此变量的选项，看不出有哪个与优化相关。如果你实在想设一个，那就使用下面这个吧：</p>
<dl>
<dt>-DNDEBUG
<dd>"NDEBUG"是一个标准的 ANSI 宏，表示不进行调试编译。 </dd></dl>
<h3>CFLAGS 与 CXXFLAGS</h3>
<p>CFLAGS 表示用于 C 编译器的选项，CXXFLAGS 表示用于 C++ 编译器的选项。这两个变量实际上涵盖了编译和汇编两个步骤。大多数程序和库在编译时默认的优化级别是"2"(使用"-O2"选项)并且在Intel/AMD平台上默认按照i386处理器来编译，也就是 CFLAGS="-O2 -march=i386", CXXFLAGS=$CFLAGS 。事实上，"-O2"已经启用绝大多数安全的优化选项了。另一方面，由于大部分选项可以同时用于这两个变量，所以仅在最后讲述只能用于其中一个变量的选项。[提醒]下面所列选项皆为<strong>非默认</strong>选项，你只要按需添加即可。</p>
<p>先说说"-O3"在"-O2"基础上增加的几项：</p>
<dl>
<dt>-finline-functions
<dd>允许编译器选择某些简单的函数在其被调用处展开，比较安全的选项，特别是在CPU二级缓存较大时建议使用。
<dt>-funswitch-loops
<dd>将循环体中不改变值的变量移动到循环体之外。
<dt>-fgcse-after-reload
<dd>为了清除多余的溢出，在重载之后执行一个额外的载入消除步骤。 </dd></dl>
<p>另外：</p>
<dl>
<dt>-fomit-frame-pointer
<dd>对于不需要栈指针的函数就不在寄存器中保存指针，因此可以忽略存储和检索地址的代码，同时对许多函数提供一个额外的寄存器。所有"-O"级别都打开它，但仅在调试器可以不依靠栈指针运行时才有效。在AMD64平台上此选项默认打开，但是在x86平台上则默认关闭。建议显式的设置它(已知在x86上会造成glibc-2.3.4出现nptl测试错误)。
<dt>-falign-functions=N<br>-falign-jumps=N<br>-falign-loops=N<br>-falign-labels=N
<dd>这四个对齐选项在"-O2"中打开，但是其中的N使用的是默认值。如果你想指定不同于默认值的N，也可以单独指定。比如，对于L2-cache&gt;=1M的cpu而言，指定 -falign-functions=64 可能会获得更好的性能。 </dd></dl>
<p>调试选项：</p>
<dl>
<dt>-fpretend-float
<dd>交叉编译的时候，假定目标机和宿主机使用同样的浮点格式。它导致输出错误的浮点常数，但是在目标机上运行的时候，真实的指令序列有可能和GNU CC希望的一样。
<dt>-fprofile-arcs
<dd>在使用这一选项编译程序并运行它以创建包含每个代码块的执行次数的文件后，程序可以再次使用 -fbranch-probabilities 编译，文件中的信息可以用来优化那些经常选取的分支。如果没有这些信息，gcc将猜测哪个分支将被经常运行以进行优化。这类优化信息将会存放在一个以源文件为名字的并以".da"为后缀的文件中。 </dd></dl>
<p>全局选项：</p>
<dl>
<dt>-pipe
<dd>在编译过程的不同阶段之间使用管道而非临时文件进行通信，可以加快编译速度。建议使用。 </dd></dl>
<p>目录选项：</p>
<dl>
<dt>--sysroot=dir
<dd>将dir作为逻辑根目录。比如编译器通常会在 /usr/include 和 /usr/lib 中搜索头文件和库，使用这个选项后将在 dir/usr/include 和 dir/usr/lib 目录中搜索。如果使用这个选项的同时又使用了 -isysroot 选项，则此选项仅作用于库文件的搜索路径，而 -isysroot 选项将作用于头文件的搜索路径。这个选项与优化无关，但是在 CLFS 中有着神奇的作用。 </dd></dl>
<p>代码生成选项：</p>
<dl>
<dt>-fno-bounds-check
<dd>关闭所有对数组访问的边界检查。该选项将提高数组索引的性能，但当超出数组边界时，可能会造成不可接受的行为。
<dt>-freg-struct-return
<dd>如果struct和union足够小就通过寄存器返回，这将提高较小结构的效率。如果不够小，无法容纳在一个寄存器中，将使用内存返回。这是一个比较安全的选项。
<dt>-fpic
<dd>生成可用于共享库的位置独立代码。所有的内部寻址均通过全局偏移表完成。要确定一个地址，需要将代码自身的内存位置作为表中一项插入。该选项产生可以在共享库中存放并从中加载的目标模块。
<dt>-fstack-check
<dd>为防止程序栈溢出而进行必要的检测，仅在多线程环境中运行时才可能需要它。
<dt>-fvisibility=hidden
<dd>设置默认的ELF镜像中符号的可见性为隐藏。使用这个特性可以非常充分的提高连接和加载共享库的性能，生成更加优化的代码，提供近乎完美的API输出和防止符号碰撞。我们强烈建议你在编译任何共享库的时候使用该选项。参见 -fvisibility-inlines-hidden 选项。 </dd></dl>
<p>硬件体系结构相关选项[仅仅针对x86与x86_64]：</p>
<dl>
<dt>-march=cpu-type
<dd>为特定的cpu-type编译二进制代码(不能在更低级别的cpu上运行)。Intel可以用：pentium2, pentium3(=pentium3m), pentium4(=pentium4m), pentium-m, prescott, nocona 。AMD可以用：k6-2(=k6-3), athlon(=athlon-tbird), athlon-xp(=athlon-mp), k8(=opteron=athlon64=athlon-fx)
<dt>-mfpmath=sse
<dd>P3和athlon-xp级别及以上的cpu支持"sse"浮点指令。不过由于glibc头文件的限制，"sse"常常使编译出的二进制文件运行更慢，建议不要使用该选项。
<dt>-malign-double
<dd>将double, long double, long long对齐于双字节边界上；有助于生成更高速的代码，但是程序的尺寸会变大，并且可能不能与未使用该选项编译的程序一起工作。
<dt>-m128bit-long-double
<dd>指定long double为128位，pentium以上的cpu更喜欢这种标准，并且符合x86-64的ABI标准，但是却不附合i386的ABI标准。
<dt>-mregparm=N
<dd>指定用于传递整数参数的寄存器数目(默认不使用寄存器)。0&lt;=N&lt;=3 ；注意：当N&gt;0时你必须使用同一参数重新构建所有的模块，包括所有的库。
<dt>-msseregparm
<dd>使用SSE寄存器传递float和double参数和返回值。注意：当你使用了这个选项以后，你必须使用同一参数重新构建所有的模块，包括所有的库。
<dt>-mmmx<br>-mno-mmx<br>-msse<br>-mno-sse<br>-msse2<br>-mno-sse2<br>-msse3<br>-mno-sse3<br>-m3dnow<br>-mno-3dnow
<dd>是否使用相应的扩展指令集以及内置函数，按照自己的cpu选择吧！
<dt>-maccumulate-outgoing-args
<dd>指定在函数引导段中计算输出参数所需最大空间，这在大部分现代cpu中是较快的方法；缺点是会增加代码尺寸。
<dt>-mthreads
<dd>支持Mingw32的线程安全异常处理。对于依赖于线程安全异常处理的程序，必须启用这个选项。使用这个选项时会定义"-D_MT"，它将包含使用选项"-lmingwthrd"连接的一个特殊的线程辅助库，用于为每个线程清理异常处理数据。
<dt>-minline-all-stringops
<dd>内联所有的字符串操作。可以提高字符串操作的性能，但是会增加代码尺寸。
<dt>-momit-leaf-frame-pointer
<dd>不为叶子函数在寄存器中保存栈指针，这样可以节省寄存器，但是将会使调试变的困难。注意：不要与 -fomit-frame-pointer 同时使用，因为会造成代码效率低下。
<dt>-m64
<dd>生成专门运行于64位环境的代码，不能运行于32位环境，仅用于x86_64[含EMT64]环境。
<dt>-mcmodel=small
<dd>[默认值]程序和它的符号必须位于2GB以下的地址空间。指针仍然是64位。程序可以静态连接也可以动态连接。仅用于x86_64[含EMT64]环境。
<dt>-mcmodel=kernel
<dd>内核运行于2GB地址空间之外。在编译linux内核时必须使用该选项！仅用于x86_64[含EMT64]环境。
<dt>-mcmodel=medium
<dd>程序必须位于2GB以下的地址空间，但是它的符号可以位于任何地址空间。程序可以静态连接也可以动态连接。注意：共享库不能使用这个选项编译！仅用于x86_64[含EMT64]环境。 </dd></dl>
<p>其它优化选项：</p>
<dl>
<dt>-fforce-addr
<dd>必须将地址复制到寄存器中才能对他们进行运算。由于所需地址通常在前面已经加载到寄存器中了，所以这个选项可以改进代码。
<dt>-finline-limit=n
<dd>对伪指令数超过n的函数，编译程序将不进行内联展开，默认为600。增大此值将增加编译时间和编译内存用量，但是可以得到更优化的结果。
<dt>-fmerge-all-constants
<dd>试图将跨编译单元的所有常量值和数组合并在一个副本中。但是标准C/C++要求每个变量都必须有不同的存储位置。
<dt>-fgcse-sm
<dd>在全局公共子表达式消除之后运行存储移动，以试图将存储移出循环。gcc-3.4中曾属于"-O2"级别的选项。
<dt>-fgcse-las
<dd>在全局公共子表达式消除之后消除多余的在存储到同一存储区域之后的加载操作。gcc-3.4中曾属于"-O2"级别的选项。
<dt>-floop-optimize2
<dd>使用 -floop-optimize 循环优化(包含在"-O1"中)的改进版本。
<dt>-funsafe-loop-optimizations
<dd>假定循环不会溢出，并且循环的退出条件不是无穷。这将可以在一个比较广的范围内进行循环优化，即使优化器自己也不能断定这样做是否正确。
<dt>-fsched-spec-load
<dd>允许一些装载指令执行一些投机性的动作。
<dt>-ftree-loop-linear
<dd>在trees上进行线型循环转换。它能够改进缓冲性能并且允许进行更进一步的循环优化。
<dt>-fivopts
<dd>在trees上执行归纳变量优化。
<dt>-ftree-vectorize
<dd>在trees上执行循环向量化。
<dt>-ftracer
<dd>执行尾部复制以扩大超级块的尺寸，它简化了函数控制流，从而允许其它的优化措施做的更好。据说挺有效。
<dt>-funroll-loops
<dd>仅对循环次数能够在编译时或运行时确定的循环进行展开，生成的代码尺寸将变大，执行速度可能变快也可能变慢。
<dt>-fprefetch-loop-arrays
<dd>生成数组预读取指令，对于使用巨大数组的程序可以加快代码执行速度，适合数据库相关的大型软件等。具体效果如何取决于代码。
<dt>-fweb
<dd>为每个web结构体分配一个伪寄存器，提供更佳的缓存器使用率。gcc-3.4中曾属于"-O3"级别的选项。
<dt>-ffast-math
<dd>违反IEEE/ANSI标准以提高浮点数计算速度，是个危险的选项，仅在编译不需要严格遵守IEEE规范且浮点计算密集的程序考虑采用。
<dt>-fsingle-precision-constant
<dd>将浮点常量作为单精度常量对待，而不是隐式地将其转换为双精度。
<dt>-fbranch-probabilities
<dd>在使用 -fprofile-arcs 选项编译程序并执行它来创建包含每个代码块执行次数的文件之后，程序可以利用这一选项再次编译，文件中所产生的信息将被用来优化那些经常发生的分支代码。如果没有这些信息，gcc将猜测那一分支可能经常发生并进行优化。这类优化信息将会存放在一个以源文件为名字的并以".da"为后缀的文件中。
<dt>-frename-registers
<dd>试图驱除代码中的假依赖关系，这个选项对具有大量寄存器的机器很有效。gcc-3.4中曾属于"-O3"级别的选项。
<dt>-fbranch-target-load-optimize<br>-fbranch-target-load-optimize2
<dd>在执行序启动以及结尾之前执行分支目标缓存器加载最佳化。
<dt>-fstack-protector
<dd>在关键函数的堆栈中设置保护值。在返回地址和返回值之前，都将验证这个保护值。如果出现了缓冲区溢出，保护值不再匹配，程序就会退出。程序每次运行，保护值都是随机的，因此不会被远程猜出。
<dt>-fstack-protector-all
<dd>同上，但是在所有函数的堆栈中设置保护值。
<dt>--param max-gcse-memory=xxM
<dd>执行GCSE优化使用的最大内存量(xxM)，太小将使该优化无法进行，默认为50M。
<dt>--param max-gcse-passes=n
<dd>执行GCSE优化的最大迭代次数，默认为 1。 </dd></dl>
<p>传递给汇编器的选项：</p>
<dl>
<dt>-Wa,options
<dd>options是一个或多个由逗号分隔的可以传递给汇编器的选项列表。其中的每一个均可作为命令行选项传递给汇编器。
<dt>-Wa,--strip-local-absolute
<dd>从输出符号表中移除局部绝对符号。
<dt>-Wa,-R
<dd>合并数据段和正文段，因为不必在数据段和代码段之间转移，所以它可能会产生更短的地址移动。
<dt>-Wa,--64
<dd>设置字长为64。仅用于x86_64，并且仅对ELF格式的目标文件有效。 </dd></dl>
<p>仅可用于 CFLAGS 的选项：</p>
<dl>
<dt>-fhosted
<dd>按宿主环境编译，其中需要有完整的标准库，入口必须是main()函数且具有int型的返回值。内核以外几乎所有的程序都是如此。该选项隐含设置了 -fbuiltin，且与 -fno-freestanding 等价。
<dt>-ffreestanding
<dd>按独立环境编译，该环境可以没有标准库，且对main()函数没有要求。最典型的例子就是操作系统内核。该选项隐含设置了 -fno-builtin，且与 -fno-hosted 等价。 </dd></dl>
<p>仅可用于 CXXFLAGS 的选项：</p>
<dl>
<dt>-fno-enforce-eh-specs
<dd>C++标准要求强制检查异常违例，但是该选项可以关闭违例检查，从而减小生成代码的体积。该选项类似于定义了"NDEBUG"宏。
<dt>-fno-rtti
<dd>如果没有使用'dynamic_cast'和'typeid'，可以使用这个选项禁止为包含虚方法的类生成运行时表示代码，从而节约空间。此选项对于异常处理无效(仍然按需生成rtti代码)。
<dt>-ftemplate-depth-n
<dd>将最大模版实例化深度设为'n'，符合标准的程序不能超过17，默认值为500。
<dt>-fno-optional-diags
<dd>禁止输出诊断消息，C++标准并不需要这些消息。
<dt>-fno-threadsafe-statics
<dd>GCC自动在访问C++局部静态变量的代码上加锁，以保证线程安全。如果你不需要线程安全，可以使用这个选项。
<dt>-fvisibility-inlines-hidden
<dd>默认隐藏所有内联函数，从而减小导出符号表的大小，既能缩减文件的大小，还能提高运行性能，我们强烈建议你在编译任何共享库的时候使用该选项。参见 -fvisibility=hidden 选项。 </dd></dl>
<h3>LDFLAGS</h3>
<p>LDFLAGS 是传递给连接器的选项。这是一个常被忽视的变量，事实上它对优化的影响也是很明显的。</p>
<dl>
<dt>-s
<dd>删除可执行程序中的所有符号表和所有重定位信息。其结果与运行命令 strip 所达到的效果相同。
<dt>-static
<dd>连接器将忽略动态连接库，同时通过将静态目标文件直接包含到结果目标文件完成对所有引用的解析。
<dt>-shared
<dd>链接器将生成共享目标代码，该共享库可在运行时动态链接到程序形成完整可执行体。而且，如果使用 gcc 命令创建共享库作为其输出，该选项可以防止链接器将缺失 main() 方法视为错误。为了可以正确工作，应该一致地使用选项 -fpic 和 -fPIC 以及目标平台选项编译构成同一库的所有共享目标模块。特别是，该选项可能需要生成特殊代码来让构造函数正常工作。由于不正确的选项设定而产生的错误可能很不明显，而且也没有警告消息。
<dt>-shared-libgcc
<dd>链接共享版本的libgcc 。当应用程序需要从一个共享库代码抛出另一个共享库捕获的异常时，需要使用共享版本的libgcc 。
<dt>-static-libgcc
<dd>链接静态版本的libgcc 。该选项可能会引起 C++ 和 Java 中的异常处理问题。
<dt>-Wl,options
<dd>options是由一个或多个逗号分隔的传递给链接器的选项列表。其中的每一个选项均会作为命令行选项提供给链接器。
<dt>-Wl,-On
<dd>当n&gt;0时将会优化输出，但是会明显增加连接操作的时间，这个选项是比较安全的。
<dt>-Wl,--sort-common
<dd>把全局公共符号按照大小排序后放到适当的输出节，以防止符号间因为排布限制而出现间隙。
<dt>-Wl,--no-keep-memory
<dd>按需读取符号表而不是将它们缓存在内存中，这样可以减少内存用量，但是会降低运行速度。仅在连接大型可执行文件时有些意义。
<dt>-Wl,-s
<dd>剥离输出文件中所有的符号信息，这个选项是比较安全的。
<dt>-Wl,-znow
<dd>默认仅在需要时才动态加载共享代码，这样减少了内存用量，但是可能降低运行速度。而使用这个选项可以强制在启动时就加载共享代码，这可能导致启动速度减慢，并且占用更多的内存，但是运行速度时速度可能加快。
<dt>-Wl,--enable-new-dtags
<dd>在ELF中创建新式的"dynamic tags"，但在老式的ELF系统上无法识别。
<dt>-Wl,--as-needed
<dd>移除不必要的符号引用，仅在实际需要的时候才连接，可以生成更高效的代码。 </dd></dl>
<hr>
<p>最后说两个与优化无关的系统环境变量，因为会影响GCC编译程序的方式，下面两个是咱中国人比较关心的：</p>
<dl>
<dt>LANG
<dd>指定编译程序使用的字符集，可用于创建宽字符文件、串文字、注释；默认为英文。[目前只支持日文"C-JIS,C-SJIS,C-EUCJP"，不支持中文]
<dt>LC_ALL
<dd>指定多字节字符的字符分类，主要用于确定字符串的字符边界以及编译程序使用何种语言发出诊断消息；默认设置与LANG相同。中文相关的几项："zh_CN.GB2312 , zh_CN.GB18030 , zh_CN.GBK , zh_CN.UTF-8 , zh_TW.BIG5"。 </dd></dl>
<img src ="http://www.blogjava.net/19851985lili/aggbug/116576.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-05-10 20:27 <a href="http://www.blogjava.net/19851985lili/articles/116576.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下添加硬盘、分区并格式化</title><link>http://www.blogjava.net/19851985lili/articles/110345.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 13 Apr 2007 01:07:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/110345.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/110345.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/110345.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/110345.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/110345.html</trackback:ping><description><![CDATA[<table style="TABLE-LAYOUT: fixed">
    <tbody>
        <tr>
            <td>
            <div class=cnt>
            <p><font face=宋体>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IBM服务器，Linux系统，三块硬盘做Raid5，今天终于成功加上了块硬盘！<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、用Raid驱动盘（是不是这么叫？呵呵）引导，将新加的盘做Raid0(因为只加了一块盘)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、通过fdisk分区<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3、通过mkfs.ext3格式化新的分区，完成</font></p>
            <p><font face=宋体>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第一步很简单<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第二步，分区<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、通过fdisk -l查看未分区硬盘<br>Disk /dev/sda: 72.8 GB, 72802631680 bytes<br>254 heads, 63 sectors/track, 8885 cylinders<br>Units = cylinders of 16002 * 512 = 8193024 bytes</font></p>
            <p><font face=宋体>&nbsp;&nbsp;&nbsp; Device Boot&nbsp;&nbsp;&nbsp;&nbsp; Start&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End&nbsp;&nbsp;&nbsp;&nbsp; Blocks&nbsp;&nbsp;&nbsp; Id&nbsp;&nbsp; System<br>/dev/sda1&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13&nbsp;&nbsp;&nbsp;&nbsp; 103981+&nbsp;&nbsp; 83&nbsp;&nbsp; Linux<br>/dev/sda2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8656&nbsp;&nbsp; 69152643&nbsp;&nbsp;&nbsp; 83&nbsp;&nbsp; Linux<br>/dev/sda3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8657&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8885&nbsp;&nbsp;&nbsp; 1832229&nbsp;&nbsp;&nbsp; 82&nbsp;&nbsp; Linux swap</font></p>
            <p><font face=宋体>Disk /dev/sdb: 36.4 GB, 36401315840 bytes<br>254 heads, 63 sectors/track, 4442 cylinders<br>Units = cylinders of 16002 * 512 = 8193024 bytes</font></p>
            <p><font face=宋体>&nbsp;&nbsp;&nbsp; Device Boot&nbsp;&nbsp;&nbsp;&nbsp; Start&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End&nbsp;&nbsp;&nbsp;&nbsp; Blocks&nbsp;&nbsp;&nbsp; Id&nbsp;&nbsp; System<br>这儿可以看到，/dev/sdb尚未分区<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、通过fdisk /dev/sdb对/dev/sdb进行分区&nbsp;&nbsp;<br>[root@ckkhserver root]# fdisk /dev/sdb</font></p>
            <p><font face=宋体>The number of cylinders for this disk is set to 4442.<br>There is nothing wrong with that, but this is larger than 1024,<br>and could in certain setups cause problems with:<br>1) software that runs at boot time (e.g., old versions of LILO)<br>2) booting and partitioning software from other OSs<br>&nbsp;&nbsp;&nbsp; (e.g., DOS FDISK, OS/2 FDISK)</font></p>
            <p><font face=宋体>Command (m for help):<br>键入m查看帮助<br>Command action<br>&nbsp;&nbsp;&nbsp; a&nbsp;&nbsp;&nbsp; toggle a bootable flag<br>&nbsp;&nbsp;&nbsp; b&nbsp;&nbsp;&nbsp; edit bsd disklabel<br>&nbsp;&nbsp;&nbsp; c&nbsp;&nbsp;&nbsp; toggle the dos compatibility flag<br>&nbsp;&nbsp;&nbsp; d&nbsp;&nbsp;&nbsp; delete a partition<br>&nbsp;&nbsp;&nbsp; l&nbsp;&nbsp;&nbsp; list known partition types<br>&nbsp;&nbsp;&nbsp; m&nbsp;&nbsp;&nbsp; print this menu<br>&nbsp;&nbsp;&nbsp; n&nbsp;&nbsp;&nbsp; add a new partition<br>&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp;&nbsp; create a new empty DOS partition table<br>&nbsp;&nbsp;&nbsp; p&nbsp;&nbsp;&nbsp; print the partition table<br>&nbsp;&nbsp;&nbsp; q&nbsp;&nbsp;&nbsp; quit without saving changes<br>&nbsp;&nbsp;&nbsp; s&nbsp;&nbsp;&nbsp; create a new empty Sun disklabel<br>&nbsp;&nbsp;&nbsp; t&nbsp;&nbsp;&nbsp; change a partition's system id<br>&nbsp;&nbsp;&nbsp; u&nbsp;&nbsp;&nbsp; change display/entry units<br>&nbsp;&nbsp;&nbsp; v&nbsp;&nbsp;&nbsp; verify the partition table<br>&nbsp;&nbsp;&nbsp; w&nbsp;&nbsp;&nbsp; write table to disk and exit<br>&nbsp;&nbsp;&nbsp; x&nbsp;&nbsp;&nbsp; extra functionality (experts only)<br><br>选n&nbsp;&nbsp;&nbsp; add a new partition，创建一分区<br>Command action<br>&nbsp;&nbsp;&nbsp; e&nbsp;&nbsp;&nbsp; extended<br>&nbsp;&nbsp;&nbsp; p&nbsp;&nbsp;&nbsp; primary partition (1-4)<br>我不知道这是什么意思，但尝试后知道，应该选p&nbsp;&nbsp;&nbsp; primary partition (1-4)<br>然后根据情况键入数字，比如1<br>再根据提示选择分区的类型，L查看知道有这么一个类型，83&nbsp;&nbsp; Linux<br>那就选这个类型，输入83，然后保存退出，分区就完成了</font></p>
            <p><font face=宋体>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第三步，格式化<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这儿，格式化成ext3格式，命令为mkfs.ext3 /dev/hdb1</font></p>
            <p><font face=宋体>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为了让硬盘在系统启动时自动挂载，用vi编辑/etc/fstab文件，加入如下内容（比如挂载到/mnt/hd目录）<br>/dev/dhb1 <font color=#0000ff>/mnt/hd</font> reiserfs defaults 1 1</font></p>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/19851985lili/aggbug/110345.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-04-13 09:07 <a href="http://www.blogjava.net/19851985lili/articles/110345.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ftp命令大全</title><link>http://www.blogjava.net/19851985lili/articles/110333.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 13 Apr 2007 00:43:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/110333.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/110333.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/110333.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/110333.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/110333.html</trackback:ping><description><![CDATA[<p>FTP命令大全</p>
<p>先说说他的功能吧，主要就是从运行FTP服务器的计算机传输文件。可以交互使用。这里要注意，只有安装了tcp/ip协议的机器才能使用ftp命令。 <br>命令格式：ftp [-v][-d][-i][-n][-g][-s:filename][-a][-w:windowsize][computer] <br>说说他们的含义吧。 <br>-v 不显示远程服务器响应 <br>-n 禁止第一次连接的时候自动登陆 <br>-i 在多个文件传输期间关闭交互提示 <br>-d 允许调试、显示客户机和服务器之间传递的全部ftp命令 <br>-g 不允许使用文件名通配符，文件名通配符的意思是说允许在本地文件以及路径名中使用通配字符 <br>-s:filename 指定包含ftp命令的文本文件。在ftp命令启动后将自动运行这些命令。在加的参数里不能有空格。 <br>-a 绑定数据连接时，使用任何的本地端口 <br>-w:windowsize 忽略默认的4096传输缓冲区 <br>computer 指定要连接的远程计算机的ip地址&nbsp;&nbsp;</p>
<p>1） ? <br>说明：显示ftp命令的说明。后面可以加参数，是加需要解释的命令名，不加则显示包含所有命令列表。 <br>2） ! <br>说明:功能是在本地计算机上运行指定命令。 <br>如! command 其中command就是你要运行的命令，如果不加command这个参数的话，则显示本地命令提示， 这时你输入exit命令就能返回到ftp了。 <br>3）$ macro－ame[args] <br>说明：执行宏定义macro－name。 <br>4） append <br>说明：使用当前文件类型设置，将本地文件附加到远程计算机中。大概格式是append local-file [remote-file] 其中local-file是说指定要添加的本地文件。remote-file是说指定要将local-file附加到远程计算机文件，要是省了这个，则是使用本地文件名做远程文件名。 <br>5）account[password] <br>说明：提供登录远程系统成功后访问系统资源所需的补充口令。 <br>6)ascii <br>说明:默认情况下，将文件传输类型设置为ASCII <br>7)bell <br>说明：响玲开关，意思是文件传输完成后是否有玲声提醒。默认是关闭的。 <br>8)binary <br>说明：将文件传输类型设置为二进制。 <br>9)bye <br>说明:结束和远程计算机的ftp会话，也就是安全断开，退出ftp. <br>10)cd <br>说明：更改远程计算机上的工作目录。 <br>如cd data 其中data是要进入的远程计算机的目录。 <br>12）cdup <br>说明：进入远程主机目录的父目录。 <br>13）chmod modefile－name <br>说明：将远程主机文件file－name的存取方式设置为mode。 <br>如 chmod 777 a.out。 <br>14）cr <br>说明：使用asscii方式传输文件时,将回车换行转换为回行。 <br>15)close <br>说明:结束与远程服务器的ftp会话，并返回命令解释程序。 <br>16)dir <br>说明:显示远程的文件以及子目录列表。 <br>如dir data local-file其中data是指定要查看列表的目录，没指定的话就是当前目录。local-file是指定要保存列表的本地文件，不指定的话就在屏幕输出。 <br>17)debug <br>说明：调试开关，打开的时候打印每个发送到远程计算机的命令，命令前有——&gt;默认情况是关闭的。 <br>18)disconnnect <br>说明：与远程计算机断开连接，但还保持着ftp命令提示符。 <br>19）delete remote－file <br>说明：删除远程主机文件。 <br>20）disconnection <br>说明：同close。 <br>21）form format <br>说明：将文件传输方式设置为format,缺省为file方式。 <br>22)get <br>说明：使用当前文件传输类型，把远程的文件拷贝到本地计算机上。 <br>如get remote-file local-fileremote-file是指定要复制的文件，local-file是指定本地计算机上的文件名，没有指定的话则个remote-file同名。 <br>23)glob <br>说明：文件名通配开关 <br>24)hash <br>说明：转换每个传输数据快的散列标记打印(#).数据快的大小是2048字节。默认情况下是关闭的， <br>25)help <br>说明：显示ftp命令的解释，如help commmand 其中command就是你要解释的命令，如果不加command这个参数的话就会显示所有命令的列表 <br>26）idle[seconds] <br>说明：将远程服务器的休眠计时器设为[seconds]秒。 <br>27）image <br>说明：设置二进制传输方式(同binary) <br>28)lcd <br>说明:更改本地计算机的本地目录,在默认的时候是启动ftp的目录.这个不要觉得没用啊，在你使用ftp的时候为了传递文件不是常改变本地和远程计算机的目录吗? <br>如lcd [directory] 其中[directory]是指定要进入的本地计算机的目录,如果你不加这个参数,就会显示出本地计算机的工作目录. <br>29)literal <br>说明:向远程ftp服务器发送协商参数,报告. <br>如lireral argument [...] 其中argument是指定要发送给远程服务器的协商参数。 <br>30)ls <br>说明:显示远程目录的文件和字目录. <br>如ls remote-directory local-file其中remote-directory是指要查看的列表的目录,不指定的话显示的是当前工作目录。local-file是指定要保存列表的本地文件.不指定的话是在屏幕上输出. <br>31）macdef macro－name <br>说明：定义一个宏,遇到macdef下的空行时,宏定义结束。 <br>32)mdelete <br>说明:删除远程计算机上的文件. <br>如mdelete remote-file ...remote-file肯定是要删的文件啊，可以删除多个. <br>33)mdir <br>说明:显示远程目录的文件和子目录列表,他允许指定多个文件. <br>如mdir remote-file ... local-file参数我想大家应该明白什么意思吧?不明白就看看前面的类似命令吧. <br>34)mget <br>说明:使用当前文件传输类型将多个远程文件复制到本地计算机. <br>如mget remote-files ...其实remote-files可以指定多个，他就是指定要复制到本地计算机的远程文件. <br>35)mkdir <br>说明:创建远程目录. <br>如mkdir directory 这个命令和nt下的命令提示符中的md directory一样，不多说了. <br>36)mls <br>说明:显示远程目录的文件和目录简表 <br>如mls remote-file ... local-file其中remote-file这个参数是必须要加的，'-'是使用远程计算机的当前工作目录. <br>37)mput <br>说明:使用当前文件传输类型,将本地文件复制到远程计算机. <br>如mput local-files ... <br>38）mode[mode－name] <br>说明：将文件传输方式设置为mode－name,缺省为stream方式。 <br>39）modtime file－name <br>说明：显示远程主机文件的最后修改时间。 <br>39）newerfile－name <br>说明：如果远程机中file－name的修改时间比本地硬盘同名文件的 时间更近,则重传该文件。 <br>40）nlist[remote－dir][local－file] <br>说明：显示远程主机目录的文件清单,并存入本 地硬盘的local－file。 <br>41）nmap[inpatternoutpattern] <br>说明：设置文件名映射机制,使得文件传输时,文件中的 某些字符相互转换。 <br>如nmap￥1.￥2.￥3[￥1,￥2].[￥2,￥3],则传输文件a1.a2.a3时 , 文件名变为a1、a2，该命令特别适用于远程主机为非U－NIX机的情况。 <br>42）ntrans[inchars[outchars] <br>说明：设置文件名字符的翻译机制,如ntrans1R,则文件名LLL将变为RRR。 <br>43）open <br>说明:连接到指定ftp服务器上， <br>如open computer port 其中computer一般是远程计算机的ip地址,port不用说就是指定端口了。 <br>44）passive <br>说明：进入被动传输方式。 <br>45)prompt <br>说明:转换提示,在多个文件传输的时候,ftp提示可以有选择的检索或保存文件，如果关闭提示,则mget和mput命令传输所有文件,在默认情况下是打开的. <br>46）proxyftp－cmd <br>说明：在次要控制连接中,执行一条ftp命令,该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接 <br>47)put <br>说明:使用当前文件传输类型将本地文件复制到远程计算机中， <br>如put local-file remote-file其中local-file是指定要复制的本地文件，remote-file是指定要复制的远程计算机上的文件名，不指定的话是和本地计算机上的文件名同名. <br>48)pwd <br>说明:显示远程呢感计算机上的当前目录. <br>49)quit <br>说明:结束与远程计算机的ftp会话,并退出ftp. <br>50)quote <br>说明:向远程ftp服务器发送协议,报告.期待ftp单码应答,这个命令的功能和literal相同. <br>51)recv <br>说明:使用当前文件传输类型将远程文件复制到本地计算机,他与get命令作用相同。 <br>52）regetremote－file[local－file] <br>说明：类似于get,但若local－file存在,则从上 次传输中断处续传 <br>53)remotehelp <br>说明:显示远程命令的帮助.这个命令的用法和help,!一样可以参考他的用法. <br>54)rename <br>说明:更改远程计算机上的文件名。这个命令和nt的命令提示符的ren一样。 <br>如rename filename newfilename <br>55）reset <br>说明：清除回答队列。 <br>56）restart marker <br>说明：从指定的标志marker处,重新开始get或put,如restart 130。 <br>57)rmdir <br>说明:删除远程目录.这个命令和nt的命令提示符的rm一样。 <br>如rmdir directory <br>58）runique <br>说明：设置文件名唯一性存储,若文件存在,则在原文件后加后缀。 <br>59)send <br>说明:使用当前文件传输类型将本地文件复制到远程计算机.send和put命令的功能一样。 <br>如send local-file remote-file <br>60)status <br>说明:显示ftp连接和转换的当前状态 <br>61sendport <br>说明：设置PORT命令的使用。 <br>62）site arg1,arg2...... <br>说明：将参数作为SITE命令逐字发送至远程ftp主机。 <br>63）size file－name <br>说明：显示远程主机文件大小。 <br>如site idle 7200。 <br>64）status <br>说明：显示当前ftp状态。 <br>65）struct[struct－name] <br>说明：将文件传输结构设置为struct－name,缺省时使用 stream结构。 <br>66）sunique <br>说明：将远程主机文件名存储设置为唯一(与runique对应)。 <br>67）system <br>说明：显示远程主机的作系统类型。 <br>68）tenex <br>说明：将文件传输类型设置为TENEX机所需的类型。 <br>69）tick <br>说明：设置传输时的字节计数器。 <br>70)trace <br>说明:转换报文跟踪,运行ftp的命令时,trace将显示没个报文的理由。 <br>71)type <br>说明:设置或显示文件传输类型. <br>如type [type-name]其中type-name 的意思是文件传输的类型，默认是ASCII,没加这个参数就是显示当前的传输类型. <br>72umask[newmask] <br>说明：将远程服务器的缺省umask设置为newmask,如umask 3。 <br>73)user <br>说明:指定连接到远程计算机的用户. <br>如user user-name [passwd] [account]其中user-name不用说都是用来登陆计算机的用户名了，passwd是指定user-name的密码,不指定的话ftp会提示输入密码。account是指定用来登陆计算机的帐号,如不指定,ftp会提示输入帐号. <br>74)verbose <br>说明:转换冗余模式,这里如果打开,会显示所有ftp响应,文件传输结束的时候会显示传输的效率和统计信息,默认的情况是打开的<br></p>
<img src ="http://www.blogjava.net/19851985lili/aggbug/110333.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-04-13 08:43 <a href="http://www.blogjava.net/19851985lili/articles/110333.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux命令大全（一）</title><link>http://www.blogjava.net/19851985lili/articles/110331.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 13 Apr 2007 00:39:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/110331.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/110331.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/110331.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/110331.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/110331.html</trackback:ping><description><![CDATA[<p><font style="BACKGROUND-COLOR: #c0c0c0"><font face=宋体 size=2>名称：cat <br>使用权限：所有使用者 <br>使用方式：cat [-AbeEnstTuv] [--help] [--version] fileName <br>说明：把档案串连接后传到基本输出（萤幕或加 &gt; fileName 到另一个档案） <br>参数： <br>-n 或 --number 由 1 开始对所有输出的行数编号 <br>-b 或 --number-nonblank 和 -n 相似，只不过对于空白行不编号 <br>-s 或 --squeeze-blank 当遇到有连续两行以上的空白行，就代换为一行的空白行 <br>-v 或 --show-nonprinting <br>范例： <br>cat -n textfile1 &gt; textfile2 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里 <br>cat -b textfile1 textfile2 &gt;&gt; textfile3 把 textfile1 和 textfile2 的档案内容加上行号（空白行不加）之后将内容附加到 textfile3<br></font></font></p>
<p><font face=宋体 size=2><span class=javascript style="FONT-SIZE: 12px">名称 : cd <br>使用权限 : 所有使用者 <br>使用方式 : cd [dirName] <br>说明 : 变换工作目录至 dirName。 其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略，则变换至使用者的 home directory (也就是刚 login 时所在的目录)。 <br>另外，"~" 也表示为 home directory 的意思，"." 则是表示目前所在的目录，".." 则表示目前目录位置的上一层目录。 <br>范例 : 跳到 /usr/bin/ : <br>cd /usr/bin <br>跳到自己的 home directory : <br>cd ~ <br>跳到目前目录的上上两层 : <br>cd ../..</span></font></p>
<p><font face=宋体 size=2><span class=javascript style="FONT-SIZE: 12px">指令名称 : chmod <br>使用权限 : 所有使用者 <br>使用方式 : chmod [-cfvR] [--help] [--version] mode file... <br>说明 : Linux/Unix 的档案存取权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所存取。 <br>把计 : <br>mode : 权限设定字串，格式如下 : [ugoa...][+-=][rwxX]...][,...]，其中u 表示该档案的拥有者，g 表示与该档案的拥有者属于同一个群体(group)者，o 表示其他以外的人，a 表示这三者皆是。 <br>+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。 <br>r 表示可读取，w 表示可写入，x 表示可执行，X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。 <br>-c : 若该档案权限确实已经更改，才显示其更改动作 <br>-f : 若该档案权限无法被更改也不要显示错误讯息 <br>-v : 显示权限变更的详细资料 <br>-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更) <br>--help : 显示辅助说明 <br>--version : 显示版本 <br>范例 :将档案 file1.txt 设为所有人皆可读取 : <br>chmod ugo+r file1.txt <br>将档案 file1.txt 设为所有人皆可读取 : <br>chmod a+r file1.txt <br>将档案 file1.txt 与 file2.txt 设为该档案拥有者，与其所属同一个群体者可写入，但其他以外的人则不可写入 : <br>chmod ug+w,o-w file1.txt file2.txt <br>将 ex1.py 设定为只有该档案拥有者可以执行 : <br>chmod u+x ex1.py <br>将目前目录下的所有档案与子目录皆设为任何人可读取 : <br>chmod -R a+r * <br>此外chmod也可以用数字来表示权限如 chmod 777 file <br>语法为：chmod abc file <br>其中a,b,c各为一个数字，分别表示User、Group、及Other的权限。 <br>r=4，w=2，x=1 <br>若要rwx属性则4+2+1=7； <br>若要rw-属性则4+2=6； <br>若要r-x属性则4+1=7。 <br>范例： <br>chmod a=rwx file <br>和 <br>chmod 777 file <br>效果相同 <br>chmod ug=rwx,o=x file <br>和 <br>chmod 771 file <br>效果相同 <br>若用chmod 4755 filename可使此程式具有root的权限</span></font></p>
<p><font face=宋体 size=2><span class=javascript style="FONT-SIZE: 12px">指令名称 : chown <br>使用权限 : root <br>使用方式 : chmod [-cfhvR] [--help] [--version] user[:group] file... <br>说明 : Linux/Unix 是多人多工作业系统，所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说，这个指令只有是由系统管理者(root)所使用，一般使用者没有权限可以改变别人的档案拥有者，也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。 <br>把计 : <br>user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群体(group)-c : 若该档案拥有者确实已经更改，才显示其更改动作-f : 若该档案拥有者无法被更改也不要显示错误讯息-h : 只对于连结(link)进行变更，而非该 link 真正指向的档案-v : 显示拥有者变更的详细资料-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)--help : 显示辅助说明--version : 显示版本 <br>范例 : <br>将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie : <br>chown jessie:users file1.txt <br>将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport : <br>chmod -R lamport:users *</span></font></p>
<p><font face=宋体 size=2><span class=javascript style="FONT-SIZE: 12px">名称：cp <br>使用权限：所有使用者 <br>使用方式： <br>cp [options] source dest <br>cp [options] source... directory <br>说明：将一个档案拷贝至另一档案，或将数个档案拷贝至另一目录。 <br>把计 <br>-a 尽可能将档案状态、权限等资料都照原状予以复制。 <br>-r 若 source 中含有目录名，则将目录下之档案亦皆依序拷贝至目的地。 <br>-f 若目的地已经有相同档名的档案存在，则在复制前先予以删除再行复制。 <br>范例： <br>将档案 aaa 复制(已存在)，并命名为 bbb : <br>cp aaa bbb <br>将所有的C语言程式拷贝至 Finished 子目录中 : <br>cp *.c Finished</span></font></p>
<p><font face=宋体 size=2><span class=javascript style="FONT-SIZE: 12px">名称：cut <br>使用权限：所有使用者 <br>用法：cut -cnum1-num2 filename <br>说明：显示每行从开头算起 num1 到 num2 的文字。 <br>范例： <br>shell&gt;&gt; cat example <br>test2 <br>this is test1 <br>shell&gt;&gt; cut -c0-6 example ## print 开头算起前 6 个字元 <br>test2 <br>this i</span></font></p>
<p><font face=宋体 size=2><span class=javascript style="FONT-SIZE: 12px">名称 : find <br>用法 : find <br>使用说明 : <br>将档案系统内符合 expression 的档案列出来。你可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合，只有完全相符的才会被列出来。 <br>find 根据下列规则判断 path 和 expression，在命令列上第一个 - ( ) , ! 之前的部份为 path，之后的是 expression。如果 path 是空字串则使用目前路径，如果 expression 是空字串则使用 -print 为预设 expression <br>expression 中可使用的选项有二三十个之多，在此只介绍最常用的部份。 <br>-mount, -xdev : 只检查和指定目录在同一个档案系统下的档案，避免列出其它档案系统中的档案 <br>-amin n : 在过去 n 分钟内被读取过 <br>-anewer file : 比档案 file 更晚被读取过的档案 <br>-atime n : 在过去 n 天过读取过的档案 <br>-cmin n : 在过去 n 分钟内被修改过 <br>-cnewer file :比档案 file 更新的档案 <br>-ctime n : 在过去 n 天过修改过的档案 <br>-empty : 空的档案-gid n or -group name : gid 是 n 或是 group 名称是 name <br>-ipath p, -path p : 路径名称符合 p 的档案，ipath 会忽略大小写 <br>-name name, -iname name : 档案名称符合 name 的档案。iname 会忽略大小写 <br>-size n : 档案大小 是 n 单位，b 代表 512 位元组的区块，c 表示字元数，k 表示 kilo bytes，w 是二个位元组。-type c : 档案类型是 c 的档案。 <br>d: 目录 <br>c: 字型装置档案 <br>b: 区块装置档案 <br>p: 具名贮列 <br>f: 一般档案 <br>l: 符号连结 <br>s: socket <br>-pid n : process id 是 n 的档案 <br>你可以使用 ( ) 将运算式分隔，并使用下列运算。 <br>exp1 -and exp2 <br><br>! expr <br>-not expr <br>exp1 -or exp2 <br>exp1, exp2 <br>范例: <br>将目前目录及其子目录下所有延伸档名是 c 的档案列出来。 <br># find . -name "*.c" <br><br>将目前目录其其下子目录中所有一般档案列出 <br># find . -ftype f <br><br>将目前目录及其子目录下所有最近 20 分钟内更新过的档案列出 <br># find . -ctime -20</span></font></p>
<p><font face=宋体 size=2><span class=javascript style="FONT-SIZE: 12px">名称：less <br>使用权限：所有使用者 <br>使用方式： <br>less [Option] filename <br>说明： <br>less 的作用与 more 十分相似，都可以用来浏览文字档案的内容，不同的是 less 允许使用者往回卷动 <br>以浏览已经看过的部份，同时因为 less 并未在一开始就读入整个档案，因此在遇上大型档案的开启时，会比一般的文书编辑器(如 vi)来的快速。 <br><br>范例： <br><br>指令名称 : ln <br>使用权限 : 所有使用者 <br>使用方式 : ln [options] source dist，其中 option 的格式为 : <br>[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}] <br>[--help] [--version] [--] <br>说明 : Linux/Unix 档案系统中，有所谓的连结(link)，我们可以将其视为档案的别名，而连结又可分为两种 : 硬连结(hard link)与软连结(symbolic link)，硬连结的意思是一个档案可以有多个名称，而软连结的方式则是产生一个特殊的档案，该档案的内容是指向另一个档案的位置。硬连结是存在同一个档案系统中，而软连结却可以跨越不同的档案系统。 <br>ln source dist 是产生一个连结(dist)到 source，至于使用硬连结或软链结则由参数决定。 <br>不论是硬连结或软链结都不会将原本的档案复制一份，只会占用非常少量的磁碟空间。 <br><br>-f : 链结时先将与 dist 同档名的档案删除-d : 允许系统管理者硬链结自己的目录-i : 在删除与 dist 同档名的档案时先进行询问-n : 在进行软连结时，将 dist 视为一般的档案-s : 进行软链结(symbolic link)-v : 在连结之前显示其档名-b : 将在链结时会被覆写或删除的档案进行备份-S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾-V METHOD : 指定备份的方式--help : 显示辅助说明--version : 显示版本 <br>范例 : <br>将档案 yy 产生一个 symbolic link : zz <br>ln -s yy zz <br>将档案 yy 产生一个 hard link : zz <br>ln yy xx</span></font></p>
<p><font face=宋体 size=2><span class=javascript style="FONT-SIZE: 12px">名称：locate <br>使用权限：所有使用者 <br>使用方式： locate [-q] [-d ] [--database=] <br>locate [-r ] [--regexp=] <br>locate [-qv] [-o ] [--output=] <br>locate [-e ] [-f ] &lt;[-l ] [-c] <br>&lt;[-U ] [-u]&gt; <br>locate [-Vh] [--version] [--help] <br>说明： <br>locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的资料库，之后当寻找时就只需查询这个资料库，而不必实际深入档案系统之中了。 <br>在一般的 distribution 之中，资料库的建立都被放在 contab 中自动执行。一般使用者在使用时只要用 <br># locate your_file_name <br>的型式就可以了。 参数： <br>-u <br>-U <br>建立资料库，-u 会由根目录开始，-U 则可以指定开始的位置。 <br>-e <br>将 <br>排除在寻找的范围之外。 <br>-l <br>如果 是 1．则启动安全模式。在安全模式下，使用者不会看到权限无法看到的档案。这会始速度减慢，因为 locate 必须至实际的档案系统中取得档案的权限资料。 <br>-f <br>将特定的档案系统排除在外，例如我们没有到理要把 proc 档案系统中的档案放在资料库中。 <br>-q <br>安静模式，不会显示任何错误讯息。 <br>-n <br>至多显示 个输出。 <br>-r <br>使用正规运算式 做寻找的条件。 <br>-o <br>指定资料库存的名称。 <br>-d <br>指定资料库的路径 <br>-h <br>显示辅助讯息 <br>-v <br>显示更多的讯息 <br>-V <br>显示程式的版本讯息 范例： <br>locate chdrv : 寻找所有叫 chdrv 的档案 <br>locate -n 100 a.out : 寻找所有叫 a.out 的档案，但最多只显示 100 个 <br>locate -u : 建立资料库</span></font></p>
<p><font face=宋体 size=2><span class=javascript style="FONT-SIZE: 12px">名称 : ls <br>使用权限 : 所有使用者 <br>使用方式 : ls [-alrtAFR] [name...] <br>说明 : 显示指定工作目录下之内容（列出目前工作目录所含之档案及子目录)。 <br><br>-a 显示所有档案及目录 (ls内定将档案名或目录名称开头为"."的视为隐藏档，不会列出) <br>-l 除档案名称外，亦将档案型态、权限、拥有者、档案大小等资讯详细列出 <br>-r 将档案以相反次序显示(原定依英文字母次序) <br>-t 将档案依建立时间之先后次序列出 <br>-A 同 -a ，但不列出 "." (目前目录) 及 ".." (父目录) <br>-F 在列出的档案名称后加一符号；例如可执行档则加 "*", 目录则加 "/" <br>-R 若目录下有档案，则以下之档案亦皆依序列出 <br>范例： <br>列出目前工作目录下所有名称是 s 开头的档案，愈新的排愈后面 : <br>ls -ltr s* <br>将 /bin 目录以下所有目录及档案详细资料列出 : <br>ls -lR /bin <br>列出目前工作目录下所有档案及目录；目录于名称后加 "/", 可执行档于名称后加 "*" : <br>ls -AF</span></font></p>
<p><span class=javascript style="FONT-SIZE: 12px"><font face=宋体 size=2>名称：more <br>使用权限：所有使用者 <br>使用方式：more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..] <br>说明：类似 cat ，不过会以一页一页的显示方便使用者逐页阅读，而最基本的指令就是按空白键（space）就往下一页显示，按 b 键就会往回（back）一页显示，而且还有搜寻字串的功能（与 vi 相似），使用中的说明文件，请按 h 。 <br>参数：-num 一次显示的行数 <br>-d 提示使用者，在画面下方显示 [Press space to continue, q to quit.] ，如果使用者按错键，则会显示 [Press h for instructions.] 而不是 哔 声 <br>-l 取消遇见特殊字元 ^L（送纸字元）时会暂停的功能 <br>-f 计算行数时，以实际上的行数，而非自动换行过后的行数（有些单行字数太长的会被扩展为两行或两行以上） <br>-p 不以卷动的方式显示每一页，而是先清除萤幕后再显示内容 <br>-c 跟 -p 相似，不同的是先显示内容再清除其他旧资料 <br>-s 当遇到有连续两行以上的空白行，就代换为一行的空白行 <br>-u 不显示下引号 （根据环境变数 TERM 指定的 terminal 而有所不同） <br>+/ 在每个档案显示前搜寻该字串（pattern），然后从该字串之后开始显示 <br>+num 从第 num 行开始显示 <br>fileNames 欲显示内容的档案，可为复数个数 <br>范例： <br>more -s testfile 逐页显示 testfile 之档案内容，如有连续两行以上空白行则以一行空白行显示。 <br>more +20 testfile 从第 20 行开始显示 testfile 之档案内容。</font></span></p>
<img src ="http://www.blogjava.net/19851985lili/aggbug/110331.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-04-13 08:39 <a href="http://www.blogjava.net/19851985lili/articles/110331.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux命令大全（三）</title><link>http://www.blogjava.net/19851985lili/articles/110329.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 13 Apr 2007 00:36:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/110329.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/110329.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/110329.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/110329.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/110329.html</trackback:ping><description><![CDATA[<div class=tit>linux命令大全（三）</div>
<div class=date>2007-03-30 09:52</div>
<table style="TABLE-LAYOUT: fixed">
    <tbody>
        <tr>
            <td>
            <div class=cnt>
            <p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称 : sleep <br>使用权限 : 所有使用者 <br>使用方式 : sleep [--help] [--version] number[smhd] <br>说明 : sleep 可以用来将目前动作延迟一段时间 <br>参数说明 : <br>--help : 显示辅助讯息 <br>--version : 显示版本编号 <br>number : 时间长度，后面可接 s、m、h 或 d <br>其中 s 为秒，m 为 分钟，h 为小时，d 为日数 <br>例子 : <br>显示目前时间后延迟 1 分钟，之后再次显示时间 : <br>date;sleep 1m;date </font></p>
            <p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称： time <br>使用权限： 所有使用者 <br>使用方式： time [options] COMMAND [arguments] <br>说明： time 指令的用途，在于量测特定指令执行时所需消耗的时间及系统资源等资讯。例如 CPU 时间、记忆体、输入输出等等。需要特别注意的是，部分资讯在 Linux 上显示不出来。这是因为在 Linux 上部分资源的分配函式与 time 指令所预设的方式并不相同，以致于 time 指令无法取得这些资料。 <br>把计 <br>-o or --output=FILE <br>设定结果输出档。这个选项会将 time 的输出写入 所指定的档案中。如果档案已经存在，系统将覆写其内容。 <br>-a or --append <br>配合 -o 使用，会将结果写到档案的末端，而不会覆盖掉原来的内容。 <br>-f formAT or --format=formAT <br>以 formAT 字串设定显示方式。当这个选项没有被设定的时候，会用系统预设的格式。不过你可以用环境变数 time 来设定这个格式，如此一来就不必每次登入系统都要设定一次。 <br>一般设定上，你可以用 <br>\t <br>表示跳栏，或者是用 <br>\n <br>表示换行。每一项资料要用 % 做为前导。如果要在字串中使用百分比符号，就用 。（学过 C 语言的人大概会觉得很熟悉） <br>time 指令可以显示的资源有四大项，分别是： <br>Time resources <br>Memory resources <br>IO resources <br>Command info <br>详细的内容如下： </font></p>
            <p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>Time Resources <br>E 执行指令所花费的时间，格式是：[hour]:minute:second。请注意这个数字并不代表实际的 CPU 时间。 <br>e 执行指令所花费的时间，单位是秒。请注意这个数字并不代表实际的 CPU 时间。 <br>S 指令执行时在核心模式（kernel mode）所花费的时间，单位是秒。 <br>U 指令执行时在使用者模式（user mode）所花费的时间，单位是秒。 <br>P 执行指令时 CPU 的占用比例。其实这个数字就是核心模式加上使用者模式的 CPU 时间除以总时间。 </font></p>
            <p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>Memory Resources <br>M 执行时所占用的实体记忆体的最大值。单位是 KB <br>t 执行时所占用的实体记忆体的平均值，单位是 KB <br>K 执行程序所占用的记忆体总量（stack+data+text）的平均大小，单位是 KB <br>D 执行程序的自有资料区（unshared data area）的平均大小，单位是 KB <br>p 执行程序的自有堆叠（unshared stack）的平均大小，单位是 KB <br>X 执行程序间共享内容（shared text）的平均值，单位是 KB <br>Z 系统记忆体页的大小，单位是 byte。对同一个系统来说这是个常数 </font></p>
            <p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>IO Resources <br>F 此程序的主要记忆体页错误发生次数。所谓的主要记忆体页错误是指某一记忆体页已经置换到置换档（swap file)中，而且已经分配给其他程序。此时该页的内容必须从置换档里再读出来。 <br>R 此程序的次要记忆体页错误发生次数。所谓的次要记忆体页错误是指某一记忆体页虽然已经置换到置换档中，但尚未分配给其他程序。此时该页的内容并未被破坏，不必从置换档里读出来 <br>W 此程序被交换到置换档的次数 <br>c 此程序被强迫中断（像是分配到的 CPU 时间耗尽）的次数 <br>w 此程序自愿中断（像是在等待某一个 I/O 执行完毕，像是磁碟读取等等）的次数 <br>I 此程序所输入的档案数 <br>O 此程序所输出的档案数 <br>r 此程序所收到的 Socket Message <br>s 此程序所送出的 Socket Message <br>k 此程序所收到的信号 ( Signal )数量 </font></p>
            <p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>Command Info <br>C 执行时的参数以及指令名称 <br>x 指令的结束代码 ( Exit Status ) </font></p>
            <p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>-p or --portability <br>这个选项会自动把显示格式设定成为： <br>real %e <br>user %U <br>sys %S <br>这么做的目的是为了与 POSIX 规格相容。 <br>-v or --verbose <br>这个选项会把所有程式中用到的资源通通列出来，不但如一般英文语句，还有说明。对不想花时间去熟习格式设定或是刚刚开始接触这个指令的人相当有用。 <br>范例： <br>利用下面的指令 <br>time -v ps -aux <br>我们可以获得执行 ps -aux 的结果和所花费的系统资源。如下面所列的资料： <br>USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND <br>root 1 0.0 0.4 1096 472 ? S Apr19 0:04 init <br>root 2 0.0 0.0 0 0 ? SW Apr19 0:00 [kflushd] <br>root 3 0.0 0.0 0 0 ? SW Apr19 0:00 [kpiod] <br>...... <br>root 24269 0.0 1.0 2692 996 pts/3 R 12:16 0:00 ps -aux <br>Command being timed: "ps -aux" <br>User time (seconds): 0.05 <br>System time (seconds): 0.06 <br>Percent of CPU this job got: 68% <br>Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.16 <br>Average shared text size (kbytes): 0 <br>Average unshared data size (kbytes): 0 <br>Average stack size (kbytes): 0 <br>Average total size (kbytes): 0 <br>Maximum resident set size (kbytes): 0 <br>Average resident set size (kbytes): 0 <br>Major (requiring I/O) page faults: 238 <br>Minor (reclaiming a frame) page faults: 46 <br>Voluntary context switches: 0 <br>Involuntary context switches: 0 <br>Swaps: 0 <br>File system inputs: 0 <br>File system outputs: 0 <br>Socket messages sent: 0 <br>Socket messages received: 0 <br>Signals delivered: 0 <br>Page size (bytes): 4096 <br>Exit status: 0</font></p>
            <p><br><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称： uptime <br>使用权限： 所有使用者 <br>使用方式： uptime [-V] <br>说明： uptime 提供使用者下面的资讯，不需其他参数： <br>现在的时间 <br>系统开机运转到现在经过的时间 <br>连线的使用者数量 <br>最近一分钟，五分钟和十五分钟的系统负载 <br>参数： -V 显示版本资讯。 <br>范例： uptime <br>其结果为： <br>10:41am up 5 days, 10 min, 1 users, load average: 0.00, 0.00, 1.99</font></p>
            <p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称：chfn <br>使用权限：所有使用者 <br>用法：shell&gt;&gt; chfn <br>说明：提供使用者更改个人资讯，用于 finger and mail username <br>范例： <br>shell&gt;&gt; chfn <br>Changing finger information for user <br>Password: [del] <br>Name[]:Johnney Huang ### 提供 finger 时的资料 <br>Office[]:NCCU <br>Office Phone[]: [del] <br>Home Phone[]: [del]</font></p>
            <p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称：chsh <br>使用权限：所有使用者 <br>用法：shell&gt;&gt; chsh <br>说明：更改使用者 shell 设定 <br>范例： <br>shell&gt;&gt; chsh <br>Changing fihanging shell for user1 <br>Password: [del] <br>New shell [/bin/tcsh]: ### [是目前使用的 shell] <br>[del] <br>shell&gt;&gt; chsh -l ### 展示 /etc/shells 档案内容 <br>/bin/bash <br>/bin/sh <br>/bin/ash <br>/bin/bsh <br>/bin/tcsh <br>/bin/csh </font></p>
            <p><br><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称： finger <br>使用权限： 所有使用者 <br>使用方式： finger [options] user[@address] <br>说明：finger 可以让使用者查询一些其他使用者的资料。会列出来的资料有： <br>Login Name <br>User Name <br>Home directory <br>Shell <br>Login status <br>mail status <br>.plan <br>.project <br>.forward <br>其中 .plan ，.project 和 .forward 就是使用者在他的 Home Directory 里的 .plan ， .project 和 .forward 等档案里的资料。如果没有就没有。finger 指令并不限定于在同一伺服器上查询，也可以寻找某一个远端伺服器上的使用者。只要给一个像是 E-mail address 一般的地址即可。 <br>把计 <br>-l <br>多行显示。 <br>-s <br>单行显示。这个选项只显示登入名称，真实姓名，终端机名称，闲置时间，登入时间，办公室号码及电话号码。如果所查询的使用者是远端伺服器的使用者，这个选项无效。 <br>范例：下列指令可以查询本机管理员的资料： <br>finger root <br>其结果如下： <br>Login: root Name: root <br>Directory: /root Shell: /bin/bash <br>Never logged in. <br>No mail. <br>No Plan.</font></p>
            <p><br><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称：last <br>使用权限：所有使用者 <br>使用方式：shell&gt;&gt; last [options] <br>说明：显示系统开机以来获是从每月初登入者的讯息 <br>把计 <br>-R 省略 hostname 的栏位 <br>-num 展示前 num 个 <br>username 展示 username 的登入讯息 <br>tty 限制登入讯息包含终端机代号 <br>范例： <br>shell&gt;&gt; last -R -2 <br>johnney pts/1 Mon Aug 14 20:42 still logged in <br>johnney pts/0 Mon Aug 14 19:59 still logged in <br>wtmp begins Tue Aug 1 09:01:10 2000 ### /var/log/wtmp </font></p>
            <p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>shell&gt;&gt; last -2 minery <br>minery pts/0 140.119.217.115 Mon Aug 14 18:37 - 18:40 (00:03) <br>minery pts/0 140.119.217.115 Mon Aug 14 17:22 - 17:24 (00:02) <br>wtmp begins Tue Aug 1 09:01:10 2000</font></p>
            <p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称:login <br>这个命令都不会就不要干算了！呵呵我也不在这里多费笔墨耽误大家美好青春了^_^ <br>名称：passwd <br>使用权限：所有使用者 <br>使用方式：passwd [-k] [-l] [-u [-f] [-d] [-S] [username] <br>说明：用来更改使用者的密码 <br>参数： <br>-k <br>-l <br>-u <br>-f <br>-d 关闭使用者的密码认证功能, 使用者在登入时将可以不用输入密码, 只有具备 root 权限的使用者方可使用. <br>-S 显示指定使用者的密码认证种类, 只有具备 root 权限的使用者方可使用. <br>[username] 指定帐号名称.</font></p>
            <p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称 : who <br>使用权线 : 所有使用者都可使用 <br>使用方式 : who - [husfV] [user] <br>说明 : 显示系统中有那些使用者正在上面，显示的资料包含了使用者 ID，使用的终端机，从那边连上来的，上线时间，呆滞时间，CPU 使用量，动作等等。 <br>把计 : <br>-h : 不要显示标题列 <br>-u : 不要显示使用者的动作/工作 <br>-s : 使用简短的格式来显示 <br>-f : 不要显示使用者的上线位置 <br>-V : 显示程式版本 <br>名称：/etc/aliases <br>使用权限：系统管理者 <br>使用方式： 请用 newaliases 更新资料库 <br>说明： <br>sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时，它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能，在 mailinglist 中，我们可能会创造一个叫 </font><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#101;&#100;&#108;&#105;&#110;&#117;&#120;&#64;&#108;&#105;&#110;&#107;&#46;&#101;&#99;&#101;&#46;&#117;&#99;&#105;&#46;&#101;&#100;&#117;"><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 color=#0000ff size=2><u>redlinux@link.ece.uci.edu</u></font></a><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2> 的 mailinglist，但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。 <br>/etc/aliases 是一个文字模式的档案，sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例： <br># newaliases <br>下面命令会做相同的事， <br># sendmail -bi <br>相关命令: <br>mail, mailq, newaliases, sendmail </font></p>
            <p><br><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称：mail <br>使用权限：所有使用者 <br>使用方式：mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...] <br>说明： <br>mail 不仅只是一个指令， mail 还是一个电子邮件程式，不过利用 mail 来读信的人应该很少吧！对于系统管理者来说 mail 就很有用，因为管理者可以用 mail 写成 script ，定期寄一些备忘录提醒系统的使用者。 <br>参数： <br>i 忽略 tty 的中断讯号。 (interrupt) <br>I 强迫设成互动模式。 (Interactive) <br>v 列印出讯息，例如送信的地点、状态等等。 (verbose) <br>n 不读入 mail.rc 设定档。 <br>s 邮件标题。 <br>c cc 邮件地址。 <br>b bcc 邮件地址。 <br>范例： <br>将信件送给一个或以上的电子邮件地址，由于没有加入其他的选项，使用者必须输入标题与信件的内容等。而 user2 没有主机位置，就会送给邮件伺服器的 user2 使用者。 <br>mail </font><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#117;&#115;&#101;&#114;&#49;&#64;&#101;&#109;&#97;&#105;&#108;&#46;&#97;&#100;&#100;&#114;&#101;&#115;&#115;"><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 color=#0000ff size=2><u>user1@email.address</u></font></a><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2> <br>mail </font><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#117;&#115;&#101;&#114;&#49;&#64;&#101;&#109;&#97;&#105;&#108;&#46;&#97;&#100;&#100;&#114;&#101;&#115;&#115;"><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 color=#0000ff size=2><u>user1@email.address</u></font></a><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2> user2 <br>将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。 <br>mail -s 标题 -c user1 user2 &lt; mail.txt</font></p>
            <p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>指令：mesg <br>使用权限 : 所有使用者 <br>使用方式 : mesg [y|n] <br>说明 ： 决定是否允许其他人传讯息到自己的终端机介面把计 <br>y : 允许讯息传到终端机介面上。 <br>n : 不允许讯息传到终端机介面上 。 <br>如果没有设定，则讯息传递与否则由终端机界面目前状态而定。 <br>例子 : <br>改变目前讯息设定，改成不允许讯息传到终端机介面上 : <br>mesg n </font></p>
            <p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>与 mesg 相关的指令有： talk，write，wall。 </font></p>
            <p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称：/etc/aliases <br>使用权限：系统管理者 <br>使用方式： newaliases <br>说明： <br>sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时，它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能，在 mailinglist 中，我们可能会创造一个叫 </font><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#101;&#100;&#108;&#105;&#110;&#117;&#120;&#64;&#108;&#105;&#110;&#107;&#46;&#101;&#99;&#101;&#46;&#117;&#99;&#105;&#46;&#101;&#100;&#117;"><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 color=#0000ff size=2><u>redlinux@link.ece.uci.edu</u></font></a><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2> 的 mailinglist，但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。 <br>/etc/aliases 是一个文字模式的档案，sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。 <br>参数：没有任何参数。 范例： <br># newaliases <br>下面命令会做相同的事， <br># sendmail -bi <br>相关命令: <br>mail, mailq, newaliases, sendmail</font></p>
            <p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称 : talk <br>使用权限 : 所有使用者 <br>使用方式 : <br>talk person [ttyname] <br>说明 : 与其他使用者对谈 <br>把计 : <br>person : 预备对谈的使用者帐号，如果该使用者在其他机器上，则可输入 </font><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#112;&#101;&#114;&#115;&#111;&#110;&#64;&#109;&#97;&#99;&#104;&#105;&#110;&#101;&#46;&#110;&#97;&#109;&#101;"><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 color=#0000ff size=2><u>person@machine.name</u></font></a><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2> <br>ttyname : 如果使用者同时有两个以上的 tty 连线，可以自行选择合适的 tty 传讯息 <br>例子.1 : <br>与现在机器上的使用者Rollaend对谈，此时 Rollaend 只有一个连线 : <br>talk Rollaend <br>接下来就是等Rollaend回应，若Rollaend接受，则Rollaend输入 `talk jzlee`即可开始对谈，结束请按 ctrl+c <br>例子.2 :与linuxfab.cx上的使用者Rollaend对谈，使用pts/2来对谈 : <br>talk </font><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#82;&#111;&#108;&#108;&#97;&#101;&#110;&#100;&#64;&#108;&#105;&#110;&#117;&#120;&#102;&#97;&#98;&#46;&#99;&#120;"><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 color=#0000ff size=2><u>Rollaend@linuxfab.cx</u></font></a><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2> pts/2 <br>接下来就是等Rollaend回应，若Rollaend接受，则Rollaend输入 `talk </font><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#122;&#108;&#101;&#101;&#64;&#106;&#122;&#108;&#101;&#101;&#46;&#104;&#111;&#109;&#101;"><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 color=#0000ff size=2><u>jzlee@jzlee.home</u></font></a><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>`即可开始对谈，结束请按 ctrl+c <br>注意 : 若萤幕的字会出现不正常的字元，试着按 ctrl+l 更新萤幕画面。</font></p>
            <p><br><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称 : wall <br>使用权限 : 所有使用者 <br>使用方式 : <br>wall [ message ] <br>使用说明： <br>wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D) <br>例子 : <br>传讯息"hi" 给每一个使用者 : <br>wall hi</font></p>
            <p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称 : write <br>使用权限 : 所有使用者 <br>使用方式 : <br>write user [ttyname] <br>说明 : 传讯息给其他使用者 <br>把计 : <br>user : 预备传讯息的使用者帐号 <br>ttyname : 如果使用者同时有两个以上的 tty 连线，可以自行选择合适的 tty 传讯息 <br>例子.1 : <br>传讯息给 Rollaend，此时 Rollaend 只有一个连线 : <br>write Rollaend <br>接下来就是将讯息打上去，结束请按 ctrl+c <br>例子.2 :传讯息给 Rollaend，Rollaend 的连线有 pts/2，pts/3 : <br>write Rollaend pts/2 <br>接下来就是将讯息打上去，结束请按 ctrl+c <br>注意 : 若对方设定 mesg n，则此时讯席将无法传给对方</font></p>
            <p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称：kill <br>使用权限：所有使用者 <br>使用方式： <br>kill [ -s signal | -p ] [ -a ] pid ... <br>kill -l [ signal ] <br>说明：kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号 <br>把计 <br>-s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l <br>-p : 印出 pid , 并不送出信号 <br>-l (signal) : 列出所有可用的信号名称 <br>范例： <br>将 pid 为 323 的行程砍掉 (kill) : <br>kill -9 323 <br>将 pid 为 456 的行程重跑 (restart) : <br>kill -HUP 456</font></p>
            <p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称：nice <br>使用权限：所有使用者 <br>使用方式：nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command [arg...] <br>说明：以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序) <br>把计 <br>-n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment <br>--help 显示求助讯息 <br>--version 显示版本资讯 <br>范例： <br>将 ls 的优先序加 1 并执行 : <br>nice -n 1 ls <br>将 ls 的优先序加 10 并执行 : <br>nice ls将 ls 的优先序加 10 并执行 <br>注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数，Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程，优先序越高，所可能获得的 CPU时间就越多。</font></p>
            <p><br><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称：ps <br>使用权限：所有使用者 <br>使用方式：ps [options] [--help] <br>说明：显示瞬间行程 (process) 的动态 <br>参数： <br>ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义 <br>-A 列出所有的行程 <br>-w 显示加宽可以显示较多的资讯 <br>-au 显示较详细的资讯 <br>-aux 显示所有包含其他使用者的行程 <br>au(x) 输出格式 : <br>USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND <br>USER: 行程拥有者 <br>PID: pid <br>%CPU: 占用的 CPU 使用率 <br>%MEM: 占用的记忆体使用率 <br>VSZ: 占用的虚拟记忆体大小 <br>RSS: 占用的记忆体大小 <br>TTY: 终端的次要装置号码 (minor device number of tty) <br>STAT: 该行程的状态: <br>D: 不可中断的静止 (通悸□□缜b进行 I/O 动作) <br>R: 正在执行中 <br>S: 静止状态 <br>T: 暂停执行 <br>Z: 不存在但暂时无法消除 <br>W: 没有足够的记忆体分页可分配 <br>&lt;: 高优先序的行程 <br>N: 低优先序的行程 <br>L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O) <br>START: 行程开始时间 <br>TIME: 执行的时间 <br>COMMAND:所执行的指令 <br>范例： <br>ps <br>PID TTY TIME CMD <br>2791 ttyp0 00:00:00 tcsh <br>3092 ttyp0 00:00:00 ps <br>% ps -A <br>PID TTY TIME CMD <br>1 ? 00:00:03 init <br>2 ? 00:00:00 kflushd <br>3 ? 00:00:00 kpiod <br>4 ? 00:00:00 kswapd <br>5 ? 00:00:00 mdrecoveryd <br>....... <br>% ps -aux <br>USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND <br>root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3] <br>root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd] <br>root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod] <br>root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd] <br></font></p>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/19851985lili/aggbug/110329.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-04-13 08:36 <a href="http://www.blogjava.net/19851985lili/articles/110329.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux命令大全（四）</title><link>http://www.blogjava.net/19851985lili/articles/110328.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 13 Apr 2007 00:35:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/110328.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/110328.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/110328.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/110328.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/110328.html</trackback:ping><description><![CDATA[<p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称：pstree <br>使用权限：所有使用者 <br>使用方式： <br>pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user] <br>pstree -V <br>说明：将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程 <br>参数： <br>-a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号 <br>-c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 * <br>范例： <br>pstree <br>init-+-amd <br>|-apmd <br>|-atd <br>|-httpd---10*[httpd] <br>%pstree -p <br>init(1)-+-amd(447) <br>|-apmd(105) <br>|-atd(339) <br>%pstree -c <br>init-+-amd <br>|-apmd <br>|-atd <br>|-httpd-+-httpd <br>| |-httpd <br>| |-httpd <br>| |-httpd <br>....</font></p>
<p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称：renice <br>使用权限：所有使用者 <br>使用方式：renice priority [-p] pid ...] [-g] pgrp ...] [-u] user ...] <br>说明：重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定) <br>把计 <br>-p pid 重新指定行程的 id 为 pid 的行程的优先序 <br>-g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序 <br>-u user 重新指定行程拥有者为 user 的行程的优先序 <br>范例： <br>将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 : <br>renice +1 987 -u daemon root -p 32 <br>注意 : 每一个行程(Process)都有一个唯一的 (unique) id </font></p>
<p><br><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称：top <br>使用权限：所有使用者 <br>使用方式：top [-] [d delay] [q] [c] [S] [s] [i] [n] [b] <br>说明：即时显示 process 的动态 <br>把计 <br>d : 改变显示的更新速度，或是在交谈式指令列( interactive command)按 s <br>q : 没有任何延迟的显示速度，如果使用者是有 superuser 的权限，则 top 将会以最高的优先序执行 <br>c : 切换显示模式，共有两种模式，一是只显示执行档的名称，另一种是显示完整的路径与名称S : 累积模式，会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 <br>s : 安全模式，将交谈式指令取消, 避免潜在的危机 <br>i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 <br>n : 更新的次数，完成后将会退出 top <br>b : 批次档模式，搭配 "n" 参数一起使用，可以用来将 top 的结果输出到档案内 <br>范例： <br>显示更新十次后退出 ; <br>top -n 10 <br>使用者将不能利用交谈式指令来对行程下命令 : <br>top -s <br>将更新显示二次的结果输入到名称为 top.log 的档案里 : <br>top -n 2 -b &lt; top.log</font></p>
<p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称：skill <br>使用权限：所有使用者 <br>使用方式： skill [signal to send] [options] 选择程序的规则 <br>说明： <br>送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 <br>讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 <br>一般参数： <br>-f 快速模式/尚未完成 <br>-i 互动模式/ 每个动作将要被确认 <br>-v 详细输出/ 列出所选择程序的资讯 <br>-w 智能警告讯息/ 尚未完成 <br>-n 没有动作/ 显示程序代号 <br>参数：选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 <br>-t 终端机代号 ( tty 或 pty ) <br>-u 使用者名称 <br>-p 程序代号 ( pid ) <br>-c 命令名称 可使用的讯号: <br>以下列出已知的讯号名称,讯号代号,功能。 <br>名称 (代号) 功能/ 描述 <br>ALRM 14 离开 <br>HUP 1 离开 <br>INT 2 离开 <br>KILL 9 离开/ 强迫关闭 <br>PIPE 13 离开 <br>POLL 离开 <br>PROF 离开 <br>TERM 15 离开 <br>USR1 离开 <br>USR2 离开 <br>VTALRM 离开 <br>STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 <br>UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 <br>TSTP 停止 /产生与内容相关的行为 <br>TTIN 停止 /产生与内容相关的行为 <br>TTOU 停止 /产生与内容相关的行为 <br>STOP 停止 /强迫关闭 <br>CONT 从新启动 /如果在停止状态则从新启动,否则忽略 <br>PWR 忽略 /在某些系统中会离开 <br>WINCH 忽略 <br>CHLD 忽略 <br>ABRT 6 核心 <br>FPE 8 核心 <br>ILL 4 核心 <br>QUIT 3 核心 <br>SEGV 11 核心 <br>TRAP 5 核心 <br>SYS 核心 /或许尚未实作 <br>EMT 核心 /或许尚未实作 <br>BUS 核心 /核心失败 <br>XCPU 核心 /核心失败 <br>XFSZ 核心 /核心失败 <br>范例： <br>停止所有在 PTY 装置上的程序 <br>skill -KILL -v pts/* <br>停止三个使用者 user1 , user2 , user3 <br>skill -STOP user1 user2 user3 <br>其他相关的命令: kill</font></p>
<p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称：expr <br>使用权限：所有使用者 <br>### 字串长度 <br>shell&gt;&gt; expr length "this is a test" <br>14 <br>### 数字商数 <br>shell&gt;&gt; expr 14 % 9 <br>5 <br>### 从位置处抓取字串 <br>shell&gt;&gt; expr substr "this is a test" 3 5 <br>is is <br>### 数字串 only the first character <br>shell&gt;&gt; expr index "testforthegame" e <br>2 <br>### 字串真实重现 <br>shell&gt;&gt; expr quote thisisatestformela <br>thisisatestformela</font></p>
<p><br><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称: tr <br>### 1.比方说要把目录下所有的大写档名换为小写档名? <br>似乎有很多方式，"tr"是其中一种: <br>#!/bin/sh <br>dir="/tmp/testdir"; <br>files=`find $dir -type f`; <br>for i in $files <br>do <br>dir_name=`dirname $i`; <br>ori_filename=`basename $i` <br>new_filename=`echo $ori_filename | tr [:upper:] [:lower:]` &gt; /dev/null; <br>#echo $new_filename; <br>mv $dir_name/$ori_filename $dir_name/$new_filename <br>done </font></p>
<p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>### 2.自己试验中...lowercase to uppercase <br>tr abcdef...[del] ABCDE...[del] <br>tr a-z A-Z <br>tr [:lower:] [:upper:] <br>shell&gt;&gt; echo "this is a test" | tr a-z A-Z &gt; www <br>shell&gt;&gt; cat www <br>THIS IS A TEST <br>### 3.去掉不想要的字串 <br>shell&gt;&gt; tr -d this ### 去掉有关 t.e.s.t <br>this <br>man <br>man <br>test <br>e <br>### 4.取代字串 <br>shell&gt;&gt; tr -s "this" "TEST" <br>this <br>TEST <br>th <br>TE</font></p>
<p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>指令：clear <br>用途：清除萤幕用。 <br>使用方法：在 console 上输入 clear。</font></p>
<p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称: reset, tset <br>使用方法: tset [-IQqrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal] <br>使用说明: <br>reset 其实和 tset 是一同个命令，它的用途是设定终端机的状态。一般而言，这个命令会自动的从环境变数、命令列或是其它的组态档决定目前终端机的型态。如果指定型态是 ? 的话，这个程式会要求使用者输入终端机的型别。 <br>由于这个程式会将终端机设回原始的状态，除了在 login 时使用外，当系统终端机因为程式不正常执行而进入一些奇怪的状态时，你也可以用它来重设终端机o 例如不小心把二进位档用 cat 指令进到终端机，常会有终端机不再回应键盘输入，或是回应一些奇怪字元的问题。此时就可以用 reset 将终端机回复至原始状态。选项说明: </font></p>
<p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>-p <br>将终端机类别显示在萤幕上，但不做设定的动作。这个命令可以用来取得目前终端机的类别。 <br>-e ch <br>将 erase 字元设成 ch <br>-i ch <br>将中断字元设成 ch <br>-k ch <br>将删除一行的字元设成 ch <br>-I <br>不要做设定的动作，如果没有使用选项 -Q 的话，erase、中断及删除字元的目前值依然会送到萤幕上。 <br>-Q <br>不要显示 erase、中断及删除字元的值到萤幕上。 <br>-r <br>将终端机类别印在萤幕上。 <br>-s <br>将设定 TERM 用的命令用字串的型式送到终端机中，通常在 .login 或 .profile 中用 <br>范例: <br>让使用者输入一个终端机型别并将终端机设到该型别的预设状态。 <br># reset ? <br>将 erase 字元设定 control-h <br># reset -e ^B <br>将设定用的字串显示在萤幕上 <br># reset -s <br>Erase is control-B (^B). <br>Kill is control-U (^U). <br>Interrupt is control-C (^C). <br>TERM=xterm;</font></p>
<p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称：compress <br>使用权限：所有使用者 </font></p>
<p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>使用方式：compress [-dfvcV] [-b maxbits] [file ...] </font></p>
<p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>说明： <br>compress 是一个相当古老的 unix 档案压缩指令，压缩后的档案会加上一个 .Z 延伸档名以区别未压缩的档案，压缩后的档案可以以 uncompress 解压。若要将数个档案压成一个压缩档，必须先将档案 tar 起来再压缩。由于 gzip 可以产生更理想的压缩比例，一般人多已改用 gzip 为档案压缩工具。 </font></p>
<p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>参数： <br>c 输出结果至标准输出设备（一般指荧幕） <br>f 强迫写入档案，若目的档已经存在，则会被覆盖 (force) <br>v 将程式执行的讯息印在荧幕上 (verbose) <br>b 设定共同字串数的上限，以位元计算，可以设定的值为 9 至 16 bits 。由于值越大，能使用的共同字串就 越多，压缩比例就越大，所以一般使用预设值 16 bits (bits) <br>d 将压缩档解压缩 <br>V 列出版本讯息 <br>范例： <br>将 source.dat 压缩成 source.dat.Z ，若 source.dat.Z 已经存在，内容则会被压缩档覆盖。 <br>compress -f source.dat <br>将 source.dat 压缩成 source.dat.Z ，并列印出压缩比例。 <br>-v 与 -f 可以一起使用 <br>compress -vf source.dat <br>将压缩后的资料输出后再导入 target.dat.Z 可以改变压缩档名。 <br>compress -c source.dat &gt; target.dat.Z <br>-b 的值越大，压缩比例就越大，范围是 9-16 ，预设值是 16 。 <br>compress -b 12 source.dat <br>将 source.dat.Z 解压成 source.dat ，若档案已经存在，使用者按 y 以确定覆盖档案，若使用 -df 程式则会自动覆盖档案。由于系统会自动加入 .Z 为延伸档名，所以 source.dat 会自动当作 source.dat.Z 处理。 <br>compress -d source.dat <br>compress -d source.dat.Z</font></p>
<p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称： lpd <br>使用权限： 所有使用者 <br>使用方式：lpd [-l] [#port] <br>lpd 是一个常驻的印表机管理程式，它会根据 /etc/printcap 的内容来管理本地或远端的印表机。/etc/printcap 中定义的每一个印表机必须在 /var/lpd 中有一个相对应的目录，目录中以 cf 开头的档案表示一个等待送到适当装置的印表工作。这个档案通常是由 lpr 所产生。 <br>lpr 和 lpd 组成了一个可以离线工作的系统，当你使用 lpr 时，印表机不需要能立即可用，甚至不用存在。lpd 会自动监视印表机的状况，当印表机上线后，便立即将档案送交处理。这个得所有的应用程式不必等待印表机完成前一工作。 <br>参数： <br>-l: 将一些除错讯息显示在标准输出上。 <br>#port: 一般而言，lpd 会使用 getservbyname 取得适当的 TCP/IP port，你可以使用这个参数强迫 lpd 使用指定的 port。 <br>范例： <br>这个程式通常是由 /etc/rc.d 中的程式在系统启始阶段执行。 <br>名称 lpq <br>-- 显示列表机贮列中未完成的工作 用法 <br>lpq [l] [P] [user] <br>说明 <br>lpq 会显示由 lpd 所管理的列表机贮列中未完成的项目。 <br>范例 <br>范例 1. 显示所有在 lp 列表机贮列中的工作 <br># lpq -PlpRank Owner Job Files Total Size1st root 238 (standard input) 1428646 bytes <br>相关函数 <br>lpr,lpc,lpd</font></p>
<p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称： lpr <br>使用权限： 所有使用者 <br>使用方式：lpr [ -P printer ] <br>将档案或是由标准输入送进来的资料送到印表机贮列之中，印表机管理程式 lpd 会在稍后将这个档案送给适当的程式或装置处理。lpr 可以用来将料资送给本地或是远端的主机来处理。 <br>参数： </font></p>
<p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>-p Printer: 将资料送至指定的印表机 Printer，预设值为 lp。 <br>范例： <br>将 </font><a href="http://www.c/"><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 color=#0000ff size=2><u>www.c</u></font></a><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2> 和 kkk.c 送到印表机 lp。 <br>lpr -Plp </font><a href="http://www.c/"><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 color=#0000ff size=2><u>www.c</u></font></a><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2> kkk.c</font></p>
<p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称: lprm <br>-- 将一个工作由印表机贮列中移除 用法 <br>/usr/bin/lprm [P] [file...] <br>说明 <br>尚未完成的印表机工作会被放在印表机贮列之中，这个命令可用来将常未送到印表机的工作取消。由于每一个印表机都有一个独立的贮列，你可以用 -P 这个命令设定想要作用的印列机。如果没有设定的话，会使用系统预设的印表机。 <br>这个命令会检查使用者是否有足够的权限删除指定的档案，一般而言，只有档案的拥有者或是系统管理员才有这个权限。 <br>范例 <br>将印表机 hpprinter 中的第 1123 号工作移除 <br>lprm -Phpprinter 1123 <br>将第 1011 号工作由预设印表机中移除 <br>lprm 1011 <br>名称： fdformat <br>使用权限： 所有使用者 <br>使用方式：fdformat [-n] device <br>使用说明 : <br>对指定的软碟机装置进行低阶格式化。使用这个指令对软碟格式化的时候，最好指定像是下面的装置： <br>/dev/fd0d360 磁碟机 A: ，磁片为 360KB 磁碟 <br>/dev/fd0h1440 磁碟机 A: ，磁片为 1.4MB 磁碟 <br>/dev/fd1h1200 磁碟机 B: ，磁片为 1.2MB 磁碟 <br>如果使用像是 /dev/fd0 之类的装置，如果里面的磁碟不是标准容量，格式化可能会失败。在这种情况之下，使用者可以用 setfdprm 指令先行指定必要参数。 <br>参数： <br>-n 关闭确认功能。这个选项会关闭格式化之后的确认步骤。 <br>范例： <br>fdformat -n /dev/fd0h1440 <br>将磁碟机 A 的磁片格式化成 1.4MB 的磁片。并且省略确认的步骤。</font></p>
<p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2></font></p>
<p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称： mformat <br>使用权限： 所有使用者 <br>使用方式： <br>mformat [-t cylinders] [-h heads] [-s sectors] [-l volume_label] [-F] [-I fsVer-sion] [-S sizecode] [-2 sectors_on_track_0] [-M software_sector_size] [-a] [-X] [-C] [-H hidden_sectors] [-r root_sectors] [-B boot_sector] [-0 rate_on_track_0] [-A rate_on_other_tracks] [-1] [-k] drive: <br>在已经做过低阶格式化的磁片上建立 DOS 档案系统。如果在编译 mtools 的时候把 USE_2M 的参数打开，部分与 2M 格式相关的参数就会发生作用。否则这些参数（像是 S,2,1,M）不会发生作用。 <br>参数： <br>-t 磁柱（synlider）数 <br>-h 磁头（head）数 <br>-s 每一磁轨的磁区数 <br>-l 标签 <br>-F 将磁碟格式化为 FAT32 格式，不过这个参数还在实验中。 <br>-I 设定 FAT32 中的版本号。这当然也还在实验中。 <br>-S 磁区大小代码，计算方式为 sector = 2^(大小代码+7) <br>-c 磁丛（cluster）的磁区数。如果所给定的数字会导致磁丛数超过 FAT 表的限制，mformat 会自动放大磁区数。 <br>-s <br>-M 软体磁区大小。这个数字就是系统回报的磁区大小。通常是和实际的大小相同。 <br>-a 如果加上这个参数，mformat 会产生一组 Atari 系统的序号给这块软碟。 <br>-X 将软碟格式化成 XDF 格式。使用前必须先用 xdfcopy 指令对软碟作低阶格式化的动作。 <br>-C 产生一个可以安装 MS-DOS 档案系统的磁碟影像档（disk image）。当然对一个实体磁碟机下这个参数是没有意义的。 <br>-H 隐藏磁区的数目。这通常适用在格式化硬碟的分割区时，因为通常一个分割区的前面还有分割表。这个参数未经测试，能不用就不用。 <br>-n 磁碟序号 <br>-r 根目录的大小，单位是磁区数。这个参数只对 FAT12 和 FAT16 有效。 <br>-B 使用所指定的档案或是设备的开机磁区做为这片磁片或分割区的开机磁区。当然当中的硬体参数会随之更动。 <br>-k 尽量保持原有的开机磁区。 <br>-0 第 0 轨的资料传输率 <br>-A 第 0 轨以外的资料传输率 <br>-2 使用 2m 格式 <br>-1 不使用 2m 格式 <br>范例： <br>mformat a: <br>这样会用预设值把 a: （就是 /dev/fd0）里的磁碟片格式化。</font></p>
<p><font style="BACKGROUND-COLOR: #c0c0c0" face=宋体 size=2>名称： mkdosfs <br>使用权限： 所有使用者 <br>使用方式： mkdosfs [ -c | -l filename ] <br>[ -f number_of_FATs ] <br>[ -F FAT_size ] <br>[ -i volume_id ] <br>[ -m message_file ] <br>[ -n volume_name ] <br>[ -r root_dir_entry ] <br>[ -s sector_per_cluster ] <br>[ -v ] <br>device <br>[ block_count ] <br>说明： 建立 DOS 档案系统。 device 指你想要建立 DOS 档案系统的装置代号。像是 /dev/hda1 等等。 block_count 则是你希望配置的区块数。如果 block_count 没有指定则系统会自动替你计算符合该装置大小的区块数。 <br>参数： <br>-c 建立档案系统之前先检查是否有坏轨。 <br>-l 从得定的档案中读取坏轨记录。 <br>-f 指定档案配置表（FAT , File Allocation Table)的数量。预设值为 2 。目前 Linux 的 FAT 档案系统不支援超过 2 个 FAT 表。通常这个不需要改。 <br>-F 指定 FAT 表的大小，通常是 12 或是 16 个位元组。12 位元组通常用于磁碟片，16 位元组用于一般硬碟的分割区，也就是所谓的 FAT16 格式。这个值通常系统会自己选定适当的值。在磁碟片上用 FAT16 通常不会发生作用，反之在硬碟上用 FAT12 亦然。 <br>-i 指定 Volume ID。一般是一个 4 个位元组的数字，像是 2e203a47 。如果不给系统会自己产生。 <br>-m 当使用者试图用这片磁片或是分割区开机，而上面没有作业系统时，系统会给使用者一段警告讯息。这个参数就是用来变更这个讯息的。你可以先用档案编辑好，然后用这个参数指定，或是用 <br>-m - <br>这样系统会要求你直接输入这段文字。要特别注意的是，档案里的字串长度不要超过 418 个字，包括展开的跳栏符号（TAB）和换行符号（换行符号在 DOS 底下算两个字元！） <br>-n 指定 Volume Name，就是磁碟标签。如同在 DOS 底下的 format 指令一样，给不给都可以。没有预设值。 <br>-r 指定根目录底下的最大档案数。这里所谓的档案数包括目录。预设值是在软碟上是 112 或是 224 ，在硬碟上是 512。没事不要改这个数字。 <br>-s 每一个磁丛（cluster）的磁区数。必须是 2 的次方数。不过除非你知道你在作什么，这个值不要乱给。 <br>-v 提供额外的讯息 <br>范例： <br>mkdosfs -n Tester /dev/fd0 将 A 槽里的磁碟片格式化为 DOS 格式，并将标签设为 Tester <br>以上摘自linuxeden.com 供各位查阅！</font></p>
<img src ="http://www.blogjava.net/19851985lili/aggbug/110328.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-04-13 08:35 <a href="http://www.blogjava.net/19851985lili/articles/110328.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OpenSSH：让远程管理更安全</title><link>http://www.blogjava.net/19851985lili/articles/110323.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 13 Apr 2007 00:26:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/110323.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/110323.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/110323.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/110323.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/110323.html</trackback:ping><description><![CDATA[<div class=tit>OpenSSH：让远程管理更安全</div>
<div class=date>2007-04-10 13:50</div>
<table style="TABLE-LAYOUT: fixed">
    <tbody>
        <tr>
            <td>
            <div class=cnt>
            <p style="TEXT-INDENT: 2em">　　安全和稳定是Linux操作系统的两大特点。由于Linux采取了许多安全技术措施，包括读/写权限控制、带保护的子系统、审计跟踪、核心授权等，为网络多用户环境中的用户提供了必要的安全保障，因此越来越多的用户开始学习和使用Linux。但是Linux的安全要建立在有效的防范基础上，如果是一个不加任何防范和限制的Linux系统，同样也有较多漏洞。以传统的网络服务程序为例，FTP、R Shell和Telnet等服务在本质上都存在不安全因素，因为它们在网络上用&#8220;明文&#8221;传送口令和数据，使别有用心的人很容易截获这些口令和数据。同时这些服务程序的安全验证方式也有弱点，很容易受到&#8220;中间人&#8221;（man-in-the-middle）的攻击。所谓&#8220;中间人&#8221;的攻击方式，即&#8220;中间人&#8221;冒充真正的服务器接收用户传给服务器的数据，然后再冒充该用户把数据传给真正的服务器。服务器和用户之间的数据传送被&#8220;中间人&#8221;做了手脚之后，会出现很严重的问题。所以，尽可能地使用安全的工具来管理系统显得愈发重要。 </p>
            <p style="TEXT-INDENT: 2em">　　<strong>传统远程管理工具的特点</strong> </p>
            <p style="TEXT-INDENT: 2em">　　远程登录的作用就是让用户以模拟终端的方式，登录到Internet的某台主机上。一旦连接成功，这些个人计算机就像远程计算机的一个终端，可以像使用终端计算机一样输入命令，并运行远程计算机中的程序。 </p>
            <p style="TEXT-INDENT: 2em">　　在企业通常的使用环境中，服务器放在ISP托管中心或其服务器机房内，只有少数人才能进入并接触到主机。因此管理员通常会在服务器上开启Telnet服务守护进程，以便能够随时观察服务器上的变化，并登录到服务器上进行维护；如果管理员需要在服务器调试程序，还会开启FTP服务进程，从本地机上传程序到服务器进行调试（如图1所示）。可见这种终端的服务对网络管理员来说非常重要。 </p>
            <p style="TEXT-INDENT: 2em"><img style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" src="http://tech.ccidnet.com/col/attachment/2003/7/240405.gif"> </p>
            <p style="TEXT-INDENT: 2em">　　图1 管理员利用终端服务对ISP进行操控 </p>
            <p style="TEXT-INDENT: 2em">　　一般在远程管理中经常使用远程管理Telnet的工具有CRT、NetTerm、ShellNet，以及Rlogin、Rcp、Rexec、Rsh（所有以&#8220;R&#8221;开头的服务都建立在不与外界进行任何联系的基础上。出于安全方面的考虑，必须禁止这些进程的启动）。这些工具的优点是使用方便、配置简单；缺点是不够安全。以Telnet为例，因为其以&#8220;明码&#8221;传输，所以不能称为一个很好的联机方式。什么是&#8220;明码&#8221;？简单地说，使用Telnet时，系统会出现一个主机界面，如果没有设置系统的issue.net文件为空，系统默认出现的界面就会泄露一些对用户不利的信息给别人，如图2所示。 </p>
            <p style="TEXT-INDENT: 2em"><img style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" src="http://tech.ccidnet.com/col/attachment/2003/7/240407.gif"> </p>
            <p style="TEXT-INDENT: 2em">　　图2 Telnet登录主机界面 </p>
            <p style="TEXT-INDENT: 2em">　　用户需要输入账号与密码，当主机接受资料后才能进行确认。此时，用户资料就会经过Telnet协议传输到主机上。如果有人正在某个router节点监听封包，就可以轻而易举地截获资料封包，并可以通过解读窃取账号和密码。建议非必要时不要激活Telnet；如果一定要激活，必须确定限制的联机范围，并使用iptables设定联机的限制区域。此外，还要随时注意登录档案里关于登录的事项，不要让root用户以Telnet方式登入Linux主机。 </p>
            <p style="TEXT-INDENT: 2em">　　<strong>SSH及OpenSSH简介</strong> </p>
            <p style="TEXT-INDENT: 2em">　　SSH（Secure Shell）是以远程联机服务方式操作服务器时的较为安全的解决方案。它最初由芬兰的一家公司开发，但由于受版权和加密算法的限制，很多人转而使用免费的替代软件OpenSSH。 </p>
            <p style="TEXT-INDENT: 2em">　　用户通过SSH可以把所有传输的数据进行加密，使&#8220;中间人&#8221;的攻击方式不可能实现，而且也能够防止DNS和IP欺骗。它还有一个额外的好处是传输的数据是经过压缩的，可以加快传输的速度。SSH作用广泛，既可以代替Telnet，又可以为FTP、POP，甚至为PPP提供一个安全的&#8220;通道&#8221;。SSH协议在预设的状态中，提供两个服务器功能：一个是类似Telnet的远程联机使用Shell服务器，即俗称SSH功能；另一个是类似FTP服务的SFTP-Server功能，可提供更安全的FTP服务。 </p>
            <p style="TEXT-INDENT: 2em">　　SSH的安全验证如何工作呢？主要依靠联机加密技术。从客户端来看，有以下两种安全验证级别： </p>
            <p style="TEXT-INDENT: 2em">　　1．基于口令的安全验证（ssh1） 只要知道自己的账号和口令，就可以登录到远程主机。所有传输的数据都将被加密，但是不能保证正在连接的服务器就是想要连接的服务器。可能受到&#8220;中间人&#8221;的攻击。 </p>
            <p style="TEXT-INDENT: 2em">　　2．基于密匙的安全验证（ssh2） 需要依靠密匙，即用户必须为自己创建一对密匙，并把公用密匙放在需要访问的服务器上。如果要连接到SSH服务器上，客户端软件就会向服务器发出请求，请求用密匙进行安全验证。服务器收到请求之后，先在该服务器的home目录下寻找公用密匙，然后把它和发送过来的公用密匙进行比较。如果两个密匙一致，服务器就用公用密匙加密&#8220;质询&#8221;（challenge），并把它发送给客户端软件。客户端软件收到&#8220;质询&#8221;后，就可以用私人密匙解密再把它发送给服务器。使用这种方式，用户必须知道自己密匙的口令。与第一种级别相比，这种级别不需要在网络上传送口令，不仅加密所有传送的数据，而且阻止了&#8220;中间人&#8221;攻击方式。整个登录的过程一般需要10秒。 </p>
            <p style="TEXT-INDENT: 2em">　　<strong>OpenSSH的安装和启动</strong> </p>
            <p style="TEXT-INDENT: 2em">　　OpenSSH的安装非常简便，操作如下。 </p>
            <p style="TEXT-INDENT: 2em">　　1.下载软件包。到http://www.openssh.com下载最新软件包OpenSSH 3.6.1（最好下载源程序软件包后自行编译）。本文以openssh-3.5p1.tar.gz为例进行介绍，安装环境为Red Hat 7.1/kernel 2.4.8/gcc-2.96-98。 </p>
            <p style="TEXT-INDENT: 2em">　　2. 解压及安装，代码如下： </p>
            <p style="TEXT-INDENT: 2em"><ccid_nobr></ccid_nobr>
            <table cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=550 align=center borderColorLight=#000000 border=1>
                <tbody>
                    <tr>
                        <td class=code bgColor=#e6e6e6>
                        <pre><ccid_code></ccid_code># tar zxvf openssh-3.5p1.tar.gz
                        # cd openssh-3.5p1
                        # ./configure --prefix=/opt --sysconfdir=/etc/openssh
                        # make
                        # make install
                        # cd /etc/rc.d/init.d/
                        # vi sshd&nbsp;&nbsp;
                        //加入/opt/sbin/sshd启动进程
                        # cd /etc/rc.d/rc3.d/
                        # ln -s ../init.d/sshd S59sshd</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </p>
            <p style="TEXT-INDENT: 2em">　　重启计算机以后，用下列命令进行测试： </p>
            <p style="TEXT-INDENT: 2em"><ccid_nobr></ccid_nobr>
            <table cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=550 align=center borderColorLight=#000000 border=1>
                <tbody>
                    <tr>
                        <td class=code bgColor=#e6e6e6>
                        <pre><ccid_code></ccid_code># ssh -l 　geminis 　www.test.com
                        The authenticity of host&nbsp;&nbsp; 'www.test.com&nbsp;&nbsp; (*.*.*.*)' can't be established.
                        RSA key fingerprint is a7:35:3c:bd:47:b0:5d:30:68:f1:15:77:1a:b1:67:dd.
                        Are you sure you want to continue connecting (yes/no)?</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </p>
            <p style="TEXT-INDENT: 2em">　　因为是第一次登录主机，OpenSSH将显示不能识别该主机。键入&#8220;yes&#8221;，把主机的&#8220;识别标记&#8221;加到&#8220;~/.ssh/know_hosts&#8221;文件中。第二次访问这台主机的时候就不会再显示这条提示信息。然后，OpenSSH提示输入远程主机上的账号及口令。输入完后就建立了SSH连接，可以像使用Telnet一样使用OpenSSH。 </p>
            <p style="TEXT-INDENT: 2em">　　<strong>配置基于密钥认证的OpenSSH</strong> </p>
            <p style="TEXT-INDENT: 2em">　　缺省情况下，SSH将默认使用口令验证方式。不需要对系统进行任何配置就可以使用账号和口令登录到远程主机。下面介绍如何配置并使用基于密匙认证的OpenSSH（假设用户名为geminis，主机IP为192.168.0.1）。 </p>
            <p style="TEXT-INDENT: 2em">　　首先创建一对密匙（包括公匙和密匙，并且用公匙加密的数据只能用密匙解密），把公匙放到需要远程服务器上。当登录远程服务器时，客户端软件会向服务器发出请求，请求用密匙进行认证，代码如下： </p>
            <p style="TEXT-INDENT: 2em"><ccid_nobr></ccid_nobr>
            <table cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=550 align=center borderColorLight=#000000 border=1>
                <tbody>
                    <tr>
                        <td class=code bgColor=#e6e6e6>
                        <pre><ccid_code></ccid_code># ssh-keygen -d
                        // 加上参数d是创建一个一基于ssh2的密匙对　
                        #Generating public/private DSA key pair.　
                        // 生成DSA加密模式的密匙对
                        # Enter file in which to save the key (/home/geminis/.ssh/id_dsa):　
                        //存放密匙文件的路径，直接回车为默认目录
                        # Enter passphrase (empty for no passphrase):&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                        //必须输入一个＞4个字符的标识符
                        # Enter same passphrase again:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                        //重新确认一次</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </p>
            <p style="TEXT-INDENT: 2em">　　如果创建成功，系统将返回以下信息： </p>
            <p style="TEXT-INDENT: 2em"><ccid_nobr></ccid_nobr>
            <table cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=550 align=center borderColorLight=#000000 border=1>
                <tbody>
                    <tr>
                        <td class=code bgColor=#e6e6e6>
                        <pre><ccid_code></ccid_code>Your identification has been saved in /home/geminis/.ssh/id_dsa.
                        Your public key has been saved in /home/geminis/.ssh/id_dsa.pub.
                        The key fingerprint is:
                        29:1b:46:00:08:38:d5:87:da:96:e7:c4:a3:6b:b1:3f geminis@www.test.com</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </p>
            <p style="TEXT-INDENT: 2em">　　接下来，把id_dsa.pub发布到服务器上。通过FTP将公匙文件&#8220;/home/admin/.ssh/id_dsa.pub&#8221;，复制到远程服务器的&#8220;/home/admin/.ssh&#8221;目录。如果.ssh目录不存在，可以用mkdir命令先建立。然后，将&#8220;id_dsa.pub&#8221;重命名为&#8220;authorized_keys2&#8221;，代码如下： </p>
            <p style="TEXT-INDENT: 2em"><ccid_nobr></ccid_nobr>
            <table cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=550 align=center borderColorLight=#000000 border=1>
                <tbody>
                    <tr>
                        <td class=code bgColor=#e6e6e6>
                        <pre><ccid_code></ccid_code>＃ mv id_dsa.pub authorized_keys2
                        ＃ chmod 644 authorized_keys2</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </p>
            <p style="TEXT-INDENT: 2em">　　注意，如果authorized_keys2文件的权限不正确，会导致SSH连接失败。 </p>
            <p style="TEXT-INDENT: 2em">　　服务器收到请求之后，在该服务器的宿主目录下寻找公匙，然后检查该公匙是否合法。如果合法就用公匙加密一随机数（即所谓的challenge）并发送给客户端软件。客户端软件收到后就用私匙解密再把它发送给服务器。因为用公匙加密的数据只能用密匙解密，服务器经过比较就可以知道该客户连接的合法性。连接代码如下： </p>
            <p style="TEXT-INDENT: 2em"><ccid_nobr></ccid_nobr>
            <table cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=550 align=center borderColorLight=#000000 border=1>
                <tbody>
                    <tr>
                        <td class=code bgColor=#e6e6e6>
                        <pre><ccid_code></ccid_code># ssl -l geminis www.test.com</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </p>
            <p style="TEXT-INDENT: 2em">　　系统返回以下信息： </p>
            <p style="TEXT-INDENT: 2em"><ccid_nobr></ccid_nobr>
            <table cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=550 align=center borderColorLight=#000000 border=1>
                <tbody>
                    <tr>
                        <td class=code bgColor=#e6e6e6>
                        <pre><ccid_code></ccid_code># Enter passphrase for key '/home/geminis/.ssh/id_dsa':&nbsp;&nbsp;&nbsp; ******
                        Last login: Wed Apr 16 12:31:49 2003 from www.geminis.com</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </p>
            <p style="TEXT-INDENT: 2em">　　<strong>OpenSSH客户端使用方法</strong> </p>
            <p style="TEXT-INDENT: 2em">　　1． Windows平台 </p>
            <p style="TEXT-INDENT: 2em">　　客户端通常使用Windows平台，操作较为直观。下面对几种客户端工具进行介绍。 </p>
            <p style="TEXT-INDENT: 2em">　　◆ PuTTY </p>
            <p style="TEXT-INDENT: 2em">　　在客户端使用SSH较好的工具是PuTTY，这是一个开源软件。用户可以根据自己的配置情况对该软件进行修改，如图3所示。 </p>
            <p style="TEXT-INDENT: 2em"><img style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" src="http://tech.ccidnet.com/col/attachment/2003/7/240408.gif"> </p>
            <p style="TEXT-INDENT: 2em">　　图3 PuTTY配置界面 </p>
            <p style="TEXT-INDENT: 2em">　　如果是第一次使用该软件，系统会提示下载有关主机的&#8220;识别标记&#8221;，选择&#8220;yes&#8221;，下次登录就不会出现提示框。 </p>
            <p style="TEXT-INDENT: 2em">　　◆ Filezilla </p>
            <p style="TEXT-INDENT: 2em">　　Filezilla是客户端使用SFTP的一款不错的开源软件，对中文支持很好，配置界面如图4所示。 </p>
            <p style="TEXT-INDENT: 2em"><img style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" src="http://tech.ccidnet.com/col/attachment/2003/7/240409.gif"> </p>
            <p style="TEXT-INDENT: 2em">　　图4 Filezilla配置界面 </p>
            <p style="TEXT-INDENT: 2em">　　2． Linux终端 </p>
            <p style="TEXT-INDENT: 2em">　　在Linux终端下使用SSH，优点是操作更方便，无须其它软件；缺点是不太直观。使用方法及命令介绍如下： </p>
            <p style="TEXT-INDENT: 2em">　　◆ SSH的使用 </p>
            <p style="TEXT-INDENT: 2em"><ccid_nobr></ccid_nobr>
            <table cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=550 align=center borderColorLight=#000000 border=1>
                <tbody>
                    <tr>
                        <td class=code bgColor=#e6e6e6>
                        <pre><ccid_code></ccid_code># ssh -l geminis www.test.com
                        Enter passphrase for key '/home/geminis/.ssh/id_dsa':　
                        //输入以前设置的标识符</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </p>
            <p style="TEXT-INDENT: 2em">　　◆ SFTP的使用 </p>
            <p style="TEXT-INDENT: 2em"><ccid_nobr></ccid_nobr>
            <table cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=550 align=center borderColorLight=#000000 border=1>
                <tbody>
                    <tr>
                        <td class=code bgColor=#e6e6e6>
                        <pre><ccid_code></ccid_code>　　# sftp&nbsp;&nbsp; www.test.com</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </p>
            <p style="TEXT-INDENT: 2em">　　SFTP相关命令的使用方法如表1所示。 </p>
            <p style="TEXT-INDENT: 2em">　　3．进阶提高要点 </p>
            <p style="TEXT-INDENT: 2em">　　配置SSH客户端文件&#8220;/etc/ssh/ssh_config&#8221;，如图5所示。 </p>
            <p style="TEXT-INDENT: 2em"><img style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" src="http://tech.ccidnet.com/col/attachment/2003/7/240410.gif"> </p>
            <p style="TEXT-INDENT: 2em">　　图5 配置&#8220;/etc/ssh/ssh_config&#8221;文件 </p>
            <p style="TEXT-INDENT: 2em">　　表1 SFTP相关命令的使用方法 </p>
            <p style="TEXT-INDENT: 2em"><img style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" src="http://tech.ccidnet.com/col/attachment/2003/7/240411.gif"> </p>
            <p style="TEXT-INDENT: 2em">　　选项设置说明如表2所示。 </p>
            <p style="TEXT-INDENT: 2em">　　表2 SSH配置选项说明 </p>
            <p style="TEXT-INDENT: 2em"><img style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" src="http://tech.ccidnet.com/col/attachment/2003/7/240412.gif"> </p>
            <p style="TEXT-INDENT: 2em">　　配置SSH服务器端文件&#8220;/etc/ssh/sshd_config&#8221;，取消口令验证。把&#8220;PasswordAuthentication Yes&#8221;改为&#8220;no&#8221;，可以禁止使用第一种口令验证。 </p>
            <p style="TEXT-INDENT: 2em">　　配置&#8220;/etc/ssh/sshd_config&#8221;文件，编辑&#8220;sshd_config&#8221;文件，加入或改变下面的参数： </p>
            <p style="TEXT-INDENT: 2em"><ccid_nobr></ccid_nobr>
            <table cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=550 align=center borderColorLight=#000000 border=1>
                <tbody>
                    <tr>
                        <td class=code bgColor=#e6e6e6>
                        <pre><ccid_code></ccid_code>#　This　is　ssh　server　systemwide　configuration　file.　
                        Port　22　
                        ListenAddress　192.168.1.1　
                        HostKey　/etc/ssh/ssh_host_key　
                        ServerKeyBits　1024　
                        LoginGraceTime　600　
                        KeyRegenerationInterval　3600　
                        PermitRootLogin　no　
                        IgnoreRhosts　yes　
                        IgnoreUserKnownHosts　yes　
                        StrictModes　yes　
                        X11Forwarding　no　
                        PrintMotd　yes　
                        SyslogFacility　AUTH　
                        LogLevel　INFO　
                        RhostsAuthentication　no　
                        RhostsRSAAuthentication　no　
                        RSAAuthentication　yes　
                        PasswordAuthentication　yes　
                        PermitEmptyPasswords　no　
                        AllowUsers　admin</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </p>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<br>
<img src ="http://www.blogjava.net/19851985lili/aggbug/110323.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-04-13 08:26 <a href="http://www.blogjava.net/19851985lili/articles/110323.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>