﻿<?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>PHP博客-Programming Life-随笔分类-Linux</title><link>http://www.phpweblog.net/killjin/category/307.html</link><description>相信不能相信的，完成不能完成的。矛盾，就象征进步。</description><language>zh-cn</language><lastBuildDate>Thu, 01 May 2008 12:25:55 GMT</lastBuildDate><pubDate>Thu, 01 May 2008 12:25:55 GMT</pubDate><ttl>60</ttl><item><title>linux系统locale的设定</title><link>http://www.phpweblog.net/killjin/archive/2008/03/27/3058.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Wed, 26 Mar 2008 19:40:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2008/03/27/3058.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/3058.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2008/03/27/3058.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/3058.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/3058.html</trackback:ping><description><![CDATA[<p>locale 是国际化与本土化过程中的一个非常重要的概念，个人认为，对于中文用户来说，通常会涉及到的国际化或者本土化，大致包含三个方面：看中文，写中文，与 window中文系统的兼容和通信。从实际经验上看来，locale的设定与看中文关系不大，但是与写中文，及window分区的挂载方式有很密切的关系。本人认为就像一个纯英文的Windows能够浏览中文，日文或者意大利文网页一样，你不需要设定locale就可以看中文。那么，为什么要设定 locale呢？什么时候会用到locale呢？</p>
<p><br>一、为什么要设定locale<br>正如前面我所讲的，设定locale与你能否浏览中文的网页没有直接的关系，即便你把locale设置成 en_US.ISO-8859-1这样一个标准的英文locale你照样可以浏览中文的网页，只要你的系统里面有相应的字符集（这个都不一定需要）和合适的字体（如simsun），浏览器就可以把网页翻译成中文给你看。具体的过程是网络把网页传送到你的机器上之后，浏览器会判断相应的编码的字符集，根据网页采用的字符集，去字体库里面找合适的字体，然后由文字渲染工具把相应的文字在屏幕上显示出来。</p>
<p>在下文本人会偶尔把字符集比喻成密码本，个人觉得对于一些东西比较容易理解，假如你不习惯的话，把全文copy到任何文本编辑器，用字符集替换密码本即可。</p>
<p>那有时候网页显示乱码或者都是方框是怎么回事呢？个人认为，显示乱码是因为设定的字符集不对(或者没有相应的字符集)，例如网页是用UTF-8 编码的，你非要用GB2312去看，而系统根据GB2312去找字体，然后在屏幕上显示，当然是一堆的乱码，也就是说你用一个错误的密码本去翻译发给你的电报，当然内容那叫一个乱；至于有些时候浏览的网页能显示一部分汉字，但有很多的地方是方框，能够显示汉字说明浏览器已经正确的判断出了网页的编码，并在字体库里面找到了相应的文字，但是并不是每个字体库都包含某个字符集全部的字体的缘故，有些时候会显示不完全，找一个比较全的支持较多字符集的字体就可以了。</p>
<p><br>既然我能够浏览中文网页，那为什么我还要设定locale呢？</p>
<p>其实你有没有想过这么一个问题，为什么gentoo官方论坛上中文论坛的网页是用UTF-8编码的（虽然大家一直强烈建议用GB2312编码），但是新浪网就是用GB2312编码的呢？而Xorg的官方网页竟然是ISO-8859-15编码的，我没有设定这个locale怎么一样的能浏览呢？这个问题就像是你有所有的密码本，不论某个网站是用什么字符集编码的，你都可以用你手里的密码本把他们翻译过来，但问题是虽然你能浏览中文网页，但是在整个操作系统里面流动的还是英文字符。所以，就像你能听懂英语，也能听懂中文。<br>最根本的问题是：你不可以写中文。</p>
<p>当你决定要写什么东西的时候，首先要决定的一件事情是用那种语言，对于计算机来说就是你要是用哪一种字符集，你就必须告诉你的linux系统，你想用那一本密码本去写你想要写的东西。知道为什么需要用GB2312字符集去浏览新浪了吧，因为新浪的网页是用GB2312写的。</p>
<p>为了让你的Linux能够输入中文，就需要把系统的locale设定成中文的(严格说来是locale中的语言类别LC_CTYPE )，例如zh_CN.GB2312、zh_CN.GB18030或者zh_CN.UTF-8。很多人都不明白这些古里古怪的表达方式。这个外星表达式规定了什么东西呢？这个问题稍后详述，现在只需要知道，这是locale的表达方式就可以了。</p>
<p>二、到底什么是locale？<br>locale这个单词中文翻译成地区或者地域，其实这个单词包含的意义要宽泛很多。Locale是根据计算机用户所使用的语言，所在国家或者地区，以及当地的文化传统所定义的一个软件运行时的语言环境。</p>
<p>这个用户环境可以按照所涉及到的文化传统的各个方面分成几个大类，通常包括用户所使用的语言符号及其分类(LC_CTYPE)，数字 (LC_NUMERIC)，比较和排序习惯(LC_COLLATE)，时间显示格式(LC_TIME)，货币单位(LC_MONETARY)，信息主要是提示信息,错误信息, 状态信息, 标题, 标签, 按钮和菜单等(LC_MESSAGES)，姓名书写方式(LC_NAME)，地址书写方式(LC_ADDRESS)，电话号码书写方式 (LC_TELEPHONE)，度量衡表达方式(LC_MEASUREMENT)，默认纸张尺寸大小(LC_PAPER)和locale对自身包含信息的概述(LC_IDENTIFICATION)。</p>
<p>所以说，locale就是某一个地域内的人们的语言习惯和文化传统和生活习惯。一个地区的locale就是根据这几大类的习惯定义的，这些locale定义文件放在/usr/share/i18n/locales目录下面，例如en_US, zh_CN and <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#100;&#101;&#95;&#68;&#69;&#64;&#101;&#117;&#114;&#111;">de_DE@euro</a>都是locale的定义文件，这些文件都是用文本格式书写的，你可以用写字板打开，看看里边的内容，当然出了有限的注释以外，大部分东西可能你都看不懂，因为是用的Unicode的字符索引方式。</p>
<p>对于<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#100;&#101;&#95;&#68;&#69;&#64;&#101;&#117;&#114;&#111;">de_DE@euro</a>的一点说明，@后边是修正项，也就是说你可以看到两个德国的locale：<br><a>/usr/share/i18n/locales/de_DE@euro</a><br>/usr/share/i18n/locales/de_DE<br>打开这两个locale定义，你就会知道它们的差别在于<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#100;&#101;&#95;&#68;&#69;&#64;&#101;&#117;&#114;&#111;">de_DE@euro</a>使用的是欧洲的排序、比较和缩进习惯，而de_DE用的是德国的标准习惯。</p>
<p>上面我们说到了zh_CN.GB18030的前半部分，后半部分是什么呢？大部分Linux用户都知道是系统采用的字符集。</p>
<p>三、什么是字符集？<br>字符集就是字符，尤其是非英语字符在系统内的编码方式，也就是通常所说的内码，所有的字符集都放在 /usr/share/i18n/charmaps，所有的字符集也都是用Unicode编号索引的。Unicode用统一的编号来索引目前已知的全部的符号。而字符集则是这些符号的编码方式，或者说是在网络传输，计算机内部通信的时候，对于不同字符的表达方式，Unicode是一个静态的概念，字符集是一个动态的概念，是每一个字符传递或传输的具体形式。就像Unicode编号U59D0是代表姐姐的&#8220;姐&#8221;字，但是具体的这个字是用两个字节表示，三个字节，还是四个字节表示，是字符集的问题。例如：UTF-8字符集就是目前流行的对字符的编码方式，UTF-8用一个字节表示常用的拉丁字母，用两个字节表示常用的符号，包括常用的中文字符，用三个表示不常用的字符，用四个字节表示其他的古灵精怪的字符。而GB2312字符集就是用两个字节表示所有的字符。需要提到一点的是Unicode除了用编号索引全部字符以外，本身是用四个字节存储全部字符，这一点在谈到挂载windows分区的时候是非常重要的一个概念。所以说你也可以把Unicode看作是一种字符集（我不知道它和UTF-32的关系，反正UTF-32就是用四个字节表示所有的字符的），但是这样表述符号是非常浪费资源的，因为在计算机世界绝大部分时候用到的是一个字节就可以搞定的26个字母而已。所以才会有UTF-8，UTF-16等等，要不然大同世界多好，省了这许多麻烦。</p>
<p><br>四、zh_CN.GB2312到底是在说什么？<br>Locale 是软件在运行时的语言环境, 它包括语言(Language), 地域 (Territory) 和字符集(Codeset)。一个locale的书写格式为: 语言[_地域[.字符集]]. 所以说呢，locale总是和一定的字符集相联系的。下面举几个例子：</p>
<p>1、我说中文，身处中华人民共和国，使用国标2312字符集来表达字符。<br>zh_CN.GB2312＝中文_中华人民共和国＋国标2312字符集。</p>
<p>2、我说中文，身处中华人民共和国，使用国标18030字符集来表达字符。<br>zh_CN.GB18030＝中文_中华人民共和国＋国标18030字符集。</p>
<p>3、我说中文，身处中华人民共和国台湾省，使用国标Big5字符集来表达字符。<br>zh_TW.BIG5=中文_台湾.大五码字符集</p>
<p>4、我说英文，身处大不列颠，使用ISO-8859-1字符集来表达字符。<br>en_GB.ISO-8859-1=英文_大不列颠.ISO-8859-1字符集</p>
<p>5、我说德语，身处德国，使用UTF-8字符集，习惯了欧洲风格。<br><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#100;&#101;&#95;&#68;&#69;&#46;&#85;&#84;&#70;&#45;&#56;&#64;&#101;&#117;&#114;&#111;">de_DE.UTF-8@euro</a>＝德语_德国.UTF-8字符集@按照欧洲习惯加以修正</p>
<p>注意不是<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#100;&#101;&#95;&#68;&#69;&#64;&#101;&#117;&#114;&#111;&#46;&#85;&#84;&#70;&#45;&#56;">de_DE@euro.UTF-8</a>，所以完全的locale表达方式是<br>[语言[_地域][.字符集] [@修正值]</p>
<p>生成的locale放在/usr/lib/locale/目录中，并且每个locale都对应一个文件夹，也就是说创建了<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#100;&#101;&#95;&#68;&#69;&#64;&#101;&#117;&#114;&#111;&#46;&#85;&#84;&#70;&#45;&#56;">de_DE@euro.UTF-8</a> locale之后，就生成<a>/usr/lib/locale/de_DE@euro.UTF-8/</a>目录，里面是具体的每个locale的内容。</p>
<p>五、怎样去自定义locale<br>在gentoo生成locale还是很容易的，首先要在USE里面加入userlocales支持，然后编辑locales.build文件，这个文件用来指示glibc生成locale文件。<br>很多人不明白每一个条目是什么意思。 其实根据上面的说明现在应该很明确了。</p>
<p>File: /etc/locales.build<br>en_US/ISO-8859-1<br>en_US.UTF-8/UTF-8</p>
<p>zh_CN/GB18030<br>zh_CN.GBK/GBK<br>zh_CN.GB2312/GB2312<br>zh_CN.UTF-8/UTF-8</p>
<p>上面是我的locales.build文件，依次的说明是这样的：</p>
<p>en_US/ISO-8859-1：生成名为en_US的locale，采用ISO-8859-1字符集，并且把这个locale作为英文_美国locale类的默认值，其实它和en_US.ISO-8859-1/ISO-8859-1没有任何区别。</p>
<p>en_US.UTF-8/UTF-8：生成名为en_US.UTF-8的locale，采用UTF-8字符集。</p>
<p>zh_CN/GB18030：生成名为zh_CN的locale，采用GB18030字符集，并且把这个locale作为中文_中国locale类的默认值，其实它和zh_CN.GB18030/GB18030没有任何区别。</p>
<p>zh_CN.GBK/GBK：生成名为zh_CN.GBK的locale，采用GBK字符集。<br>zh_CN.GB2312/GB2312：生成名为zh_CN.GB2312的locale，采用GB2312字符集。<br>zh_CN.UTF-8/UTF-8：生成名为zh_CN.UTF-8的locale，采用UTF-8字符集。</p>
<p>关于默认locale，默认locale可以简写成en_US或者zh_CN的形式，只是为了表达简单而已没有特别的意义。</p>
<p>Gentoo在locale定义的时候掩盖了一些东西，也就是locale的生成工具：localedef。<br>在编译完glibc之后你可以用这个localedef 再补充一些locale，就会更加理解locale了。具体的可以看 localedef 的manpage。</p>
<p>$localedef -f 字符集 -i locale定义文件 生成的locale的名称<br>例如<br>$localedef -f UTF-8 -i zh_CN zh_CN.UTF-8</p>
<p>上面的定义方法和在locales.build中设定zh_CN.UTF-8/UTF-8的结果是一样一样的。</p>
<p><br>六、locale的五脏六腑</p>
<p>刚刚生成了几个locale，但是为了让它们生效，必须告诉Linux系统使用那(几)个locale。这就需要对locale的内部机制有一点点的了解。在前面我已经提到过，locale把按照所涉及到的文化传统的各个方面分成12个大类，这12个大类分别是：<br>1、语言符号及其分类(LC_CTYPE)<br>2、数字(LC_NUMERIC)<br>3、比较和排序习惯(LC_COLLATE)<br>4、时间显示格式(LC_TIME)<br>5、货币单位(LC_MONETARY)<br>6、信息主要是提示信息,错误信息, 状态信息, 标题, 标签, 按钮和菜单等(LC_MESSAGES)<br>7、姓名书写方式(LC_NAME)<br>8、地址书写方式(LC_ADDRESS)<br>9、电话号码书写方式(LC_TELEPHONE)<br>10、度量衡表达方式(LC_MEASUREMENT)<br>11、默认纸张尺寸大小(LC_PAPER)<br>12、对locale自身包含信息的概述(LC_IDENTIFICATION)。</p>
<p>其中，与中文输入关系最密切的就是 LC_CTYPE， LC_CTYPE 规定了系统内有效的字符以及这些字符的分类，诸如什么是大写字母，小写字母，大小写转换，标点符号、可打印字符和其他的字符属性等方面。而locale定义zh_CN中最最重要的一项就是定义了汉字(Class &#8220;hanzi&#8221;)这一个大类，当然也是用Unicode描述的，这就让中文字符在Linux系统中成为合法的有效字符，而且不论它们是用什么字符集编码的。</p>
<p>LC_CTYPE<br>% This is a copy of the "i18n" LC_CTYPE with the following modifications: - Additional classes: hanzi</p>
<p>copy "i18n"</p>
<p>class "hanzi"; /<br>% &lt;U3400&gt;..&lt;U4DBF&gt;;/<br>&lt;U4E00&gt;..&lt;U9FA5&gt;;/<br>&lt;UF92C&gt;;&lt;UF979&gt;;&lt;UF995&gt;;&lt;UF9E7&gt;;&lt;UF9F1&gt;;&lt;UFA0C&gt;;&lt;UFA0D&gt;;&lt;UFA0E&gt;;/<br>&lt;UFA0F&gt;;&lt;UFA11&gt;;&lt;UFA13&gt;;&lt;UFA14&gt;;&lt;UFA18&gt;;&lt;UFA1F&gt;;&lt;UFA20&gt;;&lt;UFA21&gt;;/<br>&lt;UFA23&gt;;&lt;UFA24&gt;;&lt;UFA27&gt;;&lt;UFA28&gt;;&lt;UFA29&gt;<br>END LC_CTYPE</p>
<p>在en_US的locale定义中，并没有定义汉字，所以汉字不是有效字符。所以如果要输入中文必须使用支持中文的locale，也就是zh_XX，如zh_CN，zh_TW，zh_HK等等。</p>
<p>另外非常重要的一点就是这些分类是彼此独立的，也就是说LC_CTYPE，LC_COLLATE和 LC_MESSAGES等等分类彼此之间是独立的，可以根据用户的需要设定成不同的值。这一点对很多用户是有利的，甚至是必须的。例如，我就需要一个能够输入中文的英文环境，所以我可以把LC_CTYPE设定成zh_CN.GB18030，而其他所有的项都是en_US.UTF-8。</p>
<p><br>七、怎样设定locale呢？</p>
<p>设定locale就是设定12大类的locale分类属性，即 12个LC_*。除了这12个变量可以设定以外，为了简便起见，还有两个变量：LC_ALL和LANG。它们之间有一个优先级的关系：<br>LC_ALL&gt;LC_*&gt;LANG<br>可以这么说，LC_ALL是最上级设定或者强制设定，而LANG是默认设定值。<br>1、如果你设定了LC_ALL＝zh_CN.UTF-8，那么不管LC_*和LANG设定成什么值，它们都会被强制服从LC_ALL的设定，成为 zh_CN.UTF-8。<br>2、假如你设定了LANG＝zh_CN.UTF-8，而其他的LC_*=en_US.UTF-8，并且没有设定LC_ALL的话，那么系统的locale设定以LC_*=en_US.UTF-8。<br>3、假如你设定了LANG＝zh_CN.UTF-8，而其他的LC_*，和LC_ALL均未设定的话，系统会将LC_*设定成默认值，也就是LANG的值 zh_CN.UTF-8 。<br>4、假如你设定了LANG＝zh_CN.UTF-8，而其他的LC_CTYPE=en_US.UTF-8，其他的LC_*，和LC_ALL均未设定的话，那么系统的locale设定将是：LC_CTYPE=en_US.UTF-8，其余的 LC_COLLATE，LC_MESSAGES等等均会采用默认值，也就是LANG的值，也就是LC_COLLATE＝LC_MESSAGES＝&#8230;&#8230;＝ LC_PAPER＝LANG＝zh_CN.UTF-8。</p>
<p>所以，locale是这样设定的：<br>1、如果你需要一个纯中文的系统的话，设定LC_ALL= zh_CN.XXXX，或者LANG= zh_CN.XXXX都可以，当然你可以两个都设定，但正如上面所讲，LC_ALL的值将覆盖所有其他的locale设定，不要作无用功。<br>2、如果你只想要一个可以输入中文的环境，而保持菜单、标题，系统信息等等为英文界面，那么只需要设定LC_CTYPE＝zh_CN.XXXX，LANG= en_US.XXXX就可以了。这样LC_CTYPE＝zh_CN.XXXX，而LC_COLLATE＝LC_MESSAGES＝&#8230;&#8230;＝ LC_PAPER＝LANG＝en_US.XXXX。<br>3、假如你高兴的话，可以把12个LC_*一一设定成你需要的值，打造一个古灵精怪的系统：<br>LC_CTYPE＝zh_CN.GBK/GBK(使用中文编码内码GBK字符集)；<br>LC_NUMERIC=en_GB.ISO-8859-1(使用大不列颠的数字系统)<br><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#76;&#67;&#95;&#77;&#69;&#65;&#83;&#85;&#82;&#69;&#77;&#69;&#78;&#61;&#100;&#101;&#95;&#68;&#69;&#64;&#101;&#117;&#114;&#111;&#46;&#73;&#83;&#79;&#45;&#56;&#56;&#53;&#57;&#45;&#49;&#53;">LC_MEASUREMEN=de_DE@euro.ISO-8859-15</a>(德国的度量衡使用ISO-8859-15字符集)<br>罗马的地址书写方式，美国的纸张设定&#8230;&#8230;。估计没人这么干吧。<br>4、假如你什么也不做的话，也就是LC_ALL，LANG和LC_*均不指定特定值的话，系统将采用POSIX作为lcoale，也就是C locale.</p>
<img src ="http://www.phpweblog.net/killjin/aggbug/3058.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2008-03-27 03:40 <a href="http://www.phpweblog.net/killjin/archive/2008/03/27/3058.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UNIX常用命令</title><link>http://www.phpweblog.net/killjin/archive/2008/03/04/2881.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Mon, 03 Mar 2008 21:10:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2008/03/04/2881.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2881.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2008/03/04/2881.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2881.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2881.html</trackback:ping><description><![CDATA[UNIX常用命令：
<p>下述命令参考包含94个UNIX最常用的快速总结。<br>apropos<br>用途：apropos查找使用说明的名称。<br>举例：apropos print(等价于man -k prink)。<br>arch<br>用途：arch获得机器体系结构的描述信息。<br>举例：arch。下面是arch输出的结果： sun4<br>将这个命令与uname进行比较。<br>ash<br>用途：ash是外壳，只用于某些系统。<br>举例：ash。这个命令启动ash外壳的一个实例。<br>at<br>用途：at用于确定命令执行的时刻。<br>举例：at 9:00am December 31。<br>awk<br>用途：awk是一种模式扫描和执行语言。<br>举例：awk\'{print $1}\'file.txt。这个命令执行后将打印出file.txt的第一个区域。<br>bash<br>用途：bash是GNU Bourne-Again外壳。<br>举例：bash[options]。这个命令启动bash外壳，它是一个增强的和sh兼容的外壳。bash的提示符为$。<br>biff<br>用途：biff通知你是否收到了邮件。<br>举例：biffy。这个命令叫biff通知你新邮件什么时候到达（注意，要想让biff工作，你必须同时运行 sendmail)。<br>cancel<br>用途：cancel取消挂起的打印作业。<br>举例：cancel23。这个命令取消23号打印作业。<br>cal<br>用途：cal显示无格式文本日历。<br>举例：cal。以下是命令执行后输出的列表： August 1998</p>
<p><br>cat<br>用途：cat将文件连接在一起并显示这些文件中的内容。<br>举例：cat myfile.txt。这个命令执行后显示myfile.txt中的内容。<br>cc<br>用途：cc是用于许多系统的C编译器。<br>举例：cc myfile.c -o myfile。这个命令执行后对myfile.c源文件进行编译并输出一个名为myfile的可执行文件。<br>cd<br>用途：cd用来改变当前目录。<br>举例：cd/usr/bin。这个命令执行后将当前目录更改为/usr/bin。<br>chfn<br>用途：chfn用来改变finger信息。<br>举例：chfn(系统将会提示你进行更改）。<br>chgrp<br>用途：chgrp用来改变文件的组所有权。<br>举例：chgrp users/home/bwagner/*。这个命令执行后是"users"组的每一个人都可以访问我的文件。 （bwagner代表你的用户名）<br>chmod<br>用途：chmod用来改变指定文件的权限。<br>举例：chmod=r myfile.txt。这个命令执行后将myfile.txt的权限更改为只读。<br>chown<br>用途：chown用来改变文件的所有权。<br>举例：chown bwagner myfile.txt。这个命令执行后将myfile.txt的权限授予我。<br>clear<br>用途：clear用来清除屏幕。<br>举例：clear。<br>comm<br>用途：comm逐行比较两个文件。<br>举例：comm myfile.txt yourfile.txt。这个命令执行后将myfile.txt和yourfile.txt两个文件进行比较。<br>compress<br>用途：compress用来压缩文件，在压缩后给文件以.z的扩展名。将这个命令和gzip比较一下。<br>举例：compress myfile.txt。这个命令执行后将myfile.txt进行压缩并给它起一个.z的扩展名。最后得到的文件名是myfile.txt.z。<br>cp<br>用途：cp用来复制文件。<br>举例：cp myfile.txt yourfile.txt。这个命令执行后将myfile.txt的内容复制到一个名叫yourfile.txt的文件中去。<br>csh<br>用途：csh是C外壳。<br>举例：csh。这个命令执行后启动C外壳。当你启动了csh后，可以判断出运行环境已改变了，因为系统提示符已从$变为%。<br>cu<br>用途：cu使用标准的拨出线路呼叫另一个系统。<br>举例：cu 5555555。这个命令执行后使用电话号码5555555呼叫另外一个系统。<br>cut<br>用途：cut用来删除文件中的列或行。<br>举例：cut -c2 myfile.txt。这个命令执行后将删除myfile.txt文件中的第2列（与cut相对的命令是paste）。<br>date<br>用途：date用来得到日期和时间。<br>举例：date。以下是date命令执行后输出的列表：<br>Wed Aug 5 19:10:42 PDT 1998<br>df<br>用途：报告磁盘中可以使用的自由空间。<br>举例：df。以下是该命令执行后输出的列表：<br>diff<br>用途：diff用来比较两个文件并报告这两个文件的不同之处。<br>举例：diff myfile.txt yourfile.txt。这个命令执行后比较myfile.txt和yourfile.txt两个文件。diff将显示这两个文件中所有的不同行。将这个命令和comm和uniq命令进行比较。<br>dir<br>用途：dir用来列出某些平台上的目录内容。<br>举例：dir(dir的功能和ls完全相同，但是它所带的选项更少。dir并不适合于所有的UNIX系统）。<br>du<br>用途：du报告磁盘的使用情况。<br>举例：du。以下是du命令执行后输出的列表。<br>echo<br>用途：echo用来显示指定的文本内容。<br>举例：echo"This is my workstation."。这个命令执行后将在屏幕上打印出下列信息：<br>This is my workstation。<br>ed<br>用途：ed是一个简单的no-frill的文本编辑器。<br>举例：ed。<br>egrep<br>用途：egrep用来查找文件中符合一定要求的模式。当该命令找到指定的模式时，它将会在屏幕上打印出相应的行。<br>举例：egrep"I am bored"myfile.txt。这个命令执行后将查找myfile.txt文件中的I am bored字符串。<br>elm<br>用途：elm是一个流行的邮件客户程序。<br>举例：elm。这个命令将启动elm邮件阅读器。<br>file<br>用途：file用来报告指定文件中的数据类型。<br>举例：file * 。以下是file命令执行后输出的列表：<br>find<br>用途：find用来查找目录中的文件。<br>举例：find.-name*gif。这个命令执行后查找位于我的主目录中或主目录以下带有.gif扩展名的所有文件。以下是find执行后输出的列表：<br>finger<br>用途：finger用来报告用户信息。<br>举例：finger bwagner。这个命令执行后将列出和我有关的当前可用的所有信息。<br>用途：fsck用来检查和修改文件系统。<br>举例：fsck/dev/dsk/cot1d0s0。fsck是一个存在潜在威胁的命令。在使用该命令前应阅读和它有关的使用说明。<br>ftp<br>用途：ftp用来在主机之间传送文件。<br>举例：ftp traderights.pacificnet.net。这个命令执行后将本机连接到traderights.pacificnet.net上。ftp带有非常多的选项和标志。查找该命令的使用说明可获得更进一步的信息。<br>g<br>用途：g++是GNU项目C编译器。<br>举例：g++ myfile.c -o myfile。这个命令执行后将对用C++编写的程序进行编译并输出名叫myfile的可执行文件。<br>gawk<br>用途：gawk是awk的GNU免费版。<br>举例：awk\'{print $1}\'file.txt。这个命令执行后将打印出file.txt文件的第一个区域。<br>gcc<br>用途：gcc是GNU项目C和C++编译器。<br>举例：gcc myfile.c -o myfile。这个命令执行后对myfile.c源文件进行编译并输出名叫myfile的可执行文件。<br>grep<br>用途：grep用来查找符合某种模式的文本行并打印出所有相应的文本行。<br>举例：grep ecoli hamburger.txt。这个命令执行后查找hamburger.txt文件中的单词ecoli。<br>gunzip<br>用途：gunzip用来压缩或解压缩文件（通常是那些带有.gz扩展名的文件）。<br>举例：gunzip myfile.txt.gz。这个命令执行后将解压缩myfile.txt文件。<br>gzip<br>用途：gzip用来压缩或解压缩文件。<br>举例：gzip myfile.txt。这个命令执行时对myfile.txt进行压缩，产生一个名叫myfile.txt.gz的压缩文件。该压缩文件可以使用gzip或gunzip进行解压缩（将这个命令和gunzip进行比较）。<br>halt<br>用途：halt终止系统的运行。<br>举例：halt。<br>head<br>用途：head在默认的情况下输出任何文件的头10行。<br>举例：head myfile.txt。在这个命令执行后将在屏幕上显示myfile.txt的头10行。<br>hostname<br>用途：hostname用来打印出机器的主机名。<br>举例：hostname。<br>ispell<br>用途：ispell是一个在Linux上使用的交互式拼写检查程序。<br>举例：ispell myfile.txt。这个命令将启动ispell环境并检查myfile.txt文件是否存在拼写错误。<br>kill<br>用途：kill用来终止某个进程。<br>举例：kill 529。这个命令执行后将终止第529号进程。<br>ksh<br>用途：ksh是Korn外壳。<br>举例：ksh。这个命令将启动Korn外壳。<br>last<br>用途：last用来报告某个用户已登录的日期和时间。<br>举例：last bwagner|head -3。这个命令执行后将输出我最近的三次登录时间。ln<br>用途：ln用来在文件之间建立链接。<br>举例：ln myfile.txt another-file.txt。这个命令执行后将在myfile.txt中建立和another-file.txt之间的链接。一旦存在这种链接，对其中某个文件的修改都会导致对另外一个文件的修改。<br>lp<br>用途：lp用来将文件发送到打印机。<br>举例：lp myfile.txt。这个命令执行后将myfile.txt发送到打印机。<br>lpr<br>用途：lpr用来将作业发送到打印机（lpr是lp的Berkeley等价命令）。<br>举例：lpr myfile.txt。这个命令执行后将myfile.txt发送到打印机。<br>lprm<br>用途：lprm用来从打印机队列中删除作业。<br>举例：lprm 23。这个命令执行后将从打印机列表中删除第23号作业。<br>lpstat<br>用途：lpstat用来报告挂起的打印作业状态。<br>举例：lpstat。<br>ls<br>用途：ls用来列出目录内容。<br>举例：ls/home/bwagner。这个命令执行后将列出/home/bwagner目录中的内容。ls的典型命令行开关包括 -a(列出所有文件，包括隐藏文件）和-l(用长格式列出所有目录内容）。<br>mail<br>用途：mail允许用户发送和接收邮件。<br>举例：cat myfile.txt|mail bwagner。这个命令执行后将myfile.txt中的内容邮寄给我（也可以交互式使用mail,只要发送mail命令就行了)。<br>man<br>用途：man是UNIX参考手册的接口。这些手册通常称为使用说明(man pages)。<br>举例：man mail。这个命令执行后将启动mail使用说明。<br>mkdir<br>用途：mkdir用来创建指定的目录。<br>举例：mkdir bozo-mail。这个命令执行后将创建一个名叫bozo-mail的目录。<br>more<br>用途：more用来在屏幕上一次显示一屏文件的内容。<br>举例：more myfile.txt。这个命令执行后将显示myfile.txt中的内容，一次显示一屏。这样使得阅读内容超过40行的文件很轻松。<br>mount<br>用途：mount安装和卸载文件系统。<br>举例：mount/dev/fd0/mnt/floppy。这个命令执行后将第一个软盘驱动器安装在/mnt/floop目录中。<br>mv<br>用途：mv用来移动文件。<br>举例：mv myfile.txt/usr。这个命令执行后将myfile.txt移动到目录/usr。<br>nroff<br>用途：nroff将文本文件格式化为行式打印机或终端屏幕所需要的形式。<br>举例：nroff myfile.txt。这个命令执行后将产生一个清楚的、格式优美的输出结果。<br>passwd<br>用途：passwd用来更改用户密码。<br>举例：passwd(系统会提示用户进行更改）。<br>paste<br>用途：paste用来合并文件行或输出。<br>举例：who|awk\'{print $1}\'|paste--。这个命令执行后获得当前用户ID并将它们按行列格式打印。两个-符号指定列的形式。<br>perl<br>用途：perl(Practical Extraction and Report Language，实际抽取和报告语言）是一种功能强大的文本扫描语言。<br>举例：perl-e\'print"Hello Word\\n";\'。这个命令执行后将显示如下信息：<br>Hello Word<br>perl能用于编写复杂的程序。但是，这些程序一般不能在命令行键入。相反，它们存储在perl脚本文件中（包含许多perl命令的文本文件）。<br>pico<br>用途：pico是一个免费的文本编辑器，在某些UNIX版本中可以得到（特别是Linux)。<br>举例：pico myfile.txt。这个命令启动pico来编辑myfile.txt。<br>pine<br>用途：pine是一个可以免费获得的电子邮件和USENET软件包（许多UNIX系统也包括它，但是Pine最常见于Linux系统中）。<br>举例：pine。这个命令启动pine电子邮件阅读器。<br>ping<br>用途：ping用来检查其他主机是否运行并且状态良好。<br>举例：ping 207.171.0.111。以下是Sparc上的ping执行后输出的列表：<br>207.171.0.111 is alive<br>对于其他系统，ping执行后输出的情况会不一样。 printenv<br>用途：printenv用来打印当前的所有环境变量。<br>举例：printenv。以下是printenv命令执行后输出的列表：<br>ps<br>用途：ps用来报告当前进程的状态。<br>举例：ps-a。这个命令执行后将打印出当前所有的进程。以下是输出的列表：<br>用途：pwd用来显示当前的目录名。<br>举例：pwd。这个命令执行后将打印出当前目录名。<br>rcp<br>用途：rcp用来从远程主机中复制文件。<br>举例：rcp tigger:/home/poo/files.txt files.poo.txt。这个命令执行后将从主机"tigger"中复制文件file.txt并在本机中给该文件改名为files.poo.txt。<br>rlogin<br>用途：rlogin代表remote login(远程登录）。rlogin用来在与用户ID信息一致的网络上进行自动登录。<br>举例：rlogin tigger。这个命令启动本机和"tigger"主机之间的一次远程对话。<br>rm<br>用途：rm用来删除指定空目录。<br>举例：rm myfile.txt。这个命令执行后将删除myfile.txt。<br>rmdir<br>用途：rmdir用来删除空目录。<br>举例：rmdir/mydirectory。这个命令执行后将删除/mydirectory。<br>sh<br>用途：sh是UNIX外壳。<br>举例：sh。这个命令将启动UNIX外壳。<br>sort<br>用途：sort将文本文件逐行分类。<br>举例：sort myfile.txt。这个命令将myfile.txt中的内容分类。<br>stty<br>用途：stty显示或更改终端设置。<br>举例：stty[options]。stty带有100万个选项。<br>tail<br>用途：tail在默认情况下显示指定文件的最后10行。<br>举例：tail myfile.txt。这个命令执行后，屏幕上将显示myfile.txt的最后10行。你也可以指定显示的行数，比如tail-50 myfile.txt执行后，将会在屏幕上打印出文本的最后50行。<br>talk<br>用途：talk允许你和另一个用户进行聊天。<br>举例：talk bwagner。这个命令邀请我进行聊天。<br>telnet<br>用途：telnet允许你和其他主机进行远程会话。<br>举例：telnet 202.194.14.236。这个命令将启动本机连接到202.194.14.236。<br>traceroute<br>用途：traceroute跟踪分组从节点A（你的机器）传送节点B（某个远程主机）所经过的路径。这个命令通常用来确定网络中是否存在故障。<br>举例：traceroute mcp.com。以下是traceroute执行后输出的列表：<br>用途：tty显示当前终端名。<br>uname<br>用途：uname用来获得系统信息，包括体系结构、操作系统和处理器类型。<br>举例：uname-a。以下是uname执行后输出的实例：<br>SunOS wagjag 5.6 generic sun4u sparc SUNW,Ultra-1<br>uniq<br>用途：uniq查找指定文件中的重复行并将它们删除。<br>举例：uniq myfile.txt。<br>uptime<br>用途：uptime报告系统到现在为止运行了多长时间。<br>举例：uptime。以下是该命令执行后输出的实例：<br>9:31pm up 4 day(s),20:36,14 users,load average:0.00,0.01,0.02<br>vi<br>用途：vi是文本编辑器。<br>举例：vi myfile.txt。这个命令启动vi来编辑myfile.txt。<br>wall<br>用途：wall向所有的终端发送指定消息。<br>举例：wall work sucks!!。这个命令执行后将在所有终端上打印出以下消息：<br>work sucks!!<br>wc<br>用途：wc计算并显示指定文件中的字节数、字数和行数。<br>举例：wc myfile.txt。这个命令执行后显示myfile.txt的统计信息。<br>whatis<br>用途：whatis显示关于指定命令的简要描述。<br>举例：whatis whatis。这个命令执行后显示whatis的使用说明描述信息。以下是输出的列表：<br>whatis(1) -display manual page descriptions<br>Whereis<br>用途：whereis用于确定文件的位置。<br>举例：whereis traceroute。这个命令执行后查找traceroute文件。<br>who<br>用途：who显示目前已登录用户的统计信息。<br>whoami<br>用途：whoami显示你的当前用户ID。</p>
<img src ="http://www.phpweblog.net/killjin/aggbug/2881.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2008-03-04 05:10 <a href="http://www.phpweblog.net/killjin/archive/2008/03/04/2881.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于yum连接repository时间过长的解决方法～</title><link>http://www.phpweblog.net/killjin/archive/2008/03/01/2858.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Sat, 01 Mar 2008 04:36:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2008/03/01/2858.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2858.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2008/03/01/2858.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2858.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2858.html</trackback:ping><description><![CDATA[修改yum.repos.d文件夹下的repo文件，＃掉mirrorlist即可～<br>这样主要是不让其自动进行镜像搜索，加快索引速度～ <br><br><br>yum clean all 备用
<img src ="http://www.phpweblog.net/killjin/aggbug/2858.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2008-03-01 12:36 <a href="http://www.phpweblog.net/killjin/archive/2008/03/01/2858.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>fstab格式</title><link>http://www.phpweblog.net/killjin/archive/2008/02/22/2820.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Fri, 22 Feb 2008 13:58:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2008/02/22/2820.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2820.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2008/02/22/2820.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2820.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2820.html</trackback:ping><description><![CDATA[<p>linux /etc/fstab的内容主要包括六项：</p>
<p>例如下面两行：<br>LABEL=/&nbsp;&nbsp;&nbsp; /&nbsp;&nbsp;&nbsp; ext3&nbsp;&nbsp;&nbsp; defaults&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 1<br>/dev/sda2&nbsp;&nbsp;&nbsp; /mnt/D/&nbsp;&nbsp;&nbsp; vfat&nbsp;&nbsp;&nbsp; defaults&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 0</p>
<p><br>第一列：设备名或者设备卷标名 (/dev/sda10 或者 LABEL=/)<br>第二列: 设备挂载目录 (例如上面的 "/" 或者 "/mnt/D/")<br>第三列: 设备文件系统 (例如上面的 "ext3" 或者 "vfat")<br>第四列：挂载参数 (看帮助 man 8 mount)<br>对于已经挂载好的设备，例如上面的/dev/sda2，现在要改变挂载参数，这时可以不用卸载该设备，<br>而可以使用下面的命令（没有挂载的设备，remount 这个参数无效）<br>&nbsp;&nbsp;&nbsp; #mount /mnt/D/ -o remount,ro&nbsp; （改defaults为ro）<br>&nbsp;&nbsp;&nbsp; 为了安全起见，可以指明其他挂载参数，例如：<br>&nbsp;&nbsp;&nbsp; noexec (不允许可执行文件可执行，但千万不要把根分区挂为noexec，那就无法使用系统了，连mount 命令都无法使用了，这时只有重新做系统了！)<br>&nbsp;&nbsp;&nbsp; nodev (不允许挂载设备文件)<br>&nbsp;&nbsp;&nbsp; nosuid,nosgid(不允许有 suid 和 sgid 属性)<br>&nbsp;&nbsp;&nbsp; nouser(不允许普通用户挂载)<br>第五列：指明是否要备份 (0 为不备份，1 为要备份, 一般根分区要备份)<br>第六列：指明自检顺序 (0 为不自检，1 或者 2 为要自检, 如果是根分区要设为1，其他分区只能是2)</p>
<p>我的 Red Hat Enterprise Linux AS 4 /etc/fstab 举例：<br>-------------------------- file begin ------------------------------------------------------<br># This file is edited by fstab-sync - see 'man fstab-sync' for details<br>/dev/hda1&nbsp;&nbsp; /boot&nbsp;&nbsp; ext3&nbsp;&nbsp;&nbsp; defaults 1&nbsp; 2<br>/dev/hda2&nbsp;&nbsp; /data&nbsp;&nbsp; ext3&nbsp;&nbsp;&nbsp; defaults 1&nbsp; 2<br>/dev/hda3&nbsp;&nbsp; /&nbsp;&nbsp; ext3&nbsp;&nbsp;&nbsp; defaults&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp; 1<br>/dev/hda5&nbsp;&nbsp; /oracle ext3&nbsp;&nbsp;&nbsp; defaults&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp; 2<br>/dev/hda6&nbsp;&nbsp; /home&nbsp;&nbsp; ext3&nbsp;&nbsp;&nbsp; defaults&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp; 2<br>/dev/hda7&nbsp;&nbsp; swap&nbsp;&nbsp;&nbsp; swap&nbsp;&nbsp;&nbsp; defaults&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp; 0<br>none&nbsp;&nbsp;&nbsp; /dev/pts&nbsp;&nbsp;&nbsp; devpts&nbsp; gid=5,mode=620&nbsp; 0&nbsp;&nbsp; 0<br>none&nbsp;&nbsp;&nbsp; /dev/shm&nbsp;&nbsp;&nbsp; tmpfs&nbsp;&nbsp; defaults&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp; 0<br>none&nbsp;&nbsp;&nbsp; /proc&nbsp;&nbsp; proc&nbsp;&nbsp;&nbsp; defaults&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp; 0<br>/dev/hdc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /media/cdrom1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; auto&nbsp;&nbsp;&nbsp; pamconsole,exec,noauto,managed 0 0<br>-------------------------- file&nbsp;&nbsp; end -------------------------------------------------------</p>
<img src ="http://www.phpweblog.net/killjin/aggbug/2820.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2008-02-22 21:58 <a href="http://www.phpweblog.net/killjin/archive/2008/02/22/2820.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux cp命令</title><link>http://www.phpweblog.net/killjin/archive/2008/01/26/2731.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Fri, 25 Jan 2008 18:08:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2008/01/26/2731.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2731.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2008/01/26/2731.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2731.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2731.html</trackback:ping><description><![CDATA[<p>cp命令 <br>该命令的功能是将给出的文件或目录拷贝到另一文件或目录中，同MSDOS下的copy命令一样，功能十分强大。 </p>
<p>语法： cp [选项] 源文件或目录 目标文件或目录 </p>
<p>说明：该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。</p>
<p>该命令的各选项含义如下：</p>
<p>- a 该选项通常在拷贝目录时使用。它保留链接、文件属性，并递归地拷贝目录，其作用等于dpR选项的组合。</p>
<p>- d 拷贝时保留链接。</p>
<p>- f 删除已经存在的目标文件而不提示。</p>
<p>- i 和f选项相反，在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖，是交互式拷贝。 </p>
<p>- p 此时cp除复制源文件的内容外，还将把其修改时间和访问权限也复制到新文件中。 </p>
<p>- r 若给出的源文件是一目录文件，此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。</p>
<p>- l 不作拷贝，只是链接文件。 </p>
<p>　　需要说明的是，为防止用户在不经意的情况下用cp命令破坏另一个文件，如用户指定的目标文件名已存在，用cp命令拷贝文件后，这个文件就会被新源文件覆盖，因此，建议用户在使用cp命令拷贝文件时，最好使用i选项。</p>
<p>mv命令</p>
<p>用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同MSDOS下的ren和move的组合。</p>
<p>语法：mv [选项] 源文件或目录 目标文件或目录 </p>
<p>说明：视mv命令中第二个参数类型的不同（是目标文件还是目标目录），mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时，mv命令完成文件重命名，此时，源文件只能有一个（也可以是源目录名），它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时，源文件或目录参数可以有多个，mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时，mv先拷贝，再将原有文件删除，而链至该文件的链接也将丢失。</p>
<p>命令中各选项的含义为：</p>
<p>- I 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖，此时系统询问是否重写，要求用户回答y或n，这样可以避免误覆盖文件。</p>
<p>- f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示，指定此选项后，i选项将不再起作用。</p>
<p>如果所给目标文件（不是目录）已存在，此时该文件的内容将被新文件覆盖。为防止用户用mv命令破坏另一个文件，使用mv命令移动文件时，最好使用i选项。 </p>
<img src ="http://www.phpweblog.net/killjin/aggbug/2731.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2008-01-26 02:08 <a href="http://www.phpweblog.net/killjin/archive/2008/01/26/2731.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>给 Yum 加速</title><link>http://www.phpweblog.net/killjin/archive/2007/12/31/2627.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Mon, 31 Dec 2007 15:57:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/12/31/2627.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2627.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/12/31/2627.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2627.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2627.html</trackback:ping><description><![CDATA[<p>两个途径可以加速yum的速度，大家可根据情况自己组合使用。<br><br>1.使用http-proxy ,&nbsp; 设置方法不说了，就是修改/etc/yum.conf,或者直接在/etc/profile添加以下语句<br>http_proxy="http://user:password@server ip:3128"<br>export http_proxy<br><br>记得保存后 source该配置文件，使配置生效。<br><br>2。使用yum的扩展插件yum-fastestmirror，个人认为这个插件非常有效，速度真的是明显提高，安装只要<br>yum -y install yum-fastestmirror&nbsp;&nbsp; 就行。<br><br>希望通过以上方法，能解除yum的漫长等待过程。</p>
<img src ="http://www.phpweblog.net/killjin/aggbug/2627.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-12-31 23:57 <a href="http://www.phpweblog.net/killjin/archive/2007/12/31/2627.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux 默认语言的修改 /etc/sysconfig/i18n 中 LANG 等环境变量</title><link>http://www.phpweblog.net/killjin/archive/2007/12/22/2584.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Sat, 22 Dec 2007 07:43:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/12/22/2584.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2584.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/12/22/2584.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2584.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2584.html</trackback:ping><description><![CDATA[linux 默认语言的修改 /etc/sysconfig/i18n 中 LANG 等环境变量<br><br>主要还是中文问题<br>如果都用 UTF-8 一切都好办了<br>可是历史问题遗留下来 没有那么完美<br><br>LANG="en_US"<br>LANGUAGE="en_US"<br>SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"<br>SYSFONT="lat0-sun16"<br>SYSFONTACM="8859-15"<br>
<img src ="http://www.phpweblog.net/killjin/aggbug/2584.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-12-22 15:43 <a href="http://www.phpweblog.net/killjin/archive/2007/12/22/2584.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自由软件技巧共享Linux运用精选</title><link>http://www.phpweblog.net/killjin/archive/2007/12/21/2578.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Fri, 21 Dec 2007 08:02:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/12/21/2578.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2578.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/12/21/2578.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2578.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2578.html</trackback:ping><description><![CDATA[　　随着Linux的不断完善，可以肯定Linux的运用范围将越来越广，使用这一软件的用户也将越来越多，希望本文能成为引玉之石，能够让更多的读者来探讨Linux的运用技巧。<br><br>　　<strong>查看启动</strong><br><br>　　Log信息首先去查看/Etc/Syslog.conf文件，找到对应的文件(更详细的信息去看&#8220;Man Syslogd&#8221;&#8220;Man Syslog.conf&#8221; 以及&#8220;Man klogd&#8221;)。通常在SlackWare下为/Var/Adm/Messages中，在Redhat下为/Var/Log/Messages。 这些文件可能会很大，要注意备份和删除。<br><br>　　命令自动填充<br><br>　　1、只需输入文件或目录名的前几个字符, 然后按Tab键,如无相同的,完整的文件名立即自动在命令行出现;如有相同的,再按一下Tab键,系统会列出当前目录下所有以这几个字符开头的名字.例如<br><br>　　Cd /Mnt/Cd 自动填充为 Cd /Mnt/Cdrom<br><br>　　2、在命令行下,只需输入例如&#8220;m&#8221;,再连续按两次Tab键,系统将列出所有以&#8220;m&#8221;开头的命令,(包括自定义的Bshell命令函数),对查找某些记不清楚的命令特别有用，例如输入&#8220;Ftp&#8221;,将查到Ftp,Ftpcount,Ftpwho,Ftpshut等本不熟悉的命令。<br><br>　　<strong>使用Nohup命令</strong><br><br>　　如果希望你的进程在退出系统后还能执行，可以使用Nohup命令如：<br><br>　　% Nohup tar -cf /dev/tape /home &amp;<br><br>　　你Logout退出后再重新登录的话，使用&#8216;Ps'命令可以看到进程还在执行。<br><br>　　注意，要想把命令真正放到后台运行，Nohup必须与&amp;操作同时使用；有些软件自己能处理Sighup信号，如Wget，则对它们无须用Nohup。<br><br>　　如果你愿开动脑筋的话，还可以用Nohup来实现PPP回拨：先拨号上去，然后以Nohup执行一个自制的脚本，如&#8220;Sleep 60; ppp-start-script&#8221;等等。最后Logout退出并挂断电话等着就是。<br><br>　　<strong>让程序在后台执行</strong><br><br>　　有些程序工作起来挺费时间，在它后面加 个&amp;符号看看，例如&#8220;Updatedb &amp;&#8221;，&#8220;Netscape &amp;&#8221;等等。这样这个Shell会释放出来干别的工作。注意这样出来的程序父进程仍然是这个Shell,若你退出这个Shell,这些程序也会被中止掉。建议退出Shell之前用Jobs命令查看后台作业。<br><br>　　<strong>让Linux账号搬家</strong><br><br>　　有时需要让Linux账号搬家，其方法如下：<br><br>　　1、保证将要加入系统的新账号放在新的位置上，这通过修改/Etc/Default/Useradd文件中的HOME 值来实现。<br><br>　　如：HOME=/Home2 使新增账号的主目录建在/Home2下。<br><br>　　2、将已有账号移至新的位置，可按如下步骤实施：<br><br>　　首先，将已有账号的主目录连带目录属性拷贝至新位置，可用下面命令：<br><br>　　Cp -a /Home /Home2 或 Cp -rpd /Home /Home2<br><br>　　然后，修改/Etc/Passwd文件中相应记录的Home_directory域为/Home2/Username。<br><br>　　通过这两步就可以将旧账号移至新位置。确保无误后，可删去旧账号的旧主目录，以腾出原文件系统的空间。<br><br>　　<strong>压缩文件</strong><br><br>　　用Compress。对于那些确实需要却并不经常使用的文件，可以把它们进行压缩，从而省出&#8220;成吨&#8221;的磁盘空间来。当要使用它们时，可以用Uncompress选项。<br><br>　　压缩后的文件名以.z结尾，占用更少的空间，但这也和文件类型有关。例如，TIFF图像文件只能压缩到原文的5%，而每日的数据库输出能压缩到原始大小的25%。<br><br>　　要压缩一个或多个文件，用Compress Filenames。要解压一个文件，用Uncompress Filenames或Compress -d Filenames,两者结果完全一样。<br>
<img src ="http://www.phpweblog.net/killjin/aggbug/2578.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-12-21 16:02 <a href="http://www.phpweblog.net/killjin/archive/2007/12/21/2578.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux操作系统的各种命令行下载工具介绍</title><link>http://www.phpweblog.net/killjin/archive/2007/12/21/2577.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Fri, 21 Dec 2007 06:51:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/12/21/2577.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2577.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/12/21/2577.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2577.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2577.html</trackback:ping><description><![CDATA[　　<strong>命令行下载工具</strong>
<p><font zize="1"><font color=#000000>　　对于喜欢命令行操作及追求高效率、高速度下载的朋友，推荐使用命令行下载工具。命令行工具不但使用方便，而且大多具有很高的下载速度及下载效率，尤其适合于大批量下载文件。下面就为大家详细介绍一下这些工具。 </font></font></p>
<p><font zize="1"><font color=#000000><span style="COLOR: rgb(0,1,255)">　　</span><strong>Wget</strong></font></font></p>
<p><font zize="1"><font color=#000000>　　Wget是一个十分常用命令行下载工具，多数Linux发行版本都默认包含这个工具。如果没有安装可在http://www.gnu.org/software/wget/wget.html下载最新版本，并使用如下命令编译安装：&nbsp;</font></font></p>
<span id=post1></span>
<table style="BORDER-RIGHT: rgb(153,153,153) 1px solid; BORDER-TOP: rgb(153,153,153) 1px solid; FONT-SIZE: 12px; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 80%; BORDER-BOTTOM: rgb(153,153,153) 1px solid" align=center>
    <tbody>
        <tr>
            <td><font color=#000000 size=3>#tar zxvf wget-1.9.1.tar.gz &nbsp;&nbsp; <br>#cd wget-1.9.1 #./configure &nbsp;&nbsp; <br>#make #make install </font></td>
        </tr>
    </tbody>
</table>
<p><span><font color=#000000 zize="1">　　它的用法很简单，Wget使用格式如下： #wget [选项] [下载地址] 1.Wget常用参数 </font></span></p>
<p><span></span><span><font color=#000000 zize="1">　　◆-b：后台下载，Wget默认的是把文件下载到当前目录。 </font></span></p>
<p><span><font color=#000000 zize="1">　　◆-O：将文件下载到指定的目录中。 </font></span></p>
<p><span><font color=#000000 zize="1">　　◆-P：保存文件之前先创建指定名称的目录。 </font></span></p>
<p><span><font color=#000000 zize="1">　　◆-t：尝试连接次数，当Wget无法与服务器建立连接时，尝试连接多少次。 </font></span></p>
<p><span><font color=#000000 zize="1">　　◆-c：断点续传，如果下载中断，那么连接恢复时会从上次断点开始下载。 &nbsp; &nbsp; 除了上述常用功能，Wget还支持HTTP和FTP代理功能，编辑其配置文件&#8220;/etc/wgetrc&#8221;即可。具体方法是使用VI编辑器打开上述文件，将 &#8220;http_proxy&#8221;和&#8220;ftp_proxoy&#8221;前的#去掉，然后在这两项后输入相应的代理服务器的地址，保存退出即可。此外，Wget还可下载整个网站，如下载http://man.chinaunix.net整个Man手册中心。只需输入如下命令即可： #wget -r -p -np -k http://man.chinaunix.net 其中-r参数是指使用递归下载，-p是指下载所有显示完整网页所以需要的文件，如图片等，-np是指不搜索上层目录，-k则是指将绝对链接转换为相对链接。</font></span></p>
<p><span>　　</span><span><font color=#000000 zize="1"><strong>Prozilla</strong></font></span></p>
<p><span><font color=#000000 zize="1"><span><font color=#000000 zize="1">　　Prozilla</font></span>也是一个十分流行的命令行下载工具，支持多线程下载和断点续传功能。可到http://prozilla.genesys.ro/下载最新的1.3.7.4安装包，下载安装包后使用如下命令进行安装：&nbsp;</font></span></p>
<table style="BORDER-RIGHT: rgb(153,153,153) 1px solid; BORDER-TOP: rgb(153,153,153) 1px solid; FONT-SIZE: 12px; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 80%; BORDER-BOTTOM: rgb(153,153,153) 1px solid" align=center>
    <tbody>
        <tr>
            <td><font color=#000000 size=3>#tar zxvf prozilla-1.3.7.4.tar.gz &nbsp;&nbsp;&nbsp; <br>#cd prozilla-1.3.7.4 &nbsp;&nbsp;&nbsp; <br>#./configure #make &nbsp;&nbsp;&nbsp; <br>#make install </font></td>
        </tr>
    </tbody>
</table>
<p><span><font color=#000000 zize="1">　　Prozilla命令格式如下： #proz [参数] [下载地址] 常用的选项有： </font></span></p>
<p><span><font color=#000000 zize="1">　　◆-k=n ：设置n个线程下载。不加此参数指定线程数，Prozilla默认为4线程下载。 </font></span></p>
<p><span><font color=#000000 zize="1">　　◆-P, --directory-prefix=DIR：指定将下载的文件保存在DIR/目录。 </font></span></p>
<p><span><font color=#000000 zize="1">　　◆-r, --resume：继续下载未完成的文件。如果要指定线程数下载可用如下命令： #proz -k=5 http://64.12.204.21/pub/mozilla.org/firefox/releases/1.0/linux-i686/zh-CN/firefox-1.0.installer.tar.gz 这样便以5线程进行文件的下载，并将文件保存到当前目录。和Wget一样，Prozilla也提供了续传功能，下载中断后，重新输入上述命令，就会出现提示续传，按R键就可继续下载了。</font></span></p>
<p><span><font color=#000000 zize="1">　　<strong>MyGet</strong></font></span></p>
<p><span><font color=#000000 zize="1">　　MyGet目标设计成一个可扩展的，拥有丰富界面的多线程下载工具，它支持HTTP、FTP、HTTPS、MMS、RTSP等协议。在<a href="http://myget.sourceforge.net/release/myget-0.1.0.tar.bz2">http://myget.sourceforge.net/release/myget-0.1.0.tar.bz2</a>下载其最新版本0.1.0，下载后使用如下命令安装：</font></span><span id=post1></span></p>
<table style="BORDER-RIGHT: rgb(153,153,153) 1px solid; BORDER-TOP: rgb(153,153,153) 1px solid; FONT-SIZE: 12px; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 80%; BORDER-BOTTOM: rgb(153,153,153) 1px solid" align=center>
    <tbody>
        <tr>
            <td><font color=#000000 size=3>#tar jxvf myget-0.1.0.tar.bz2 &nbsp;&nbsp;&nbsp; <br>#cd myget-0.1.0 #./configure &nbsp;&nbsp;&nbsp; <br>#make &nbsp;&nbsp;&nbsp; <br>#make install </font></td>
        </tr>
    </tbody>
</table>
<p><span><font color=#000000 zize="1">　　MyGet命令格式如下： #mytget [选项] [下载地址] 常用的选项： </font></span></p>
<p><span><font color=#000000 zize="1">　　◆-d [目录]：指定下载到的文件在本地存放的位置，默认当前目录。 </font></span></p>
<p><span><font color=#000000 zize="1">　　◆-f [文件]：指定下载文件名称。 </font></span></p>
<p><span><font color=#000000 zize="1">　　◆-h：帮助选项。 </font></span></p>
<p><span><font color=#000000 zize="1">　　◆-n [线程数]：下载线程数量，默认为4个。 </font></span></p>
<p><span><font color=#000000 zize="1">　　◆-x [代理服务器地址]：设置代理服务器地址，如&#8220;-x http://user:password@host:port&#8221;。 MyGet常用的形式如下： #mytget －d /root/ -n 10 <a href="http://lumaqq.linuxsir.org/download/patch/lumaqq_2004t_patch_2005.07.21.00.00.zip">http://lumaqq.linuxsir.org/download/patch/lumaqq_2004t_patch_2005.07.21.00.00.zip</a>&nbsp;</font></span></p>
<p><span><font color=#000000 zize="1">　　<strong>Linuxdown</strong></font></span></p>
<p><span><font color=#000000 zize="1">　　Linuxdown是一个命令行多线程下载工具，最多可支持30线程的下载。在<a href="https://gro.clinux.org/frs/download.php/1015/linuxdown-1.0.0.tar.gz">https://gro.clinux.org/frs/download.php/1015/linuxdown-1.0.0.tar.gz</a>下载最新的1.1.0版本。然后使用如下命令进行编译安装：&nbsp;</font></span><span id=post1></span></p>
<table style="BORDER-RIGHT: rgb(153,153,153) 1px solid; BORDER-TOP: rgb(153,153,153) 1px solid; FONT-SIZE: 12px; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 80%; BORDER-BOTTOM: rgb(153,153,153) 1px solid" align=center>
    <tbody>
        <tr>
            <td><font color=#000000 size=3>#tar zxvf linuxdown-1.1.0.tar.gz &nbsp;&nbsp;&nbsp; <br>#cd dandelion/ &nbsp;&nbsp;&nbsp; <br>#make &nbsp;&nbsp;&nbsp; <br>#make install </font></td>
        </tr>
    </tbody>
</table>
<p><span><font color=#000000 zize="1">　　Linuxdown格式为： #linuxdown [下载地址] [选项] [线程数] &nbsp; &nbsp; 需要注意的是下载地址和选项都需要西文引号括起来，线程数不可超过30个。一个典型的下载如下： #linuxdown "http://lumaqq.linuxsir.org/download/patch/lumaqq_2004t_patch_2005.07.21.00.00.zip" 30 </font></span></p>
<p><span><font color=#000000 zize="1">　　<strong>Curl</strong></font></span></p>
<p><span><font color=#000000 zize="1">　　Curl也是Linux下不错的命令行下载工具，小巧、高速，唯一的缺点是不支持多线程下载。在<a href="http://curl.haxx.se/download/curl-7.14.0.tar.gz">http://curl.haxx.se/download/curl-7.14.0.tar.gz</a>下载最新版本。下载后便可使用如下命令编译安装： &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>　　　</font></span><span id=post1><font zize="1"><br></font></span></p>
<table style="BORDER-RIGHT: rgb(153,153,153) 1px solid; BORDER-TOP: rgb(153,153,153) 1px solid; FONT-SIZE: 12px; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 80%; BORDER-BOTTOM: rgb(153,153,153) 1px solid" align=center>
    <tbody>
        <tr>
            <td><font color=#000000 size=3>#tar zxvf curl-7.14.0.tar.gz &nbsp;&nbsp;&nbsp; <br>#cd curl-7.14.0/ &nbsp;&nbsp;&nbsp; <br>#./configure &nbsp;&nbsp;&nbsp; <br>#make &nbsp;&nbsp;&nbsp; <br>#make test &nbsp;&nbsp;&nbsp; <br>#make install </font></td>
        </tr>
    </tbody>
</table>
<p><span><font color=#000000 zize="1">　　Curl使用格式如下： #curl [选项][下载地址] Curl典型下载如下： #curl -O http://10.1.27.10/~kennycx/tools/lumaqq_2004-linux_gtk2_x86_with_jre.tar.gz &nbsp; &nbsp; 使用Curl下载一个文件并保存到当前目录。此外，Curl虽然不支持多线程下载，但它可同时下载多个文件或下载文件的某一部分，可使用如下命令实现： #curl -r 0-199 http://www.netscape.com/ 获得文件的前200 bytes。 &nbsp; &nbsp; 对于常用的代理下载Curl也可轻松实现，具体操作如下： #curl -x 10.1.27.10:1022 ftp://ftp.funet.fi/README 使用代理地址为10.1.27.10端口为1022的代理服务器下载一个文件。 #curl -U user:passwd -x 10.1.27.10:1022 ftp://ftp.funet.fi/README 如果代理服务器需要特别的验证，则需要在user:passwd处输入合法的帐号和密码。</font></span></p>
<p><span><font color=#000000 zize="1">　　<strong>Axel</strong></font></span></p>
<p><span><font color=#000000 zize="1">　　Axel是命令行下的多线程下载工具，支持断点续传，速度通常情况下是Wget的几倍。可在<a href="http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&amp;op=mydown&amp;did=1697">http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&amp;op=mydown&amp;did=1697</a>下载。下载后使用如下命令编译安装：&nbsp;</font></span></p>
<table style="BORDER-RIGHT: rgb(153,153,153) 1px solid; BORDER-TOP: rgb(153,153,153) 1px solid; FONT-SIZE: 12px; BORDER-LEFT: rgb(153,153,153) 1px solid; WIDTH: 80%; BORDER-BOTTOM: rgb(153,153,153) 1px solid" align=center>
    <tbody>
        <tr>
            <td><font color=#000000 size=3>#tar zxvf axel-1.0a.tar.gz &nbsp;&nbsp;&nbsp; <br>#cd axel-1.0a/ &nbsp;&nbsp;&nbsp; <br>#./configure &nbsp;&nbsp;&nbsp; <br>#make &nbsp;&nbsp;&nbsp; <br>#make install </font></td>
        </tr>
    </tbody>
</table>
<p><span><font color=#000000 zize="1">　　基本的用法如下： #axel [选项] [下载目录] [下载地址] 一个典型下载如下： #alex -n 10 -o /home/kennycx/ http://10.1.27.10/~kennycx/tools/lumaqq_2004-linux_gtk2_x86_with_jre.tar.gz 用10线程将指定路径的文件下载到/home/kennycx/这个目录下。 &nbsp; &nbsp; 本文详细介绍了Linux中常用的下载工具，这些下载工具功能上各有千秋，使用上都比较简单，所以无论是初学者还是Linux高手总有一款适合你。</font></span></p>
<img src ="http://www.phpweblog.net/killjin/aggbug/2577.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-12-21 14:51 <a href="http://www.phpweblog.net/killjin/archive/2007/12/21/2577.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux时区、时间的更改 </title><link>http://www.phpweblog.net/killjin/archive/2007/12/21/2575.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Thu, 20 Dec 2007 17:36:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/12/21/2575.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2575.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/12/21/2575.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2575.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2575.html</trackback:ping><description><![CDATA[&nbsp;&nbsp; Linux 时钟分为系统时钟（System Clock）和硬件（Real Time Clock ，简称RTC ）时钟。系统时钟是指当前Linux Kernel中的时钟，而硬件时钟则是主板上由电池供电的时钟，这个硬件时钟可以在BIOS中进行设置。当Linux 启动时，硬件时钟会去设置系统时钟，然后系统时钟就会独立于硬件运作。<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; Linux中的所有命令（包括函数）都是采用的系统时钟设置。在Linux中，用于时钟查看和设置的命令主要有date、hwclock和clock。其中，clock和hwclock用法相近，只用一个就行，只不过clock命令除了支持x86硬件体系外，还支持Alpha硬件体系。<br>　　<br>&nbsp;&nbsp;&nbsp; 1、date<br>　　<br>&nbsp;&nbsp;&nbsp; 查看系统时间<br>　　<br>&nbsp;&nbsp;&nbsp; # date<br>　　<br>&nbsp;&nbsp;&nbsp; 设置系统时间<br>　　<br>&nbsp;&nbsp;&nbsp; # date --set &#8220;07/07/06 10:19" （月/日/年时:分:秒）<br>　　<br>&nbsp;&nbsp;&nbsp; 2、hwclock/clock<br>　　<br>&nbsp;&nbsp;&nbsp; 查看硬件时间<br>　　<br>&nbsp;&nbsp;&nbsp; # hwclock --show<br>　　<br>&nbsp;&nbsp;&nbsp; 或者# clock --show<br>　　<br>　　设置硬件时间<br>　　<br>&nbsp;&nbsp;&nbsp; # hwclock --set --date="07/07/06 10:19" （月/日/年 时:分:秒）<br>　　<br>&nbsp;&nbsp;&nbsp; 或者# clock --set --date="07/07/06 10:19" （月/日/年 时:分:秒）<br>　　<br>&nbsp;&nbsp;&nbsp; 3、硬件时间和系统时间的同步<br>　　<br>&nbsp;&nbsp;&nbsp; 按照前面的说法，重新启动系统，硬件时间会读取系统时间，实现同步，但是在不重新启动的时候，需要用hwclock或clock命令实现同步。<br>　　<br>&nbsp;&nbsp;&nbsp; 硬件时钟与系统时钟同步：# hwclock --hctosys（hc代表硬件时间，sys代表系统时间）或者# clock --hctosys<br>　　<br>&nbsp;&nbsp;&nbsp; 系统时钟和硬件时钟同步：# hwclock --systohc或者# clock --systohc<br>　　<br>&nbsp;&nbsp;&nbsp; 4、时区的设置<br>　　<br>&nbsp;&nbsp;&nbsp; # tzselect<br>　　<br>&nbsp;&nbsp;&nbsp; Please identify a location so that time zone rules can be set correctly.Please select a continent or ocean
<p>&nbsp;&nbsp;&nbsp; 1) Africa</p>
<p>&nbsp;&nbsp;&nbsp; 2) Americas</p>
<p>&nbsp;&nbsp;&nbsp; 3) Antarctica</p>
<p>&nbsp;&nbsp;&nbsp; 4) Arctic Ocean</p>
<p>&nbsp;&nbsp;&nbsp; 5) Asia</p>
<p>&nbsp;&nbsp;&nbsp; 6) Atlantic Ocean</p>
<p>&nbsp;&nbsp;&nbsp; 7) Australia</p>
<p>&nbsp;&nbsp;&nbsp; 8) Europe</p>
<p>&nbsp;&nbsp;&nbsp; 9) Indian Ocean</p>
<p>&nbsp;&nbsp;&nbsp; 10) Pacific Ocean</p>
<p>&nbsp;&nbsp;&nbsp; 11) none - I want to specify the time zone using the Posix TZ format.</p>
<p>&nbsp;&nbsp;&nbsp; 输入5，亚洲<br>　　<br>&nbsp;&nbsp;&nbsp; Please select a country</p>
<p>&nbsp;&nbsp;&nbsp; 1) Afghanistan</p>
<p>&nbsp;&nbsp;&nbsp; 18) Israel</p>
<p>&nbsp;&nbsp;&nbsp; 35) Palestine</p>
<p>&nbsp;&nbsp;&nbsp; 2) Armenia</p>
<p>&nbsp;&nbsp;&nbsp; 19) Japan</p>
<p>&nbsp;&nbsp;&nbsp; 36) Philippines</p>
<p>&nbsp;&nbsp;&nbsp; 3) Azerbaijan</p>
<p>&nbsp;&nbsp;&nbsp; 20) Jordan</p>
<p>&nbsp;&nbsp;&nbsp; 37) Qatar</p>
<p>&nbsp;&nbsp;&nbsp; 4) Bahrain</p>
<p>&nbsp;&nbsp;&nbsp; 21) Kazakhstan</p>
<p>&nbsp;&nbsp;&nbsp; 38) Russia</p>
<p>&nbsp;&nbsp;&nbsp; 5) Bangladesh</p>
<p>&nbsp;&nbsp;&nbsp; 22) Korea (North)</p>
<p>&nbsp;&nbsp;&nbsp; 39) Saudi Arabia</p>
<p>&nbsp;&nbsp;&nbsp; 6) Bhutan</p>
<p>&nbsp;&nbsp;&nbsp; 23) Korea (South)</p>
<p>&nbsp;&nbsp;&nbsp; 40) Singapore</p>
<p>&nbsp;&nbsp;&nbsp; 7) Brunei</p>
<p>&nbsp;&nbsp;&nbsp; 24) Kuwait</p>
<p>&nbsp;&nbsp;&nbsp; 41) Sri Lanka</p>
<p>&nbsp;&nbsp;&nbsp; 8) Cambodia</p>
<p>&nbsp;&nbsp;&nbsp; 25) Kyrgyzstan</p>
<p>&nbsp;&nbsp;&nbsp; 42) Syria</p>
<p>&nbsp;&nbsp;&nbsp; 9) China</p>
<p>&nbsp;&nbsp;&nbsp; 26) Laos</p>
<p>&nbsp;&nbsp;&nbsp; 43) Taiwan</p>
<p>&nbsp;&nbsp;&nbsp; 10) Cyprus</p>
<p>&nbsp;&nbsp;&nbsp; 27) Lebanon</p>
<p>&nbsp;&nbsp;&nbsp; 44) Tajikistan</p>
<p>&nbsp;&nbsp;&nbsp; 11) East Timor</p>
<p>&nbsp;&nbsp;&nbsp; 28) Macau</p>
<p>&nbsp;&nbsp;&nbsp; 45) Thailand</p>
<p>&nbsp;&nbsp;&nbsp; 12) Georgia</p>
<p>&nbsp;&nbsp;&nbsp; 29) Malaysia</p>
<p>&nbsp;&nbsp;&nbsp; 46) Turkmenistan</p>
<p>&nbsp;&nbsp;&nbsp; 13) Hong Kong</p>
<p>&nbsp;&nbsp;&nbsp; 30) Mongolia</p>
<p>&nbsp;&nbsp;&nbsp; 47) United Arab Emirates</p>
<p>&nbsp;&nbsp;&nbsp; 14) India</p>
<p>&nbsp;&nbsp;&nbsp; 31) Myanmar (Burma)</p>
<p>&nbsp;&nbsp;&nbsp; 48) Uzbekistan</p>
<p>&nbsp;&nbsp;&nbsp; 15) Indonesia</p>
<p>&nbsp;&nbsp;&nbsp; 32) Nepal</p>
<p>&nbsp;&nbsp;&nbsp; 49) Vietnam</p>
<p>&nbsp;&nbsp;&nbsp; 16) Iran</p>
<p>&nbsp;&nbsp;&nbsp; 33) Oman</p>
<p>&nbsp;&nbsp;&nbsp; 50) Yemen</p>
<p>&nbsp;&nbsp;&nbsp; 17) Iraq</p>
<p>&nbsp;&nbsp;&nbsp; 34) Pakistan</p>
<p>&nbsp;&nbsp;&nbsp; 输入9，中国<br>　　<br>&nbsp;&nbsp;&nbsp; Please select one of the following time zone regions</p>
<p>&nbsp;&nbsp;&nbsp; 1) east China - Beijing, Guangdong, Shanghai, etc.</p>
<p>&nbsp;&nbsp;&nbsp; 2) Heilongjiang</p>
<p>&nbsp;&nbsp;&nbsp; 3) central China - Gansu, Guizhou, Sichuan, Yunnan, etc.</p>
<p>&nbsp;&nbsp;&nbsp; 4) Tibet &amp; most of Xinjiang Uyghur</p>
<p>&nbsp;&nbsp;&nbsp; 5) southwest Xinjiang Uyghur</p>
<p>&nbsp;&nbsp;&nbsp; 输入1，北京时间<br>　　<br>&nbsp;&nbsp;&nbsp; The following information has been given:<br>　　<br>&nbsp;&nbsp;&nbsp; China east China - Beijing, Guangdong, Shanghai, etc<br>　　<br>&nbsp;&nbsp;&nbsp; Therefore TZ="Asia/Shanghai" will be used.Local time is now: Fri Jul 7 10:32:18 CST 2006.Universal Time is now: Fri Jul 7 02:32:18 UTC 2006.Is the above information OK?1) Yes2) No</p>
<p>&nbsp;&nbsp;&nbsp; 输入1，确认<br>　　<br>&nbsp;&nbsp;&nbsp; 如果不用tzselect命令，可以修改文件变更时区。<br>　　<br>&nbsp;&nbsp;&nbsp; # vi /etc/sysconfig/clock ZONE=Asia/Shanghai（查/usr/share/zoneinfo下面的文件） UTC=false ARC=false<br>　　<br>&nbsp;&nbsp;&nbsp; # rm /etc/localtime<br>　　<br>&nbsp;&nbsp;&nbsp; # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime<br>　<br>&nbsp; 　重新启动即可。</p>
<img src ="http://www.phpweblog.net/killjin/aggbug/2575.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-12-21 01:36 <a href="http://www.phpweblog.net/killjin/archive/2007/12/21/2575.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>修改linux的hostname</title><link>http://www.phpweblog.net/killjin/archive/2007/12/09/2511.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Sat, 08 Dec 2007 19:33:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/12/09/2511.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2511.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/12/09/2511.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2511.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2511.html</trackback:ping><description><![CDATA[<p>1、進入/etc/sysconfig/network ，將hostname=localname改成自己想要的newname，localname是其默認，保存退出。<br><br>2、進入/etc/hosts，將127.0.0.1 localname. 修改為127.0.0.1 newname. ，然後保存退出。<br><br>3、最後重啓。<br><br>注：如果直接用hostname newname來修改的話，重啓后會變囘原來的hostname。<br><br>如果第2步不做，重啓后會報錯，反映找不到internet address，只要加上第2步，重啓就ok了。</p>
<img src ="http://www.phpweblog.net/killjin/aggbug/2511.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-12-09 03:33 <a href="http://www.phpweblog.net/killjin/archive/2007/12/09/2511.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>yum命令详解</title><link>http://www.phpweblog.net/killjin/archive/2007/12/08/2510.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Sat, 08 Dec 2007 15:50:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/12/08/2510.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2510.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/12/08/2510.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2510.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2510.html</trackback:ping><description><![CDATA[　　<strong>yum是什么?</strong>(说句实话，我到现在都不知道该怎么念这个词，偷偷告诉你，我念"(晕)yun")<br>yum = Yellow dog Updater, Modified。主要功能是更方便的添加/删除/更新RPM包，它能自动解决包的倚赖性问题，它能便于管理大量系统的更新问题，那为什么使用yum而不用apt呢？最简单的原因：Fedora自带的！<br><br><strong>yum特点</strong>
<ul class=ubb-list>*可以同时配置多个资源库(Repository)<br>*简洁的配置文件(/etc/yum.conf)<br>*自动解决增加或删除rpm包时遇到的倚赖性问题<br>*使用方便<br>*保持与RPM数据库的一致性</ul>
    <strong>yum安装</strong>,哈哈，Fedora自带哦！<br>#rpm -ivh yum-2.0.4-2.noarch.rpm<br><br>四. yum配置<br>注:修改和增加配置文件中的资源库,加快下载速度和拥有更多可更新的rpm包<br>将/etc/yum.conf的内容全部替换为<br>[main]<br>cachedir=/var/cache/yum<br>debuglevel=2<br>logfile=/var/log/yum.log<br>pkgpolicy=newest<br>distroverpkg=fedora-release<br>tolerant=1<br>exactarch=1<br><br>[fedora-us-1]<br>name=Fedora Core 1 -- Fedora US mirror<br>baseurl=ftp://mirrors.kernel.org/fedora.us/fedora/fedora/1/i386/yum/os<br><br>[fedora-us-1-updates]<br>name=Fedora Core 1 updates -- Fedora US mirror<br>baseurl=ftp://mirrors.kernel.org/fedora.us/fedora/fedora/1/i386/yum/updates<br><br>[fedora-us-1-stable]<br>name=Fedora Linux (stable) for Fedora Core 1 -- Fedora US mirror<br>baseurl=ftp://mirrors.kernel.org/fedora.us/fedora/fedora/1/i386/yum/stable<br><br>[freshrpms]<br>name=Fedora Linux $releasever - $basearch - freshrpms<br>baseurl=http://ayo.freshrpms.net/fedora/linux/$releasever/$basearch/freshrpms<br><br>五. yum应用<br>注:当第一次使用yum或yum资源库有更新时,yum会自动下载所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长.<br><br>检查有哪些可更新的rpm包<br>#yum check-update<br><br>安装rpm包,使xmms可以播放mp3<br>#yum install xmms-mp3<br><br>安装mplayer,同时自动安装相关的软件<br>#yum install mplayer<br><br>删除licq包,同时删除与该包有倚赖性的包<br>#yum remove licq<br>注:同时会提示删除licq-gnome,licq-qt,licq-text,非常方便<br><br>系统更新(更新所有可以升级的rpm包,包括kernel)<br>#yum -y update<br><br>每天定期执行系统更新<br>#chkconfig yum on<br>#service yum start<br><br>六. yum指令详解<br>*rpm包的更新<br><br>检查可更新的rpm包<br>#yum check-update<br><br>更新所有的rpm包<br>#yum update<br><br>更新指定的rpm包,如更新kernel和kernel source<br>#yum update kernel kernel-source<br><br>大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级<br>#yum upgrade<br><br>*rpm包的安装和删除<br><br>安装rpm包,如xmms-mp3<br>#yum install xmms-mp3<br><br>删除rpm包,包括与该包有倚赖性的包<br>#yum remove licq<br>注:同时会提示删除licq-gnome,licq-qt,licq-text<br><br>*yum暂存(/var/cache/yum/)的相关参数<br>清除暂存中rpm包文件<br>#yum clean packages<br><br>清除暂存中rpm头文件<br>#yum clean headers<br><br>清除暂存中旧的rpm头文件<br>#yum clean oldheaders<br><br>清除暂存中旧的rpm头文件和包文件<br>#yum clean 或#yum clean all<br>注:相当于yum clean packages + yum clean oldheaders<br><br>*rpm包列表<br><br>列出资源库中所有可以安装或更新的rpm包<br>#yum list<br><br>列出资源库中特定的可以安装或更新以及已经安装的rpm包<br>#yum list mozilla<br>#yum list mozilla*<br>注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包<br><br>列出资源库中所有可以更新的rpm包<br>#yum list updates<br><br>列出已经安装的所有的rpm包<br>#yum list installed<br><br>列出已经安装的但是不包含在资源库中的rpm包<br>#yum list extras<br>注:通过其它网站下载安装的rpm包<br><br>*rpm包信息显示(info参数同list)<br><br>列出资源库中所有可以安装或更新的rpm包的信息<br>#yum info<br><br>列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息<br>#yum info mozilla<br>#yum info mozilla*<br>注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包的信息<br><br>列出资源库中所有可以更新的rpm包的信息<br>#yum info updates<br><br>列出已经安装的所有的rpm包的信息<br>#yum info installed<br><br>列出已经安装的但是不包含在资源库中的rpm包的信息<br>#yum info extras<br>注:通过其它网站下载安装的rpm包的信息<br><br>*搜索rpm包<br>搜索匹配特定字符的rpm包<br>#yum search mozilla<br>注:在rpm包名,包描述等中搜索<br><br>搜索有包含特定文件名的rpm包<br>#yum provides realplay<br><br>七. 安全的更新freshrpms.net的rpm包<br>安装freshrpms.net的GPG key<br>#rpm --import <a title=http://freshrpms.net/packages/RPM-GPG-KEY.txt href="http://freshrpms.net/packages/RPM-GPG-KEY.txt" target=_blank>http://freshrpms.net/packages/RPM-GPG-KEY.txt</a><br><br>编辑/etc/yum.conf,增加以下信息到尾部<br>[freshrpms]<br>name=Fedora Linux $releasever - $basearch - freshrpms<br>baseurl=http://ayo.freshrpms.net/fedora/linux/$releasever/$basearch/freshrpms<br>gpgcheck=1<br><br>注:<br>检查GPG Key<br># rpm -qa gpg-pubkey*<br><br>显示Key信息<br>#rpm -qi gpg-pubkey-e42d547b-3960bdf1<br><br>删除Key<br>#rpm -e gpg-pubkey-e42d547b-3960bdf1 
<img src ="http://www.phpweblog.net/killjin/aggbug/2510.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-12-08 23:50 <a href="http://www.phpweblog.net/killjin/archive/2007/12/08/2510.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux系统设置类命令大全</title><link>http://www.phpweblog.net/killjin/archive/2007/11/21/2359.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Tue, 20 Nov 2007 20:03:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/11/21/2359.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2359.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/11/21/2359.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2359.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2359.html</trackback:ping><description><![CDATA[<p>apmd(advanced power management BIOS daemon)<br>功能说明：进阶电源管理服务程序。<br>语　　法：apmd [-u v V W][-p &lt;百分比变化量&gt;][-w &lt;百分比值&gt;]<br>补充说明：apmd负责BIOS进阶电源管理(APM)相关的记录，警告与管理工作。<br>参　　数：<br>&nbsp; -p&lt;百分比变化量&gt;或--percentage&lt;百分比变化量&gt;&nbsp; 当电力变化的幅度超出设置的百分比变化量，即记录事件百分比变化量的预设值为5，若设置值超过100，则关闭此功能。 <br>&nbsp; -u或--utc 将BIOS时钟设为UTC，以便从悬待模式恢复时，将-u参数传送至clock或hwclock程序。 <br>&nbsp; -v或--verbose 记录所有的APM事件。 <br>&nbsp; -V或--version 显示版本信息。 <br>&nbsp; -w&lt;百分比值&gt;或--warn&lt;百分比值&gt; 当电池不在充电状态时，且电池电量低于设置的百分比值，则在syslog(2)的ALERT层记录警告信息。百分比值的预设置为10，若设置为0，则关闭此功能。&nbsp; <br>&nbsp; -W或--wall 发出警告信息给所有人。 </p>
<p><br>alias<br>功能说明：设置指令的别名。<br>语　　法：alias[别名]=[指令名称]<br>补充说明：用户可利用alias，自定指令的别名。若仅输入alias，则可列出目前所有的别名设置。　alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名，可在.profile或.cshrc中设定指令的别名。<br>参　　数：若不加任何参数，则列出目前所有的别名设置。 </p>
<p><br>aumix(audio mixer)<br>功能说明：设置音效装置。<br>语　　法：aumix [-123bcilmoprstvwWx][(+/-)强度][PqR][-dfhILqS]<br>补充说明：设置各项音效装置的信号强度以及指定播放与录音的装置。<br>参　　数：<br>&nbsp; [-123bcilmoprstvwWx]为频道参数，用来指定装置的频道；[PqR]可用来指定播放或录音装置；[-dfhILqS] 则为指令参数。若不加任何参数，aumix会显示简单的图形界面供调整设置频道参数：<br>&nbsp; -1 　输入信号线１。 <br>&nbsp; -2 　输入信号线２。 <br>&nbsp; -3 　输入信号线３。 <br>&nbsp; -b 　低音。 <br>&nbsp; -c 　CD。 <br>&nbsp; -i 　输入信号强度。 <br>&nbsp; -m 　麦克风。 <br>&nbsp; -o 　输出信号强度。&nbsp; <br>&nbsp; -p 　PC喇叭。 <br>&nbsp; -r 　录音。 <br>&nbsp; -s 　合成器。 <br>&nbsp; -t 　高音。 <br>&nbsp; -v 　主音量。 <br>&nbsp; -w 　PCM。 <br>&nbsp; -W 　PCM2。 <br>&nbsp; -x 　混音器。 <br>&nbsp; (+/-)强度 　出现(+/-)时，代表在原有的强度上加减指定值。若未使用(+/-)，则直接将强度设为指定值。 　指定音效装置 <br>&nbsp; P 　指定播放装置。 <br>&nbsp; q 　显示频道设置。 <br>&nbsp; R 　指定录音装置。 <br>　指令参数 <br>&nbsp; -d 　指定音效装置的名称。 <br>&nbsp; -f 　指定存储或载入设置的文件。 <br>&nbsp; -h 　在使用时显示信息。 <br>&nbsp; -I 　以图形界面方式来执行aumix。 <br>&nbsp; -L 　从$HOME/.aumixrc或/etc/aumixrc载入设置。 <br>&nbsp; -q 　显示所有频道的设置值。 <br>&nbsp; -S 　将设置值保存至/HOME/.aumixrc。 </p>
<p><br>crontab<br>功能说明：设置计时器。<br>语　　法：crontab [-u &lt;用户名称&gt;][配置文件] 或 crontab [-u &lt;用户名称&gt;][-elr]<br>补充说明：cron是一个常驻服务，它提供计时器的功能，让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件，就可以使用计时器的功能。其配置文件格式如下：<br>&nbsp; Minute Hour Day Month DayOFWeek Command <br>&nbsp;参　　数： <br>　-e 　编辑该用户的计时器设置。 <br>　-l 　列出该用户的计时器设置。 <br>　-r 　删除该用户的计时器设置。 <br>　-u&lt;用户名称&gt; 　指定要设定计时器的用户名称。&nbsp; <br>&nbsp;&nbsp; </p>
<p>clock<br>功能说明：调整 RTC 时间。<br>语　　法：clock [--adjust][--debug][--directisa][--getepoch][--hctosys][--set --date="&lt;日期时间&gt;"][--setepoch --epoch=&lt; &gt;][--show][--systohc][--test][--utc][--version]<br>补充说明：RTC 是电脑内建的硬件时间，执行这项指令可以显示现在时刻，调整硬件时钟的时间，将系统时间设成与硬件时钟之时间一致，或是把系统时间回存到硬件时钟。<br>参　　数：<br>　--adjust 　第一次使用"--set"或"--systohc"参数设置硬件时钟，会在/etc目录下产生一个名称为adjtime的文件。当再次使用这两个参数调整硬件时钟，此文件便会记录两次调整间之差异，日后执行clock指令加上"--adjust"参数时，程序会自动根 据记录文件的数值差异，计算出平均值，自动调整硬件时钟的时间。 <br>　--debug 　详细显示指令执行过程，便于排错或了解程序执行的情形。 <br>　--directisa 　告诉clock指令不要通过/dev/rtc设备文件，直接对硬件时钟进行存取。这个参数适用于仅有ISA总线结构的老式电脑。 <br>　--getepoch 　把系统核心内的硬件时钟新时代数值，呈现到标准输出设备。 <br>　--hctosys 　Hardware Clock to System Time，把系统时间设成和硬件时钟一致。由于这个动作将会造成系统全面更新文件的存取时间，所以最好在系统启动时就执行它。 <br>　--set--date 　设置硬件时钟的日期和时间。 <br>　--setepoch--epoch=&lt;年份&gt;&nbsp; 　设置系统核心之硬件时钟的新时代数值，年份以四位树字表示。 <br>　--show 　读取硬件时钟的时间，并将其呈现至标准输出设备。 <br>　--systohc 　System Time to Hardware Clock，将系统时间存回硬件时钟内。 <br>　--test 　仅作测试，并不真的将时间写入硬件时钟或系统时间。 <br>　--utc 　把硬件时钟上的时间时为CUT，有时也称为UTC或UCT。 <br>　--version 　显示版本信息。 </p>
<p><br>chroot(change root)<br>功能说明：改变根目录。<br>语　　法：chroot [--help][--version][目的目录][执行指令...]<br>补充说明：把根目录换成指定的目的目录。<br>参　　数：<br>　--help 　在线帮助。<br>　--version 　显示版本信息。 </p>
<p><br>chkconfig(check config)<br>功能说明：检查，设置系统的各种服务。<br>语　　法：chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level &lt;等级代号&gt;][系统服务][on/off/reset]<br>补充说明：这是Red Hat公司遵循GPL规则所开发的程序，它可查询操作系统在每一个执行等级中会执行哪些系统服务，其中包括各类常驻服务。<br>参　　数：<br>　--add 　增加所指定的系统服务，让chkconfig指令得以管理它，并同时在系统启动的叙述文件内增加相关数据。 <br>　--del 　删除所指定的系统服务，不再由chkconfig指令管理，并同时在系统启动的叙述文件内删除相关数据。 <br>　--level&lt;等级代号&gt; 　指定读系统服务要在哪一个执行等级中开启或关毕 </p>
<p><br>bind<br>功能说明：显示或设置键盘按键与其相关的功能。<br>语　　法：bind [-dlv][-f &lt;按键配置文件&gt;][-m &lt;按键配置&gt;][-q &lt;功能&gt;]<br>补充说明：您可以利用bind命令了解有哪些按键组合与其功能，也可以自行指定要用哪些按键组合。<br>参　　数：<br>　-d 　显示按键配置的内容。 <br>&nbsp; -f&lt;按键配置文件&gt; 　载入指定的按键配置文件。 <br>　-l 　列出所有的功能。 <br>　-m&lt;按键配置&gt; 　指定按键配置。 <br>　-q&lt;功能&gt; 　显示指定功能的按键。 <br>　-v 　列出目前的按键配置与其功能。 </p>
<p><br>depmod(depend module)<br>功能说明：分析可载入模块的相依性。<br>语　　法：depmod [-adeisvV][-m &lt;文件&gt;][--help][模块名称]<br>补充说明：depmod可检测模块的相依性，供modprobe在安装模块时使用。<br>参　　数：<br>　-a或--all 　分析所有可用的模块。 <br>　-d或debug 　执行排错模式。 <br>　-e 　输出无法参照的符号。 <br>　-i 　不检查符号表的版本。 <br>　-m&lt;文件&gt;或system-map&lt;文件&gt; 　使用指定的符号表文件。 <br>　-s或--system-log 　在系统记录中记录错误。 <br>　-v或--verbose 　执行时显示详细的信息。 <br>　-V或--version 　显示版本信息。 <br>　--help 　显示帮助。 </p>
<p><br>declare<br>功能说明：声明 shell 变量。<br>语　　法：declare [+/-][rxi][变量名称＝设置值] 或 declare -f<br>补充说明：declare为shell指令，在第一种语法中可用来声明变量并设置变量的属性([rix]即为变量的属性），在第二种语法中可用来显示shell函数。若不加上任何参数，则会显示全部的shell变量与函数(与执行set指令的效果相同)。<br>参　　数：<br>　+/- 　"-"可用来指定变量的属性，"+"则是取消变量所设的属性。 <br>　-f 　仅显示函数。 <br>　r 　将变量设置为只读。 <br>　x 　指定的变量会成为环境变量，可供shell以外的程序来使用。 <br>　i 　[设置值]可以是数值，字符串或运算式。 </p>
<p><br>dmesg<br>功能说明：显示开机信息。<br>语　　法：dmesg [-cn][-s &lt;缓冲区大小&gt;]<br>补充说明：kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息，可利用dmesg来查看。开机信息亦保存在/var/log目录中，名称为dmesg的文件里。<br>参　　数：<br>　-c 　显示信息后，清除ring buffer中的内容。 <br>　-s&lt;缓冲区大小&gt; 　预设置为8196，刚好等于ring buffer的大小。 <br>　-n 　设置记录信息的层级。 </p>
<p><br>dircolors<br>功能说明：设置 ls 指令在显示目录或文件时所用的色彩。<br>语　　法：dircolors [色彩配置文件] 或 dircolors [-bcp][--help][--version]<br>补充说明：dircolors可根据[色彩配置文件]来设置LS_COLORS环境变量或是显示设置LS_COLORS环境变量的shell指令。<br>参　　数：<br>　-b或--sh或--bourne-shell 　显示在Boume shell中，将LS_COLORS设为目前预设置的shell指令。 <br>　-c或--csh或--c-shell 　显示在C shell中，将LS_COLORS设为目前预设置的shell指令。 <br>　-p或--print-database 　显示预设置 <br>　-help 　显示帮助。 <br>　-version 　显示版本信息。 </p>
<p><br>eval<br>功能说明：重新运算求出参数的内容。<br>语　　法：eval [参数]<br>补充说明：eval可读取一连串的参数，然后再依参数本身的特性来执行。<br>参　　数：参数不限数目，彼此之间用分号分开。 </p>
<p><br>enable</p>
<p>功能说明：启动或关闭 shell 内建指令。</p>
<p>语　　法：enable [-n][-all][内建指令]</p>
<p>补充说明：若要执行的文件名称与shell内建指令相同，可用enable -n来关闭shell内建指令。若不加-n参数，enable可重新启动关闭的指令。</p>
<p>参　　数：<br>　-n 　关闭指定的shell内建指令。 <br>　-all 　显示shell所有关闭与启动的指令。 </p>
<p><br>grpunconv(group unconvert from shadow password)</p>
<p>功能说明：关闭群组的投影密码。</p>
<p>语　　法：grpunconv</p>
<p>补充说明：执行grpunconv指令可关闭群组投影密码，它会把密码从gshadow文件内，回存到group文件里。 </p>
<p><br>fbset(frame buffer setup)</p>
<p>功能说明：设置景框缓冲区。</p>
<p>语　　法：fbset [-ahinsvVx][-db &lt;信息文件&gt;][-fb &lt;外围设备代号&gt;][--test][显示模式]</p>
<p>补充说明：fbset指令可用于设置景框缓冲区的大小，还能调整画面之分辨率，位置，高低宽窄，色彩 深度，并可决定是否启动先卡之各项硬件特性。</p>
<p>参　　数：<br>　-a或--all 　改变所有使用该设备之虚拟终端机的显示模式。 <br>　-db&lt;信息文件&gt; 　指定显示模式的信息文件，预设值文件名称为fb.modes，存放在/etc目录下&nbsp; <br>　-fb&lt;外围设备代号&gt; 　指定用来做为输出景框缓冲区之外围设备，预设置为"/dev/fd0"。 <br>　-h或-help 　在线帮助。 <br>　-i或--info 　列出所有景框缓冲区之相关信息。 <br>　-ifb&lt;外围设备代号&gt; 　使用另一个景框缓冲区外围设备之设置值。 <br>　-n或--now 　马上改变显示模式。 <br>　-ofb&lt;外围设备代号&gt; 　此参数效果和指定"-fb"参数相同。 <br>　-s或--show 　列出目前显示模式之设置。 <br>　-v或--verbose 　显示指令执行过程。 <br>　-V或--version 　显示版本信息。 <br>　-x或--xfree86 　使用XFree86兼容模式。 <br>　--test 　仅做测试，并不改变现行的显示模式。 </p>
<p><br>hwclock(hardware clock)</p>
<p>功能说明：显示与设定硬件时钟。</p>
<p>语　　法：hwclock [--adjust][--debug][--directisa][--hctosys][--show][--systohc][--test]<br>[--utc][--version][--set --date=&lt;日期与时间&gt;]</p>
<p>补充说明：在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备，也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时，系统时钟会去读取硬件时钟的设定，之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。</p>
<p>参　　数：<br>&nbsp; --adjust 　hwclock每次更改硬件时钟时，都会记录在/etc/adjtime文件中。使用--adjust参数，可使hwclock根据先前的记录来估算硬件时钟的偏差，并用来校正目前的硬件时钟。 <br>&nbsp; --debug 　显示hwclock执行时详细的信息。 <br>&nbsp; --directisa 　hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时，可用此参数直接以I/O指令来存取硬件时钟。 <br>&nbsp; --hctosys 　将系统时钟调整为与目前的硬件时钟一致。 <br>&nbsp; --set --date=&lt;日期与时间&gt; 　设定硬件时钟。 <br>&nbsp; --show 　显示硬件时钟的时间与日期。 <br>&nbsp; --systohc 　将硬件时钟调整为与目前的系统时钟一致。 <br>&nbsp; --test 　仅测试程序，而不会实际更改硬件时钟。 <br>&nbsp; --utc 　若要使用格林威治时间，请加入此参数，hwclock会执行转换的工作。 <br>&nbsp; --version 　显示版本信息。 </p>
<p><br>liloconfig</p>
<p>功能说明：设置核心载入，开机管理程序。</p>
<p>语　　法：liloconfig</p>
<p>补充说明：liloconfig是Slackware发行版专门用来调整lilo设置的程序。它通过互动式操作界面，让用户能够利用键盘上的方向键等，轻易地操控lilo的安装，设置作业，而无须下达各种参数或撰写配置文件。 </p>
<p><br>lilo(linux loader)</p>
<p>功能说明：安装核心载入，开机管理程序。</p>
<p>语　　法：lilo [-clqtV][-b&lt;外围设备代号&gt;][-C&lt;配置文件&gt;][-d&lt;延迟时间&gt;][－D&lt;识别标签&gt;][-f&lt;几何参数文件&gt;][-i&lt;开机磁区文件&gt;][-I&lt;识别标签&gt;][-m&lt;映射文件&gt;][-P&lt;fix/ignore&gt;][-r&lt;根目录&gt;][-R&lt;执行指令&gt;...][-s&lt;备份文件&gt;][-S&lt;备份文件&gt;][-uU&lt;外围设备代号&gt;][-v...]</p>
<p>补充说明：lilo是个Linux系统核心载入程序，同时具备管理开机的功能。单独执行lilo指令，它会读取/etc/目录下的lilo.conf配置文件，然后根据其内容安装lilo。</p>
<p>参　　数：<br>&nbsp; -b&lt;外围设备代号&gt; 　指定安装lilo之处的外围设备代号。 <br>&nbsp; -c 　使用紧致映射模式。 <br>&nbsp; -C&lt;配置文件&gt; 　指定lilo的配置文件。 <br>&nbsp; -d&lt;延迟时间&gt; 　设置开机延迟时间。 <br>&nbsp; -D&lt;识别标签&gt; 　指定开机后预设启动的操作系统，或系统核心识别标签。 <br>&nbsp; -f&lt;几何参数文件&gt; 　指定磁盘的几何参数配置文件。 <br>&nbsp; -i&lt;开机磁区文件&gt; 　指定欲使用的开机磁区文件，预设是/boot目录里的boot.b文件。 <br>&nbsp; -I&lt;识别标签&gt; 　显示系统核心存放之处。 <br>&nbsp; -l 　产生线形磁区地址。 <br>&nbsp; -m&lt;映射文件&gt; 　指定映射文件。 <br>&nbsp; -P&lt;fix/ignore&gt; 　决定要修复或忽略分区表的错误。 <br>&nbsp; -q 　列出映射的系统核心文件。 <br>&nbsp; -r&lt;根目录&gt; 　设置系统启动时欲挂入成为根目录的目录。 <br>&nbsp; -R&lt;执行指令&gt; 　设置下次启动系统时，首先执行的指令。 <br>&nbsp; -s&lt;备份文件&gt; 　指定备份文件。 <br>&nbsp; -S&lt;备份文件&gt; 　强制指定备份文件。 <br>&nbsp; -t 　不执行指令，仅列出实际执行会进行的动作。 <br>&nbsp; -u&lt;外围色设备代号&gt; 　删除lilo。 <br>&nbsp; -U&lt;外围设备代号&gt; 　此参数的效果和指定"-u"参数类似，当不检查时间戳记。 <br>&nbsp; -v 　显示指令执行过程。 <br>&nbsp; -V 　显示版本信息。 </p>
<p><br>kbdconfig</p>
<p>功能说明：设置键盘类型。</p>
<p>语　　法：kbdconfig [--back][--test]</p>
<p>补充说明：kbdconfig(Red Hat Linux才有的指令)是一个用来设置键盘的程序，提供图形化的操作界面。kbdconfig实际上是修改/etc/sysconfig/keyboard的键盘配置文件。</p>
<p>参　　数：<br>&nbsp; --back 　执行时将预设的Cancel按钮更改为Back按钮。 <br>&nbsp; --test 　仅作测试，不会实际更改设置。 </p>
<p><br>minfo</p>
<p>功能说明：显示MS-DOS文件系统的各项参数。</p>
<p>语　　法：&lt;/&gt;minfo [-v][驱动器代号]</p>
<p>补充说明：minfo为mtools工具指令，可显示MS-DOS系统磁盘的各项参数，包括磁区数，磁头数...等。</p>
<p>参　　数：<br>&nbsp; -v 　除了一般信息外，并显示可开机磁区的内容。 </p>
<p><br>lsmod(list modules)</p>
<p>功能说明：显示已载入系统的模块。</p>
<p>语　　法：lsmod</p>
<p>补充说明：执行lsmod指令，会列出所有已载入系统的模块。Linux操作系统的核心具有模块化的特性，应此在编译核心时，务须把全部的功能都放入核心。您可以将这些功能编译成一个个单独的模块，待需要时再分别载入。 </p>
<p><br>insmod(install module)</p>
<p>功能说明：载入模块。</p>
<p>语　　法：insmod [-fkmpsvxX][-o &lt;模块名称&gt;][模块文件][符号名称 = 符号值]</p>
<p>补充说明：Linux有许多功能是通过模块的方式，在需要时才载入kernel。如此可使kernel较为精简，进而提高效率，以及保有较大的弹性。这类可载入的模块，通常是设备驱动程序。</p>
<p>参　　数：<br>&nbsp; -f 　不检查目前kernel版本与模块编译时的kernel版本是否一致，强制将模块载入。 <br>&nbsp; -k 　将模块设置为自动卸除。 <br>&nbsp; -m 　输出模块的载入信息。 <br>&nbsp; -o&lt;模块名称&gt; 　指定模块的名称，可使用模块文件的文件名。 <br>&nbsp; -p 　测试模块是否能正确地载入kernel。 <br>&nbsp; -s 　将所有信息记录在系统记录文件中。 <br>&nbsp; -v 　执行时显示详细的信息。 <br>&nbsp; -x 　不要汇出模块的外部符号。 <br>&nbsp; -X 　汇出模块所有的外部符号，此为预设置。 </p>
<p><br>modprobe(module probe)</p>
<p>功能说明：自动处理可载入模块。</p>
<p>语　　法：modprobe [-acdlrtvV][--help][模块文件][符号名称 = 符号值]</p>
<p>补充说明：modprobe可载入指定的个别模块，或是载入一组相依的模块。modprobe会根据depmod所产生的相依关系，决定要载入哪些模块。若在载入过程中发生错误，在modprobe会卸载整组的模块。</p>
<p>参　　数：<br>&nbsp; -a或--all 　载入全部的模块。 <br>&nbsp; -c或--show-conf 　显示所有模块的设置信息。 <br>&nbsp; -d或--debug 　使用排错模式。 <br>&nbsp; -l或--list 　显示可用的模块。 <br>&nbsp; -r或--remove 　模块闲置不用时，即自动卸载模块。 <br>&nbsp; -t或--type 　指定模块类型。 <br>&nbsp; -v或--verbose 　执行时显示详细的信息。 <br>&nbsp; -V或--version 　显示版本信息。 <br>&nbsp; -help 　显示帮助。 </p>
<p><br>modinfo(module infomation)</p>
<p>功能说明：显示kernel模块的信息。</p>
<p>语　　法：modinfo [-adhpV][模块文件]</p>
<p>补充说明：modinfo会显示kernel模块的对象文件，以显示该模块的相关信息。</p>
<p>参　　数：<br>&nbsp; -a或--author 　显示模块开发人员。 <br>&nbsp; -d或--description 　显示模块的说明。 <br>&nbsp; -h或--help 　显示modinfo的参数使用方法。 <br>&nbsp; -p或--parameters 　显示模块所支持的参数。 <br>&nbsp; -V或--version 　显示版本信息。 </p>
<p><br>mkkickstart</p>
<p>功能说明：建立安装的组态文件。</p>
<p>语　　法：mkkickstart [--bootp][--dhcp][--nonet][--nox][--version][--nfs &lt;远端电脑:路径&gt;]<br>&nbsp;<br>补充说明：mkkickstart可根据目前系统的设置来建立组态文件，供其他电脑在安装时使用。组态文件的内容包括使用语言，网络环境，系统磁盘状态，以及X Windows的设置等信息。</p>
<p>参　　数：<br>&nbsp; --bootp 　安装与开机时，使用BOOTP。 <br>&nbsp; --dhcp 　安装与开机时，使用DHCP。 <br>&nbsp; --nfs&lt;远端电脑:路径&gt; 　使用指定的网络路径安装。 <br>&nbsp; --nonet 　不要进行网络设置，即假设在没有网络环境的状态下。 <br>&nbsp; --nox 　不要进行X Windows的环境设置。 <br>&nbsp; --version 　显示版本信息。 </p>
<p><br>mouseconfig</p>
<p><br>功能说明：设置鼠标相关参数。</p>
<p>语　　法：mouseconfig [--back][--emulthree][--help][--expert][--kickstart][--noprobe][--test][--device &lt;连接端口&gt;][鼠标类型]</p>
<p>补充说明：mouseconfig为鼠标设置程序，可自动设置相关参数，或者用户也可以利用所提供互动模式自行设置鼠标。mouseconfig是Red Hat Linux才有的命令。</p>
<p>参　　数：<br>&nbsp; --back 　在设置画面上显示Back按钮，而取代预设的Cancel按钮。 <br>&nbsp; --device&lt;连接端口&gt; 　指定硬件连接端口。可用的选项有ttyS0，ttyS1，ttyS2，ttyS3与orpsaux。 <br>&nbsp; --emulthree 　将二钮鼠标模拟成三钮鼠标。 <br>&nbsp; --help 　显示帮助以及所有支持的鼠标类型。 <br>&nbsp; --expert 　程序预设可自动判断部分设置值。若要自行设置，请使用--expert参数。 <br>&nbsp; --kickstart 　让程序自动检测并保存所有的鼠标设置。 <br>&nbsp; --noprobe 　不要检测鼠标设备。 <br>&nbsp; --test 　测试模式，不会改变任何设置。 </p>
<p><br>ntsysv</p>
<p>功能说明：设置系统的各种服务。</p>
<p>语　　法：ntsysv [--back][--level &lt;等级代号&gt;]</p>
<p>补充说明：这是Red Hat公司遵循GPL规则所开发的程序，它具有互动式操作界面，您可以轻易地利用方向键和空格键等，开启，关闭操作系统在每个执行等级中，所要执行的系统服务。</p>
<p>参　　数：<br>&nbsp; --back 　在互动式界面里，显示Back钮，而非Cancel钮。 <br>&nbsp; --level &lt;等级代号&gt; 　在指定的执行等级中，决定要开启或关闭哪些系统服务。 </p>
<p><br>rdate(receive date)</p>
<p>功能说明：显示其他主机的日期与时间。</p>
<p>语　　法：rdate [-ps][主机名称或IP地址...]</p>
<p>补充说明：执行rdate指令，向其他主机询问系统时间并显示出来。</p>
<p>参　　数：<br>&nbsp; -p 　显示远端主机的日期与时间。 <br>&nbsp; -s 　把从远端主机收到的日期和时间，回存到本地主机的系统时间。 </p>
<p><br>pwunconv</p>
<p>功能说明：关闭用户的投影密码。</p>
<p>语　　法：pwunconv</p>
<p>补充说明：执行pwunconv指令可以关闭用户投影密码，它会把密码从shadow文件内，重回存到passwd文件里。 </p>
<p><br>pwconv</p>
<p>功能说明：开启用户的投影密码。</p>
<p>语　　法：pwconv</p>
<p>补充说明：Linux系统里的用户和群组密码，分别存放在名称为passwd和group的文件中，　这两个文件位于/etc目录下。因系统运作所需，任何人都得以读取它们，造成安全上的破绽。投影密码将文件内的密码改存在/etc目录下的shadow和gshadow文件内，只允许系统管理者读取，同时把原密码置换为"x"字符，有效的强化了系统的安全性。 </p>
<p><br>passwd(password)</p>
<p>技巧管理员(2001-01-17 22:40)</p>
<p>语　　法：passwd [-dklS][-u &lt;-f&gt;][用户名称]</p>
<p>补充说明：passwd指令让用户可以更改自己的密码，而系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称，一般用户只能变更自己的密码。</p>
<p>参　　数：<br>&nbsp; -d 　删除密码。本参数仅有系统管理者才能使用。 <br>&nbsp; -f 　强制执行。 <br>&nbsp; -k 　设置只有在密码过期失效后，方能更新。 <br>&nbsp; -l 　锁住密码。 <br>&nbsp; -s 　列出密码的相关信息。本参数仅有系统管理者才能使用。 <br>&nbsp; -u 　解开已上锁的帐号。 </p>
<p><br>resize</p>
<p>功能说明：设置终端机视窗的大小。</p>
<p>语　　法：resize [-cu][-s &lt;列数&gt; &lt;行数&gt;]</p>
<p>补充说明：执行resize指令可设置虚拟终端机的视窗大小。</p>
<p>参　　数：<br>　-c 　就算用户环境并非C Shell，也用C Shell指令改变视窗大小。 <br>　-s &lt;列数&gt; &lt;行数&gt; 　设置终端机视窗的垂直高度和水平宽度。 <br>　-u 　就算用户环境并非Bourne Shell，也用Bourne Shell指令改变视窗大小。 </p>
<p><br>rmmod(remove module)</p>
<p>功能说明：删除模块。</p>
<p>语　　法：rmmod [-as][模块名称...]</p>
<p>补充说明：执行rmmod指令，可删除不需要的模块。Linux操作系统的核心具有模块化的特性，应此在编译核心时，务须把全部的功能都放如核心。你可以将这些功能编译成一个个单独的模块，待有需要时再分别载入它们。</p>
<p>参　　数：<br>&nbsp; -a 　删除所有目前不需要的模块。 <br>&nbsp; -s 　把信息输出至syslog常驻服务，而非终端机界面。 </p>
<p><br>rpm(redhat package manager)</p>
<p>功能说明：管理套件。</p>
<p>语　　法：rpm [-acdhilqRsv][-b&lt;完成阶段&gt;&lt;套间档&gt;+][-e&lt;套件挡&gt;][-f&lt;文件&gt;+][-i&lt;套件档&gt;][-p&lt;套件档&gt;＋][-U&lt;套件档&gt;][-vv][--addsign&lt;套件档&gt;+][--allfiles][--allmatches][--badreloc][--buildroot&lt;根目录&gt;][--changelog][--checksig&lt;套件档&gt;+][--clean][--dbpath&lt;数据库目录&gt;][--dump][--excludedocs][--excludepath&lt;排除目录&gt;][--force][--ftpproxy&lt;主机名称或IP地址&gt;][--ftpport&lt;通信端口&gt;][--help][--httpproxy&lt;主机名称或IP地址&gt;][--httpport&lt;通信端口&gt;][--ignorearch][--ignoreos][--ignoresize][--includedocs][--initdb][justdb][--nobulid][--nodeps][--nofiles][--nogpg][--nomd5][--nopgp][--noorder][--noscripts][--notriggers][--oldpackage][--percent][--pipe&lt;执行指令&gt;][--prefix&lt;目的目录&gt;][--provides][--queryformat&lt;档头格式&gt;][--querytags][--rcfile&lt;配置档&gt;][--rebulid&lt;套件档&gt;][--rebuliddb][--recompile&lt;套件档&gt;][--relocate&lt;原目录&gt;=&lt;新目录&gt;][--replacefiles][--replacepkgs][--requires][--resign&lt;套件档&gt;+][--rmsource][--rmsource&lt;文件&gt;][--root&lt;根目录&gt;][--scripts][--setperms][--setugids][--short-circuit][--sign][--target=&lt;安装平台&gt;+][--test][--timecheck&lt;检查秒数&gt;][--triggeredby&lt;套件档&gt;][--triggers][--verify][--version][--whatprovides&lt;功能特性&gt;][--whatrequires&lt;功能特性&gt;]</p>
<p>补充说明：rmp原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序，由于它遵循GPL规则且功能强大方便，因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现，让Linux易于安装，升级，间接提升了Linux的适用度。</p>
<p>参　　数：<br>&nbsp; -a 　查询所有套件。<br>&nbsp; -b&lt;完成阶段&gt;&lt;套件档&gt;+或-t &lt;完成阶段&gt;&lt;套件档&gt;+ 　设置包装套件的完成阶段，并指定套件档的文件名称。<br>&nbsp; -c 　只列出组态配置文件，本参数需配合"-l"参数使用。 <br>&nbsp; -d 　只列出文本文件，本参数需配合"-l"参数使用。　 <br>&nbsp; -e&lt;套件档&gt;或--erase&lt;套件档&gt; 　删除指定的套件。<br>&nbsp; -f&lt;文件&gt;+ 　查询拥有指定文件的套件。 <br>&nbsp; -h或--hash 　套件安装时列出标记。 <br>&nbsp; -i 　显示套件的相关信息。 <br>&nbsp; -i&lt;套件档&gt;或--install&lt;套件档&gt; 　安装指定的套件档。 <br>&nbsp; -l 　显示套件的文件列表。 <br>&nbsp; -p&lt;套件档&gt;+ 　查询指定的RPM套件档。 <br>&nbsp; -q 　使用询问模式，当遇到任何问题时，rpm指令会先询问用户。 <br>&nbsp; -R 　显示套件的关联性信息。 <br>&nbsp; -s 　显示文件状态，本参数需配合"-l"参数使用。 <br>&nbsp; -U&lt;套件档&gt;或--upgrade&lt;套件档&gt;&nbsp;&nbsp; 升级指定的套件档。 <br>&nbsp; -v 　显示指令执行过程。<br>&nbsp; -vv 　详细显示指令执行过程，便于排错。 <br>&nbsp; -addsign&lt;套件档&gt;+ 　在指定的套件里加上新的签名认证。 <br>&nbsp; --allfiles 　安装所有文件。 <br>&nbsp; --allmatches 　删除符合指定的套件所包含的文件。 <br>&nbsp; --badreloc 　发生错误时，重新配置文件。 <br>&nbsp; --buildroot&lt;根目录&gt; 　设置产生套件时，欲当作根目录的目录。 <br>&nbsp; --changelog 　显示套件的更改记录。 <br>&nbsp; --checksig&lt;套件档&gt;+ 　检验该套件的签名认证。 <br>&nbsp; --clean 　完成套件的包装后，删除包装过程中所建立的目录。 <br>&nbsp; --dbpath&lt;数据库目录&gt; 　设置欲存放RPM数据库的目录。 <br>&nbsp; --dump 　显示每个文件的验证信息。本参数需配合"-l"参数使用。 <br>&nbsp; --excludedocs 　安装套件时，不要安装文件。 <br>&nbsp; --excludepath&lt;排除目录&gt; 　忽略在指定目录里的所有文件。 <br>&nbsp; --force 　强行置换套件或文件。 <br>&nbsp; --ftpproxy&lt;主机名称或IP地址&gt; 　指定FTP代理服务器。 <br>&nbsp; --ftpport&lt;通信端口&gt; 　设置FTP服务器或代理服务器使用的通信端口。 <br>&nbsp; --help 　在线帮助。 <br>&nbsp; --httpproxy&lt;主机名称或IP地址&gt; 　指定HTTP代理服务器。 <br>&nbsp; --httpport&lt;通信端口&gt; 　设置HTTP服务器或代理服务器使用的通信端口。 <br>&nbsp; --ignorearch 　不验证套件档的结构正确性。 <br>&nbsp; --ignoreos 　不验证套件档的结构正确性。 <br>&nbsp; --ignoresize 　安装前不检查磁盘空间是否足够。 <br>&nbsp; --includedocs 　安装套件时，一并安装文件。 <br>&nbsp; --initdb 　确认有正确的数据库可以使用。 <br>&nbsp; --justdb 　更新数据库，当不变动任何文件。 <br>&nbsp; --nobulid 　不执行任何完成阶段。 <br>&nbsp; --nodeps 　不验证套件档的相互关联性。 <br>&nbsp; --nofiles 　不验证文件的属性。 <br>&nbsp; --nogpg 　略过所有GPG的签名认证。 <br>&nbsp; --nomd5 　不使用MD5编码演算确认文件的大小与正确性。 <br>&nbsp; --nopgp 　略过所有PGP的签名认证。 <br>&nbsp; --noorder 　不重新编排套件的安装顺序，以便满足其彼此间的关联性。 <br>&nbsp; --noscripts 　不执行任何安装script文件。 <br>&nbsp; --notriggers 　不执行该套件包装内的任何script文件。 <br>&nbsp; --oldpackage 　升级成旧版本的套件。 <br>&nbsp; --percent 　安装套件时显示完成度百分比。 <br>&nbsp; --pipe&lt;执行指令&gt; 　建立管道，把输出结果转为该执行指令的输入数据。 <br>&nbsp; --prefix&lt;目的目录&gt; 　若重新配置文件，就把文件放到指定的目录下。 <br>&nbsp; --provides 　查询该套件所提供的兼容度。 <br>&nbsp; --queryformat&lt;档头格式&gt; 　设置档头的表示方式。 <br>&nbsp; --querytags 　列出可用于档头格式的标签。 <br>&nbsp; --rcfile&lt;配置文件&gt; 　使用指定的配置文件。 <br>&nbsp; --rebulid&lt;套件档&gt; 　安装原始代码套件，重新产生二进制文件的套件。 <br>&nbsp; --rebuliddb 　以现有的数据库为主，重建一份数据库。 <br>&nbsp; --recompile&lt;套件档&gt; 　此参数的效果和指定"--rebulid"参数类似，当不产生套件档。 <br>&nbsp; --relocate&lt;原目录&gt;=&lt;新目录&gt; 　把本来会放到原目录下的文件改放到新目录。 <br>&nbsp; --replacefiles 　强行置换文件。 <br>&nbsp; --replacepkgs 　强行置换套件。 <br>&nbsp; --requires 　查询该套件所需要的兼容度。 <br>&nbsp; --resing&lt;套件档&gt;+ 　删除现有认证，重新产生签名认证。 <br>&nbsp; --rmsource 　完成套件的包装后，删除原始代码。 <br>&nbsp; --rmsource&lt;文件&gt; 　删除原始代码和指定的文件。 <br>&nbsp; --root&lt;根目录&gt; 　设置欲当作根目录的目录。 <br>&nbsp; --scripts 　列出安装套件的script的变量。 <br>&nbsp; --setperms 　设置文件的权限。 <br>&nbsp; --setugids 　设置文件的拥有者和所属群组。 <br>&nbsp; --short-circuit 　直接略过指定完成阶段的步骤。<br>&nbsp; --sign 　产生PGP或GPG的签名认证。 <br>&nbsp; --target=&lt;安装平台&gt;+ 　设置产生的套件的安装平台。 <br>&nbsp; --test 　仅作测试，并不真的安装套件。 <br>&nbsp; --timecheck&lt;检查秒数&gt; 　设置检查时间的计时秒数。 <br>&nbsp; --triggeredby&lt;套件档&gt; 　查询该套件的包装者。 <br>&nbsp; --triggers 　展示套件档内的包装script。 <br>&nbsp; --verify 　此参数的效果和指定"-q"参数相同。 <br>&nbsp; --version 　显示版本信息。 <br>&nbsp; --whatprovides&lt;功能特性&gt; 　查询该套件对指定的功能特性所提供的兼容度。 <br>&nbsp; --whatrequires&lt;功能特性&gt; 　查询该套件对指定的功能特性所需要的兼容度。 </p>
<p><br>setenv(set environment variable)</p>
<p>功能说明：查询或显示环境变量。</p>
<p>语　　法：setenv [变量名称][变量值]</p>
<p>补充说明：setenv为tsch中查询或设置环境变量的指令。 </p>
<p><br>setconsole</p>
<p>功能说明：设置系统终端。</p>
<p>语　　法：setconsole [video][serial][ttya][ttyb]</p>
<p>补充说明：setconsole可用来指定系统终端。</p>
<p>参　　数：<br>　serial 　使用PROM终端。 <br>　ttya,cua0或ttyS0 　使用第１个串口设备作为终端。 <br>　ttyb,cua1或ttyS1 　使用第２个串口设备作为终端。 <br>　video 　使用主机上的现卡作为终端。 </p>
<p><br>set</p>
<p>功能说明：设置shell。</p>
<p>语　　法：set [+-abCdefhHklmnpPtuvx]</p>
<p>补充说明：set指令能设置所使用shell的执行方式，可依照不同的需求来做设置。</p>
<p>参　　数：<br>　-a 　标示已修改的变量，以供输出至环境变量。 <br>　-b 　使被中止的后台程序立刻回报执行状态。 <br>　-C 　转向所产生的文件无法覆盖已存在的文件。 <br>　-d 　Shell预设会用杂凑表记忆使用过的指令，以加速指令的执行。使用-d参数可取消。 <br>　-e 　若指令传回值不等于0，则立即退出shell。　　 <br>　-f　 　取消使用通配符。 <br>　-h 　自动记录函数的所在位置。 <br>　-H Shell 　可利用"!"加&lt;指令编号&gt;的方式来执行history中记录的指令。 <br>　-k 　指令所给的参数都会被视为此指令的环境变量。 <br>　-l 　记录for循环的变量名称。 <br>　-m 　使用监视模式。 <br>　-n 　只读取指令，而不实际执行。 <br>　-p 　启动优先顺序模式。 <br>　-P 　启动-P参数后，执行指令时，会以实际的文件或目录来取代符号连接。 <br>　-t 　执行完随后的指令，即退出shell。 <br>　-u 　当执行时使用到未定义过的变量，则显示错误信息。 <br>　-v 　显示shell所读取的输入值。 <br>　-x 　执行指令后，会先显示该指令及所下的参数。 <br>　+&lt;参数&gt; 　取消某个set曾启动的参数。 </p>
<p><br>timeconfig</p>
<p>功能说明：设置时区。</p>
<p>语　　法：timeconfig [--arc][--back][--test][--utc][时区名称]</p>
<p>补充说明：这是Red Hat公司遵循GPL规则所开发的程序，它具有互动式操作界面，您可以轻易地利用方向键和空格键等，设置系统时间所属的时区。</p>
<p>参　　数：<br>　--arc 　使用Alpha硬件结构的格式存储系统时间。 <br>　--back 　在互动式界面里，显示Back钮而非Cancel钮。 <br>　--test 　仅作测试，并不真的改变系统的时区。 <br>　--utc 　把硬件时钟上的时间视为CUT，有时也称为UTC或UCT。 </p>
<p><br>SVGAText Mode</p>
<p>功能说明：加强文字模式的显示画面。</p>
<p>语　　法：SVGATextMode [-acdfhmnrsv][-t &lt;配置文件&gt;][模式]</p>
<p>补充说明：SVGATextMode可用来设置文字模式下的显示画面，包括分辨率，字体和更新频率等。</p>
<p>参　　数：<br>　-a 　如果新显示模式的屏幕大小与原先不同时，SVGATextMode会执行必要的系统设置。 <br>　-c 　维持原有的VGA时脉。 <br>　-d 　执行时会显示详细的信息，供排错时参考。 <br>　-f 　不要执行配置文件中有关字体载入的指令。 <br>　-h 　显示帮助。 <br>　-m 　允许1x1的方式来重设屏幕大小。 <br>　-n 　仅测试指定的模式。 <br>　-r 　通知或重设与屏幕大小相关的程序。 <br>　-s 　显示配置文件中所有可用的模式。 <br>　-t&lt;配置文件&gt; 　指定配置文件。 <br>　-v 　SVGATextMode在配置新的显示模式时，预设会先检查垂直与水平的更新更新频率是否在配置文件所指定的范围内，如果不在范围内，则不设置新的显示模式。 <br>　模式］ 　[模式]参数必须是配置文件中模式的名称。 </p>
<p><br>sndconfig</p>
<p>功能说明：设置声卡。</p>
<p>语　　法：sndconfig [--help][--noautoconfig][--noprobe]</p>
<p>补充说明：sndconfig为声卡设置程序，支持PnP设置，可自动检测并设置PnP声卡。</p>
<p>参 　 数：<br>&nbsp; --help 　显示帮助。 <br>&nbsp; --noautoconfig 　不自动设置PnP的声卡。 <br>&nbsp; --noprobe 　不自动检测PnP声卡。 </p>
<p><br>setup</p>
<p>功能说明：设置公用程序。</p>
<p>语　　法：setup</p>
<p>补充说明：setup是一个设置公用程序，提供图形界面的操作方式。在setup中可设置7类的选项：<br>　１.登陆认证方式 <br>　２.键盘组态设置 <br>　３.鼠标组态设置 <br>　４.开机时所要启动的系统服务 <br>　５.声卡组态设置 <br>　６.时区设置 <br>　７.X Windows组态设置 </p>
<p><br>ulimit</p>
<p><br>功能说明：控制shell程序的资源。</p>
<p>语　　法：ulimit [-aHS][-c &lt;core文件上限&gt;][-d &lt;数据节区大小&gt;][-f &lt;文件大小&gt;][-m &lt;内存大小&gt;][-n &lt;文件数目&gt;][-p &lt;缓冲区大小&gt;][-s &lt;堆叠大小&gt;][-t &lt;CPU时间&gt;][-u &lt;程序数目&gt;][-v &lt;虚拟内存大小&gt;]</p>
<p>补充说明：ulimit为shell内建指令，可用来控制shell执行程序的资源。</p>
<p>参　　数：<br>&nbsp; -a 　显示目前资源限制的设定。 <br>&nbsp; -c &lt;core文件上限&gt; 　设定core文件的最大值，单位为区块。 <br>&nbsp; -d &lt;数据节区大小&gt; 　程序数据节区的最大值，单位为KB。 <br>&nbsp; -f &lt;文件大小&gt; 　shell所能建立的最大文件，单位为区块。 <br>&nbsp; -H 　设定资源的硬性限制，也就是管理员所设下的限制。 <br>&nbsp; -m &lt;内存大小&gt; 　指定可使用内存的上限，单位为KB。 <br>&nbsp; -n &lt;文件数目&gt; 　指定同一时间最多可开启的文件数。 <br>&nbsp; -p &lt;缓冲区大小&gt; 　指定管道缓冲区的大小，单位512字节。 <br>&nbsp; -s &lt;堆叠大小&gt; 　指定堆叠的上限，单位为KB。 <br>&nbsp; -S 　设定资源的弹性限制。 <br>&nbsp; -t &lt;CPU时间&gt; 　指定CPU使用时间的上限，单位为秒。 <br>&nbsp; -u &lt;程序数目&gt; 　用户最多可开启的程序数目。 <br>&nbsp; -v &lt;虚拟内存大小&gt; 　指定可使用的虚拟内存上限，单位为KB。 </p>
<p><br>unset</p>
<p>功能说明：删除变量或函数。</p>
<p>语　　法：unset [-fv][变量或函数名称]</p>
<p>补充说明：unset为shell内建指令，可删除变量或函数。</p>
<p>参 　 数：<br>&nbsp; -f 　仅删除函数。 <br>&nbsp; -v 　仅删除变量。 </p>
<p><br>unalias</p>
<p>功能说明：删除别名。</p>
<p>语　　法：unalias [-a][别名]</p>
<p>补充说明：unalias为shell内建指令，可删除别名设置。</p>
<p>参　　数：<br>&nbsp; -a 　删除全部的别名。<br></p>
<img src ="http://www.phpweblog.net/killjin/aggbug/2359.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-11-21 04:03 <a href="http://www.phpweblog.net/killjin/archive/2007/11/21/2359.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FTP命令行使用精萃</title><link>http://www.phpweblog.net/killjin/archive/2007/11/21/2357.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Tue, 20 Nov 2007 16:49:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/11/21/2357.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2357.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/11/21/2357.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2357.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2357.html</trackback:ping><description><![CDATA[FTP命令是Internet用户使用最频繁的命令之一，不论是在DOS还是UNIX操作系统下使用 FTP，都会遇到大量的FTP内部命令。熟悉并灵活应用FTP的内部命令，可以大大方便使用者，并收到事半功倍之效。<br><br>　　FTP的命令行格式为： ftp -v -d -i -n -g [主机名] ，其中<br><br>　　-v 显示远程服务器的所有响应信息；<br>　　-d 使用调试方式；<br>　　-i 限制ftp的自动登录，即不使用；<br>　　-n etrc文件；<br>　　-g 取消全局文件名。<br><br>　　ftp使用的内部命令如下(中括号表示可选项):<br>　　1. ![cmd[args]]：在本地机中执行交互shell，exit回到ftp环境，如：!ls*.zip。<br><br>　　2. $ macro-ame[args]：执行宏定义macro-name。<br><br>　　3. account[password]：提供登录远程系统成功后访问系统资源所需的补充口令。<br><br>　　4.append local-file[remote-file]：将本地文件追加到远程系统主机，若未指定远程系统文件名，则使用本地文件名。<br><br>　　5. ascii：使用ascii类型传输方式。<br><br>　　6. bell：每个命令执行完毕后计算机响铃一次。<br><br>　　7. bin：使用二进制文件传输方式。<br><br>　　8. bye：退出ftp会话过程。<br><br>　　9. case：在使用mget时，将远程主机文件名中的大写转为小写字母。<br><br>　　10. cd remote-dir：进入远程主机目录。<br><br>　　11. cdup：进入远程主机目录的父目录。<br><br>　　12. chmod mode file-name：将远程主机文件file-name的存取方式设置为mode，如： chmod 777 a.out 。<br><br>　　13. close：中断与远程服务器的ftp会话(与open对应)。<br><br>　　14. cr：使用asscii方式传输文件时，将回车换行转换为回行。<br><br>　　15. delete remote-file：删除远程主机文件。<br><br>　　16. debug[debug-value]：设置调试方式， 显示发送至远程主机的每条命令，如： deb up 3，若设为0，表示取消debug。<br><br>　　17.dir[remote-dir][local-file]：显示远程主机目录，并将结果存入本地文件local-file。<br><br>　　18. disconnection：同close。<br><br>　　19. form format：将文件传输方式设置为format，缺省为file方式。<br><br>　　20. get remote-file[local-file]： 将远程主机的文件remote-file传至本地硬盘的local-file。<br><br>　　21. glob：设置mdelete，mget，mput的文件名扩展，缺省时不扩展文件名，同命令行的-g参数。<br><br>　　22. hash：每传输1024字节，显示一个hash符号(#)。<br><br>　　23. help[cmd]：显示ftp内部命令cmd的帮助信息，如：help get。<br><br>　　24. idle[seconds]：将远程服务器的休眠计时器设为[seconds]秒。<br><br>　　25. image：设置二进制传输方式(同binary)。<br><br>　　26. lcd[dir]：将本地工作目录切换至dir。<br><br>　　27. ls[remote-dir][local-file]：显示远程目录remote-dir， 并存入本地文件local-file。<br><br>　　28. macdef macro-name：定义一个宏，遇到macdef下的空行时，宏定义结束。<br><br>　　29. mdelete[remote-file]：删除远程主机文件。<br><br>　　30. mdir remote-files local-file：与dir类似，但可指定多个远程文件，如： mdir *.o.*.zipoutfile 。<br><br>　　31. mget remote-files：传输多个远程文件。<br><br>　　32. mkdir dir-name：在远程主机中建一目录。<br><br>　　33. mls remote-file local-file：同nlist，但可指定多个文件名。<br><br>　　34. mode[modename]：将文件传输方式设置为modename， 缺省为stream方式。<br><br>　　35. modtime file-name：显示远程主机文件的最后修改时间。<br><br>　　36. mput local-file：将多个文件传输至远程主机。<br><br>　　37. newer file-name： 如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近，则重传该文件。<br><br>　　38. nlist[remote-dir][local-file]：显示远程主机目录的文件清单，并存入本地硬盘的local-file。<br><br>　　39. nmap[inpattern outpattern]：设置文件名映射机制， 使得文件传输时，文件中的某些字符相互转换，如：nmap $1.$2.$3[$1，$2].[$2，$3]，则传输文件a1.a2.a3时，文件名变为a1，a2。该命令特别适用于远程主机为非UNIX机的情况。<br><br>　　40. ntrans[inchars[outchars]]：设置文件名字符的翻译机制，如ntrans1R，则文件名LLL将变为RRR。<br><br>　　41. open host[port]：建立指定ftp服务器连接，可指定连接端口。<br><br>　　42. passive：进入被动传输方式。<br><br>　　43. prompt：设置多个文件传输时的交互提示。<br><br>　　44. proxy ftp-cmd：在次要控制连接中，执行一条ftp命令，该命令允许连接两个ftp服务器，以在两个服务器间传输文件。第一条ftp命令必须为open，以首先建立两个服务器间的连接。<br><br>　　45. put local-file[remote-file]：将本地文件local-file传送至远程主机。<br><br>　　46. pwd：显示远程主机的当前工作目录。<br><br>　　47. quit：同bye，退出ftp会话。<br><br>　　48. quote arg1，arg2...：将参数逐字发至远程ftp服务器，如：quote syst。<br><br>　　49. recv remote-file[local-file]：同get。<br><br>　　50. reget remote-file[local-file]：类似于get，但若local-file存在，则从上次传输中断处续传。<br><br>　　51. rhelp[cmd-name]：请求获得远程主机的帮助。<br><br>　　52. rstatus[file-name]：若未指定文件名，则显示远程主机的状态，否则显示文件状态。<br><br>　　53. rename[from][to]：更改远程主机文件名。<br><br>　　54. reset：清除回答队列。<br><br>　　55. restart marker：从指定的标志marker处，重新开始get或put，如：restart 130。<br><br>　　56. rmdir dir-name：删除远程主机目录。<br><br>　　57. runique：设置文件名唯一性存储。<br><br>　　58. send local-file[remote-file]：同put。<br><br>　　59. sendport：设置PORT命令的使用。<br><br>　　60. site arg1，arg2...：将参数作为SITE命令逐字发送至远程ftp主机。<br><br>　　61. size file-name：显示远程主机文件大小，如：site idle 7200。<br><br>　　62. status：显示当前ftp状态。<br><br>　　63. struct[struct-name]：将文件传输结构设置为struct-name，缺省时使用stream结构。<br><br>　　64. sunique：将远程主机文件名存储设置为唯一(与runique对应)。<br><br>　　65. system：显示远程主机的操作系统类型。<br><br>　　66. tenex：将文件传输类型设置为TENEX机的所需的类型。<br><br>　　67. tick：设置传输时的字节计数器。<br><br>　　68. trace：设置包跟踪。<br><br>　　69. type[type-name]：设置文件传输类型为type-name，缺省为ascii，如：type binary，设置二进制传输方式。<br><br>　　70. umask[newmask]：将远程服务器的缺省umask设置为newmask，如：umask 3。<br>　　71. user user-name[password][account]：向远程主机表明自己的身份，需要口令时，必须输入口令，如：user anonymous my@email。<br><br>　　72. verbose：同命令行的-v参数，即设置详尽报告方式，ftp服务器的所有响应都将显示给用户，缺省为on。<br><br>　　73. ?[cmd]：同help。<br><br>AID编者附注：如果服务器支持，可以使用quote "site pswd oldpassword newpassword"来修改密码<br>
<img src ="http://www.phpweblog.net/killjin/aggbug/2357.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-11-21 00:49 <a href="http://www.phpweblog.net/killjin/archive/2007/11/21/2357.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mysql 重启命令 和 locate命令</title><link>http://www.phpweblog.net/killjin/archive/2007/11/20/2356.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Tue, 20 Nov 2007 14:54:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/11/20/2356.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2356.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/11/20/2356.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2356.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2356.html</trackback:ping><description><![CDATA[<p>$mysql_dir/bin/mysqladmin -u root -p shutdown<br>$mysql_dir/bin/safe_mysqld &amp;<br><br>或者<br><br>killall mysqld<br>mysqld_safe &amp;<br><br>----------------------------------<br>freebsd 文件系统 uts<br>lighttpd 轻量级的 web服务器<br><br>------------------------------locate---------------------<br>名称：locate<br>使用权限：所有使用者<br>使用方式： locate [-q] [-d &lt;path&gt;] [--database=&lt;path&gt;] &lt;search string&gt;<br>locate [-r &lt;regexp&gt;] [--regexp=&lt;regexp&gt;]<br>locate [-qv] [-o &lt;file&gt;] [--output=&lt;file&gt;] <br>locate [-e &lt;dir1,dir2,...&gt;] [-f &lt;fstype1,...&gt;] &lt;[-l &lt;level&gt;] [-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 &lt;dir&gt;<br>建立资料库，-u 会由根目录开始，-U 则可以指定开始的位置。 </p>
<p>-e &lt;dir&gt;<br>将 &lt;dir&gt; 排除在寻找的范围之外。 </p>
<p>-l &lt;level&gt;<br>如果 &lt;level&gt; 是 1．则启动安全模式。在安全模式下，使用者不会看到权限无法看到的档案。这会始速度减慢，因为 locate 必须至实际的档案系统中取得档案的权限资料。 </p>
<p>-f &lt;filetype&gt;<br>将特定的档案系统排除在外，例如我们没有到理要把 proc 档案系统中的档案放在资料库中。 </p>
<p>-q <br>安静模式，不会显示任何错误讯息。 </p>
<p>-n &lt;num&gt;<br>至多显示 &lt;num&gt; 个输出。 </p>
<p>-r &lt;reg&gt;<br>使用正规运算式 &lt;reg&gt; 做寻找的条件。 </p>
<p>-o &lt;file&gt;<br>指定资料库存的名称。 </p>
<p>-d &lt;dir&gt;<br>指定资料库的路径 </p>
<p>-h<br>显示辅助讯息 </p>
<p>-v<br>显示更多的讯息 </p>
<p>-V<br>显示程式的版本讯息 范例： </p>
<p>locate chdrv&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 寻找所有叫 chdrv 的档案<br>locate -n 100 a.out&nbsp;&nbsp;&nbsp;&nbsp; : 寻找所有叫&nbsp; a.out 的档案，但最多只显示 100 个</p>
<p>locate -u&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 建立资料库<br></p>
<img src ="http://www.phpweblog.net/killjin/aggbug/2356.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-11-20 22:54 <a href="http://www.phpweblog.net/killjin/archive/2007/11/20/2356.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RAID+LVM的列举应用</title><link>http://www.phpweblog.net/killjin/archive/2007/11/07/2208.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Wed, 07 Nov 2007 04:17:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/11/07/2208.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2208.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/11/07/2208.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2208.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2208.html</trackback:ping><description><![CDATA[<div id=art style="MARGIN: 15px" width="560">RAID+LVM 应用 /home /var / 目录<br><br>一、创建分区<br><br>fdisk /dev/sdb<br>n<br>t #L文件系统类型更改为 RAID<br><br>fdisk /dev/sdc<br>n<br>t<br><br>fdisk /dev/sdd<br>n<br>t<br><br>＃如果当前磁盘正在使用，需要重起系统。<br><br>二、创建RAID级别5的磁盘阵列<br><br>cp /usr/share/raidtools/raid5.conf /etc/raidtab<br><br>vi /etc/raidtab<br><br>查找device 修改磁盘标识设备<br><br>mkraid /dev/md0<br><br>＃如果磁盘被使用过会出现提示，可使用下面的命令强制执行<br><br>mkraid -f /dev/md0<br>mkraid -r /dev/md0<br><br>三、创建LVM卷<br><br>＃vgscan——可自动产生LVM配置目录<br><br>pvcreate /dev/md0<br><br>vgcreate vg /dev/md0<br><br>#vgdisplay vg&nbsp; 查看配置<br><br>＃RAID 5 磁盘容量 n-1/n<br><br>lvcreate -n home -l 250 vg #-l 分配磁盘块数block&nbsp; -L 分配磁盘容量<br><br>#250 * 4 = 1000 (1G)<br><br>lvcreate -n var -l 250 vg<br><br>mkfs.ext3 /dev/vg/home<br>mkfs.ext3 /dev/vg/var<br><br>mkdir /mnt/home<br>mkdir /mnt/var<br><br>mount /dev/vg/home /mnt/home<br>mount /dev/vg/var /mnt/var<br><br>cp -a /home/* /mnt/home<br>cp -a /var/* /mnt/var<br><br>#df -lh 查看磁盘使用情况<br><br>vi /etc/fstab # 开机自动挂载分区<br><br>/dev/vg/home&nbsp;&nbsp; &nbsp;/home&nbsp;&nbsp; &nbsp;ext3&nbsp;&nbsp; &nbsp;defaults&nbsp;&nbsp; &nbsp;0 0<br>/dev/vg/var&nbsp;&nbsp; &nbsp;/var&nbsp;&nbsp; &nbsp;ext3&nbsp;&nbsp; &nbsp;defaults&nbsp;&nbsp; &nbsp;0 0<br><br>wq<br><br>＃开机自动加载RAID<br>vi /etc/rc.sysinit<br><br>#找到 raid行<br><br>raidstart /dev/md0<br><br>wq<br><br>reboot ＃重启<br><br>四、删除原始/home /var 分区<br><br>mount /dev/sda1 /mnt<br><br>ls /mnt <br><br>rm -rf /mnt/var/*<br>rm -rf /mnt/home/*<br><br>五、增加/home磁盘空间 (250块)<br><br>umount /home<br><br>e2fadm -l +250 /dev/vg/home<br><br>mount /dev/vg/home /home<br><br><br>六、根分区挂载到LVM卷上 /<br><br>ls -l /boot/initrd&#8230;&#8230;.img&nbsp; #&#8230;&#8230;省略版本号<br><br>lvcreate -n root -l 250 vg<br><br>mkfs.ext3 /dev/vg/root<br><br>mount /dev/vg/root /mnt<br><br>cd /mnt<br><br>mkdir proc tmp var home<br><br>mkdir misc opt mnt initrd<br><br>cp -a bin dev etc sbin lib root usr /mnt &amp; # &amp;——后台运行 或 ^Z<br><br># boot 文件不能移动<br><br>#创建新的内核<br><br>lsmod #确认raid5模块，磁盘驱动模块<br><br>mkinitrd /boot/initrd-lvm-$(uname -r).img $(uname -r)<br><br>#也可以使用lvcreate_initrd工具<br><br>file /boot/initrd-lvm-&#8230;&#8230;.img&nbsp; ＃测试新的内核文件<br><br>cd /boot<br><br>mv inited-lvm-&#8230;&#8230;.img initrd-lvm-&#8230;&#8230;.img.gz<br><br>gunzip initrd-lvm-&#8230;&#8230;.img.gz<br><br>mount initrd-lvm-&#8230;&#8230;.img /opt -o loop<br><br>cd /opt<br><br>ls dev&nbsp; #看到 lvm vg 目录<br><br>cp -a /dev/lvm dev/<br>cp -a /dev/vg dev/<br><br>ls dev #找到 lvm vg <br><br>cp -a /dev/sd[bcd] dev<br><br>more linuxrc<br><br>vi linuxrc<br><br>注释 raidautorun<br><br>添加：<br><br>raidstart /dev/md0<br>vgscan<br>vgchange -a y<br><br>wq<br><br>mount -o defaults --ro /dev/vg/root /sysroot<br><br>ls bin<br><br>cp /sbin/vgscan bin/<br>cp /sbin/vgchange bin/<br>cp /sbin/raidstart bin/<br><br>ls bin<br><br>ldd /sbin/raidstart #查找相应库文件<br>ldd /sbin/vgchange<br>ldd /sbin/vgscan<br><br>cd lib<br><br>mkdir tls<br><br>cp /lib/tls/libc.so.6 tls/<br>cp /lib/ld-linux.so.2 ./<br>cp /lib/liblvm-10.s0.1 ./<br><br>ls <br><br>pwd<br><br># /opt/lib<br><br>more linuxrc<br><br>cd ..<br><br>cp /etc/raidtab etc<br><br>ls etc ——# ls /opt/etc<br><br>cd ..<br>umount /opt<br><br>ls -l /boot/initrd-lvm-&#8230;&#8230;.img<br><br>cd /boot<br><br>gzip initrd-lvm-&#8230;&#8230;.img -c -&gt; initrd-lvm-&#8230;&#8230;.img.gz<br><br>vi /boot/grub.conf<br><br>initrd /boot/initrd-lvm-&#8230;&#8230;.gz<br><br>cd /mnt <br><br>vi fatab<br><br>/dev/vg/root&nbsp;&nbsp; &nbsp;/&nbsp;&nbsp; &nbsp;ext3&nbsp;&nbsp; &nbsp;defaults&nbsp;&nbsp; &nbsp;1 1<br><br>wq<br><br>reboot<br><br><br><br>pvmove移除磁盘 </div>
<img src ="http://www.phpweblog.net/killjin/aggbug/2208.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-11-07 12:17 <a href="http://www.phpweblog.net/killjin/archive/2007/11/07/2208.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软RAID和硬RAID的区别</title><link>http://www.phpweblog.net/killjin/archive/2007/11/07/2207.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Wed, 07 Nov 2007 04:13:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/11/07/2207.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2207.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/11/07/2207.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2207.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2207.html</trackback:ping><description><![CDATA[什么是RAID?<br>RAID是英文Redundant Array of Independent Disks的缩写，翻译成中文即为独立磁盘冗余阵列，或简称磁盘阵列。简单的说，RAID是一种把多块独立的硬盘（物理硬盘）按不同方式组合起来形成一个硬盘组（逻辑硬盘），从而提供比单个硬盘更高的存储性能和提供数据冗余的技术。组成磁盘阵列的不同方式成为RAID级别（RAID Levels）。<br>为什么我们采用RAID?<br>那些需要在硬盘上保存大量数据的人(例如 一个普通的管理人员) ，采用 RAID 技术将会很方便。采用 RAID 的主要原因是: <br>&#183; 增强了速度 <br>&#183; 扩容了存储能力(以及更多的便利) <br>&#183; 可高效恢复磁盘 <br>硬RAID与软RAID的区别：<br>什么是硬RAID？<br>通过用硬件来实现RAID功能的就是硬RAID，比如：各种RAID卡，还有主板集成能够做的RAID的都是硬RAID。<br>什么是软RAID?<br>通过用操作系统来完成RAID功能的就是软RAID,比如：在Windows2000操作系统下，用三块硬盘做的RAID5.<br>一、性能 <br>这可能是最重要的一个方面，用RAID就是为了提高性能。从理论上说，使用RAID0可以获得使用单硬盘双倍的速度，用软／硬RAID0都可以接近这个速度。使用软RAID的CPU占用率要高一些，所以在性能上，硬RAID要领先。 <br>二、稳定性 <br>做RAID是为了追求性能，所以一般使用7200rpm的硬盘。而市面上主流7200rpm硬盘的发热量普遍较大，同时在机箱里放上两块，散热就已经是个问题，更何况是三块。毕竟稳定压倒一切，要是硬盘被烧毁就得不偿失了。况且，有些机箱根本放不下三块硬盘。因此使用硬RAID的稳定性要高一些。 <br>三、操作简便性 <br>在Windows2000/2003中实现RAID只需要几个简单的步骤，整个界面都是中文的，即使是对RAID了解不多的人也能实现。如果是用外插的RAID卡话，操作就麻烦多了，操作界面都是英文，还不能使用翻译软件，所以软RAID实现起来更加简便。<br>四、兼容性 <br>到目前为止，只有Windows2000/2003支持软RAID。这就是说，如果你用软RAID，那么你必须放弃Win9x／WinMe／Linux等。硬RAID的兼容性要好一些，甚至可以兼容DOS。如果Windows出了问题，做系统维护就方便多了。<br>五、安全性<br>软RAID安全性不好，当有一块硬盘损坏时，它不能实现重建的功能，而且它的局限性也很在，而硬RAID有硬盘丢失时，它可以实现重建，以及如果RAID卡损坏时，它可以通过更换RAID卡，实现不丢失数据的功能。<br>主板集成RAID与外插RAID卡RAID的区别： <br>一、 性能<br>主板集成的RAID，它的性能以及它的速度是通过主板的CPU与内存来实现的，它会占有主板一定的带宽，会影响整机的性能，而外插RAID卡，它本身由自己的CPU和内存，所以它的数据处理大部分都会由自己处理，不会影响主板上的CPU与内存速度，总体看来，外插的RAID卡的RAID要比主板集成的RAID快得多。<br>二、 安全性<br>主板集成的RAID它的安全性不能够得到保证，比如：我们用P8SCT主板做一个SATA RAID，不论你做RAID几，它是通过更改主板的BIOS选项做成的，所以一旦主板损坏、主板的CMOS电池掉电、无意更改了主板BIOS的设置都会带来RAID的丢失，通过主板做成的RAID，一旦丢失，将会不能恢复，后果是非常严重的，而外插的RAID卡做成的RAID就不会因为主板损坏、主板的CMOS电池掉电等现象对数据造成影响，所以外插的RAID卡，它的安全性远远大于主板集成的。<br>结论：在选择用那种RAID形式时，首先根据客户的需求，整机的价位以及这台机器客户最终用于做什么，几种情况而定。
<img src ="http://www.phpweblog.net/killjin/aggbug/2207.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-11-07 12:13 <a href="http://www.phpweblog.net/killjin/archive/2007/11/07/2207.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>详解Linux环境软RAID 5建立过程</title><link>http://www.phpweblog.net/killjin/archive/2007/11/07/2206.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Wed, 07 Nov 2007 03:51:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/11/07/2206.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2206.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/11/07/2206.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2206.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2206.html</trackback:ping><description><![CDATA[<div><font face=SimHei size=3>1:Raid定义</font></div>
<div><font face=黑体 size=3>&nbsp;&nbsp;<font face=SimSun size=2>RAID,全称Redundant Array of Inexpensive Disks,中文名为廉价磁盘冗余阵列.RAID可分为软RAID和硬RAID,软RAID是通过软件实现多块硬盘冗余的.而硬RAID是一般通过RAID卡来实现RAID的.前者配置简单,管理也比较灵活.对于中小企业来说不失为一最佳选择.硬RAID往往花费比较贵.不过,在性能方面具有一定优势.</font></font></div>
<div><font face=宋体 size=2></font></div>
<div><font face=SimHei size=3>2:RAID分类</font></div>
<div><font face=黑体 size=3>&nbsp;&nbsp;<font face=SimSun size=2>RAID可分为以下几种,做个表格认识下:</font></font></div>
<div>
<table style="WIDTH: 475px; HEIGHT: 228px" cellSpacing=0 cellPadding=0 width=475 border=1>
    <tbody>
        <tr>
            <td width="17%"><font size=2>RAID 0</font></td>
            <td width="83%"><font size=2>存取速度最快 没有容错</font></td>
        </tr>
        <tr>
            <td><font size=2>RAID 1</font></td>
            <td><font size=2>完全容错 成本高,硬盘使用率低.</font></td>
        </tr>
        <tr>
            <td><font size=2>RAID 3</font></td>
            <td><font size=2>写入性能最好 没有多任务功能</font></td>
        </tr>
        <tr>
            <td><font size=2>RAID 4 </font></td>
            <td><font size=2>具备多任务及容错功能 Parity 磁盘驱动器造成性能瓶颈</font></td>
        </tr>
        <tr>
            <td><font size=2>RAID 5</font></td>
            <td><font size=2>具备多任务及容错功能 写入时有overhead</font></td>
        </tr>
        <tr>
            <td><font size=2>RAID 0+1</font></td>
            <td><font size=2>速度快、完全容错 成本高</font></td>
        </tr>
    </tbody>
</table>
</div>
<div></div>
<div><font face=SimHei size=3>3:Linux RAID 5实验详解</font></div>
<div></div>
<div>假设我有4块硬盘,(没有条件的朋友可以用虚拟机设置出4块硬盘出来).分别为/dev/sda&nbsp;&nbsp;&nbsp; /dev/sdb&nbsp;&nbsp;&nbsp; /dev/sdc&nbsp;&nbsp;&nbsp; /dev/sdd.首先做的就是分区了.</div>
<div>
<div style="BORDER-RIGHT: #aaaaaa 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #aaaaaa 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #aaaaaa 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #aaaaaa 1px solid; BACKGROUND-COLOR: #000000"><code><font color=#ffffff><font face=Arial size=2>[root@localhost /]</font><font face=Arial size=2># fdisk /dev/sda<br>Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel<br>Building a new DOS disklabel. Changes will remain in memory only,<br>until you decide to write them. After that, of course, the previous<br>content won't be recoverable.<br>Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)<br>Command (m for help): n #按n创建新分区<br>Command action<br>e extended<br>p primary partition (1-4) #输入p 选择创建主分区<br>p<br>Partition number (1-4): 1 #输入 1 创建第一个主分区<br>First cylinder (1-130, default 1): #直接回车,选择分区开始柱面这里就从 1 开始<br>Using default value 1<br>Last cylinder or +size or +sizeM or +sizeK (1-102, default 130):<br>Using default value 130<br>Command (m for help): w #然后输入w写盘<br>The partition table has been altered!<br>Calling ioctl() to re-read partition table.<br>Syncing disks.</font></font></code><font color=#ffffff></font></div>
</div>
<div></div>
<div>其它分区照这样做全部分出一个区出来.下面是总分区信息:</div>
<div>
<div style="BORDER-RIGHT: #aaaaaa 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #aaaaaa 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #aaaaaa 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #aaaaaa 1px solid; BACKGROUND-COLOR: #000000">
<div><font face=Arial color=#ffffff size=2>[root@localhost /]# <font color=#ffd700>fdisk -l</font><br><font style="BACKGROUND-COLOR: #00ff00"><font style="BACKGROUND-COLOR: #0000cd">Disk /dev/sda</font>:</font> 1073 MB, 1073741824 bytes<br>255 heads, 63 sectors/track, 130 cylinders<br>Units = cylinders of 16065 * 512 = 8225280 bytes</font></div>
<div><font face=Arial color=#ffffff size=2>&nbsp;&nbsp;&nbsp;&nbsp; Device Boot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Start&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Blocks&nbsp;&nbsp;&nbsp;&nbsp; Id&nbsp;&nbsp;&nbsp; System<br>/dev/sda1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 130&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1044193+&nbsp;&nbsp;&nbsp; 83&nbsp;&nbsp;&nbsp; Linux</font></div>
<div><font color=#ffffff size=2><font face=Arial><font style="BACKGROUND-COLOR: #0000cd">Disk /dev/sdb</font>: 1073 MB, 1073741824 bytes<br>255 heads, 63 sectors/track, 130 cylinders<br>Units = cylinders of 16065 * 512 = 8225280 bytes</font></font></div>
<div><font face=Arial color=#ffffff size=2>&nbsp;&nbsp;&nbsp;&nbsp; Device Boot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Start&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Blocks&nbsp;&nbsp;&nbsp;&nbsp; Id&nbsp;&nbsp;&nbsp; System<br>/dev/sdb1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 130&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1044193+&nbsp;&nbsp;&nbsp; 83&nbsp;&nbsp;&nbsp; Linux</font></div>
<div><font color=#ffffff size=2><font face=Arial><font style="BACKGROUND-COLOR: #0000cd">Disk /dev/sdc</font>: 1073 MB, 1073741824 bytes<br>255 heads, 63 sectors/track, 130 cylinders<br>Units = cylinders of 16065 * 512 = 8225280 bytes</font></font></div>
<div><font face=Arial color=#ffffff size=2>&nbsp;&nbsp;&nbsp;&nbsp; Device Boot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Start&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Blocks&nbsp;&nbsp;&nbsp;&nbsp; Id&nbsp;&nbsp;&nbsp; System<br>/dev/sdc1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 130&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1044193+&nbsp;&nbsp;&nbsp; 83&nbsp;&nbsp;&nbsp; Linux</font></div>
<div><font color=#ffffff size=2><font face=Arial><font style="BACKGROUND-COLOR: #0000cd">Disk /dev/sdd</font>: 1073 MB, 1073741824 bytes<br>255 heads, 63 sectors/track, 130 cylinders<br>Units = cylinders of 16065 * 512 = 8225280 bytes</font></font></div>
<div><font color=#ffffff size=2><font face=Arial>&nbsp;&nbsp;&nbsp;&nbsp; Device Boot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Start&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Blocks&nbsp;&nbsp;&nbsp;&nbsp; Id&nbsp;&nbsp;&nbsp; System<br>/dev/sdd1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 130&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1044193+&nbsp;&nbsp;&nbsp; 83&nbsp;&nbsp;&nbsp; Linux</font><br></font></div>
</div>
</div>
<div></div>
<div>下一步就是创建RAID了.</div>
<div>
<div style="BORDER-RIGHT: #aaaaaa 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #aaaaaa 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #aaaaaa 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #aaaaaa 1px solid; BACKGROUND-COLOR: #000000">
<div><font color=#ffffff size=2><font face=Arial>[root@localhost ~]# <font color=#ffd700>mdadm --create /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sd[a-d]1</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style="BACKGROUND-COLOR: #0000cd">#意思是创建RAID设备名为md0, 级别为RAID 5</font><br>mdadm: array /dev/md0 started. </font>&nbsp;&nbsp;&nbsp;<font style="BACKGROUND-COLOR: #0000cd">使</font><font style="BACKGROUND-COLOR: #0000cd">用3个设备建立RAID,空余一个做备用.</font></font></div>
</div>
</div>
<div>OK,初步建立了RAID了,我们看下具体情况吧.</div>
<div>
<div style="BORDER-RIGHT: #aaaaaa 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #aaaaaa 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #aaaaaa 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #aaaaaa 1px solid; BACKGROUND-COLOR: #000000">
<div><font face=Arial color=#ffffff size=2>[root@localhost ~]# <font color=#ffd700>mdadm --detail /dev/md0</font><br>/dev/md0:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Version : 00.90.01<br>&nbsp;&nbsp;&nbsp; Creation Time : Fri Aug&nbsp;&nbsp;&nbsp; 3 13:53:34 2007<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Raid Level : raid5<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Array Size : 2088192 (2039.25 MiB 2138.31 MB)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Device Size : 1044096 (1019.63 MiB 1069.15 MB)<br>&nbsp;&nbsp;&nbsp;&nbsp; Raid Devices : 3<br>&nbsp;&nbsp;&nbsp; Total Devices : 4<br>Preferred Minor : 0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Persistence : Superblock is persistent</font></div>
<div><font face=Arial color=#ffffff size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Update Time : Fri Aug&nbsp;&nbsp;&nbsp; 3 13:54:02 2007<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; State : clean<br>Active Devices : 3<br>Working Devices : 4<br>Failed Devices : 0<br>&nbsp;&nbsp;&nbsp; Spare Devices : 1</font></div>
<div><font face=Arial color=#ffffff size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Layout : left-symmetric<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Chunk Size : 64K</font></div>
<div><font face=Arial color=#ffffff size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Number&nbsp;&nbsp;&nbsp;&nbsp; Major&nbsp;&nbsp;&nbsp;&nbsp; Minor&nbsp;&nbsp;&nbsp;&nbsp; RaidDevice State<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style="BACKGROUND-COLOR: #0000cd"> 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; active sync&nbsp;&nbsp;&nbsp;&nbsp; /dev/sda1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; active sync&nbsp;&nbsp;&nbsp;&nbsp; /dev/sdb1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; active sync&nbsp;&nbsp;&nbsp;&nbsp; /dev/sdc1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 49&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; spare&nbsp;&nbsp;&nbsp;&nbsp; /dev/sdd1<br></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UUID : e62a8ca6:2033f8a1:f333e527:78b0278a<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Events : 0.2</font></div>
</div>
</div>
<div></div>
<div>让RAID开机启动.配置RIAD配置文件吧.默认名字为mdadm.conf,这个文件默认是不存在的,要自己建立.该配置文件存在的主要作用是系统启动的时候能够自动加载软RAID，同时也方便日后管理.</div>
<div>说明下,mdadm.conf文件主要由以下部分组成:DEVICES选项制定组成RAID所有设备, ARRAY选项指定阵列的设备名、RAID级别、阵列中活动设备的数目以及设备的UUID号.</div>
<div>
<div style="BORDER-RIGHT: #aaaaaa 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #aaaaaa 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #aaaaaa 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #aaaaaa 1px solid; BACKGROUND-COLOR: #000000">
<div><font face=Arial color=#ffffff size=2>[root@localhost ~]# <font color=#ffd700>mdadm --detail --scan &gt; /etc/mdadm.conf</font><br>[root@localhost ~]# cat /etc/mdadm.conf<br>ARRAY /dev/md0 level=raid5 num-devices=3 UUID=e62a8ca6:2033f8a1:f333e527:78b0278a<br>&nbsp;&nbsp;&nbsp;&nbsp; devices=/dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1</font></div>
<div><font style="BACKGROUND-COLOR: #0000cd" color=#ffffff>#默认格式是不正确的,需要做以下方式的修改:</font><br><font face=Arial color=#ffffff size=2>[root@localhost ~]# <font color=#ffd700>vi /etc/mdadm.conf</font><br>[root@localhost ~]# cat /etc/mdadm.conf</font></div>
<div><font face=Arial color=#ffffff size=2>devices /dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1<br>ARRAY /dev/md0 level=raid5 num-devices=3 UUID=e62a8ca6:2033f8a1:f333e527:78b0278a<br></font></div>
</div>
</div>
<div></div>
<div>将/dev/md0创建文件系统,</div>
<div>
<div style="BORDER-RIGHT: #aaaaaa 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #aaaaaa 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #aaaaaa 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #aaaaaa 1px solid; BACKGROUND-COLOR: #000000">
<div><font face=Arial color=#ffffff size=2>[root@localhost ~]# <font color=#ffd700>mkfs.ext3 /dev/md0</font><br>mke2fs 1.35 (28-Feb-2004)<br>Filesystem label=<br>OS type: Linux<br>Block size=4096 (log=2)<br>Fragment size=4096 (log=2)<br>261120 inodes, 522048 blocks<br>26102 blocks (5.00%) reserved for the super user<br>First data block=0<br>Maximum filesystem blocks=536870912<br>16 block groups<br>32768 blocks per group, 32768 fragments per group<br>16320 inodes per group<br>Superblock backups stored on blocks:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 32768, 98304, 163840, 229376, 294912</font></div>
<div><font face=Arial color=#ffffff size=2>Writing inode tables: done<br>Creating journal (8192 blocks): done<br>Writing superblocks and filesystem accounting information: done</font></div>
<div><font face=Arial color=#ffffff size=2>This filesystem will be automatically checked every 21 mounts or<br>180 days, whichever comes first.&nbsp;&nbsp;&nbsp; Use tune2fs -c or -i to override.</font>内容</div>
</div>
</div>
<div></div>
<div>挂载/dev/md0到系统中去,我们实验是否可用:</div>
<div>
<div style="BORDER-RIGHT: #aaaaaa 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #aaaaaa 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #aaaaaa 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #aaaaaa 1px solid; BACKGROUND-COLOR: #000000">
<div><font face=Arial color=#ffffff size=2>[root@localhost ~]# cd /<br>[root@localhost /]# mkdir mdadm<br>[root@localhost /]# mount /dev/md0 /mdadm/<br>[root@localhost /]# cd /mdadm/<br>[root@localhost mdadm]# ls<br>lost+found<br>[root@localhost mdadm]# cp /etc/services .<br>[root@localhost mdadm]# ls<br>lost+found&nbsp;&nbsp;&nbsp; services</font></div>
</div>
</div>
<div><font style="BACKGROUND-COLOR: #ffffff" face=Arial color=#ffffff size=2></font></div>
<div><font style="BACKGROUND-COLOR: #ffffff" face=Arial color=#ff00ff size=2>好了,如果其中某个硬盘坏了会怎么样呢?系统会自动停止这块硬盘的工作,然后让后备的那块硬盘顶上去工作.我们可以实验下.</font></div>
<div>
<div style="BORDER-RIGHT: #aaaaaa 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #aaaaaa 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #aaaaaa 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #aaaaaa 1px solid; BACKGROUND-COLOR: #000000">
<div><font face=Arial color=#ffffff size=2>[root@localhost mdadm]# mdadm /dev/md0 --fail /dev/sdc1<br>mdadm: set /dev/sdc1 faulty in /dev/md0<br>[root@localhost mdadm]# cat /proc/mdstat<br>Personalities : [raid5]<br>md0 : active raid5 sdc1[3](F) sdd1[2] sdb1[1] sda1[0] <font style="BACKGROUND-COLOR: #0000cd"># F标签以为此盘为fail.</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2088192 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]</font></div>
<div><font face=Arial color=#ffffff size=2>unused devices: &lt;none&gt;</font></div>
</div>
</div>
<div></div>
<div>如果我要移除一块坏的硬盘或添加一块硬盘呢?</div>
<div>
<div style="BORDER-RIGHT: #aaaaaa 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #aaaaaa 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #aaaaaa 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #aaaaaa 1px solid; BACKGROUND-COLOR: #000000">
<div><font style="BACKGROUND-COLOR: #0000cd" face=Arial color=#ffffff size=2>#删除一块硬盘</font></div>
<div><font face=Arial color=#ffffff size=2>[root@localhost mdadm]# <font color=#ffd700>mdadm /dev/md0 --remove /dev/sdc1</font><br>mdadm: hot removed /dev/sdc1<br>[root@localhost mdadm]# cat /proc/mdstat<br>Personalities : [raid5]<br><font style="BACKGROUND-COLOR: #0000cd">md0 : active raid5 sdd1[2] sdb1[1] sda1[0]</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2088192 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]</font></div>
<div><font face=Arial color=#ffffff size=2>unused devices: &lt;none&gt;</font></div>
<div><font style="BACKGROUND-COLOR: #0000cd" face=Arial color=#ffffff size=2>#增加一块硬盘</font></div>
<div><font face=Arial color=#ffffff size=2>[root@localhost mdadm]# <font color=#ffd700>mdadm /dev/md0 --add /dev/sdc1</font><br>mdadm: hot added /dev/sdc1<br>[root@localhost mdadm]# cat /proc/mdstat<br>Personalities : [raid5]<br><font style="BACKGROUND-COLOR: #0000cd">md0 : active raid5 sdc1[3] sdd1[2] sdb1[1] sda1[0]</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2088192 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]</font></div>
<div><font face=Arial color=#ffffff size=2>unused devices: &lt;none&gt;</font></div>
</div>
</div>
<div></div>
<div>好了,结束了,Boss巡逻过来了.</div>
<img src ="http://www.phpweblog.net/killjin/aggbug/2206.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-11-07 11:51 <a href="http://www.phpweblog.net/killjin/archive/2007/11/07/2206.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下软件包的解压方式大全</title><link>http://www.phpweblog.net/killjin/archive/2007/11/06/2184.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Mon, 05 Nov 2007 18:44:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/11/06/2184.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2184.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/11/06/2184.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2184.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2184.html</trackback:ping><description><![CDATA[<p><strong><font size=+0><font color=#0000ff>.tar</font> </font></strong><br>解包：tar xvf FileName.tar<br>打包：tar cvf FileName.tar DirName<br><font color=#008000>（注：tar是打包，不是压缩！）</font><br>———————————————<br><strong><font size=+0><font color=#0000ff>.gz</font></font></strong><br>解压1：gunzip FileName.gz<br>解压2：gzip -d FileName.gz<br>压缩：gzip FileName<br><strong><font size=+0><font color=#0000ff>.tar.gz 和 .tgz</font></font></strong><br>解压：tar zxvf FileName.tar.gz<br>压缩：tar zcvf FileName.tar.gz DirName<br>———————————————<br><strong><font size=+0><font color=#0000ff>.bz2</font></font></strong><br>解压1：bzip2 -d FileName.bz2<br>解压2：bunzip2 FileName.bz2<br>压缩： bzip2 -z FileName<br><strong><font size=+0><font color=#0000ff>.tar.bz2</font></font></strong><br>解压：tar jxvf FileName.tar.bz2<br>压缩：tar jcvf FileName.tar.bz2 DirName<br>———————————————<br><strong><font size=+0><font color=#0000ff>.bz</font></font></strong><br>解压1：bzip2 -d FileName.bz<br>解压2：bunzip2 FileName.bz<br>压缩：<font color=#ffa500>未知</font><br><strong><font size=+0><font color=#0000ff>.tar.bz</font></font></strong><br>解压：tar jxvf FileName.tar.bz<br>压缩：<font color=#ffa500>未知</font><br>———————————————<br><strong><font size=+0><font color=#0000ff>.Z</font></font></strong><br>解压：uncompress FileName.Z<br>压缩：compress FileName<br><strong><font size=+0><font color=#0000ff>.tar.Z</font></font></strong><br>解压：tar Zxvf FileName.tar.Z<br>压缩：tar Zcvf FileName.tar.Z DirName<br>———————————————<br><strong><font size=+0><font color=#0000ff>.zip</font></font></strong><br>解压：unzip FileName.zip<br>压缩：zip FileName.zip DirName<br>———————————————<br><strong><font size=+0><font color=#0000ff>.rar</font></font></strong><br>解压：rar x FileName.rar<br>压缩：rar a FileName.rar DirName<br><font color=#008000><br>rar请到：<a href="http://www.rarsoft.com/download.htm" target=_blank>http://www.rarsoft.com/download.htm</a> 下载！<br>解压后请将rar_static拷贝到/usr/bin目录（其他由$PATH环境变量指定的目录也可以）：<br>[root@www2 tmp]# cp rar_static /usr/bin/rar</font><br>———————————————<br><strong><font size=+0><font color=#0000ff>.lha</font></font></strong><br>解压：lha -e FileName.lha<br>压缩：lha -a FileName.lha FileName<br><font color=#008000><br>lha请到：<a href="http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/" target=_blank>http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/</a>下载！<br>&gt;解压后请将lha拷贝到/usr/bin目录（其他由$PATH环境变量指定的目录也可以）：<br>[root@www2 tmp]# cp lha /usr/bin/</font><br>———————————————<br><strong><font size=+0><font color=#0000ff>.rpm</font></font></strong><br>解包：rpm2cpio FileName.rpm | cpio -div<br>———————————————<br><strong><font size=+0><font color=#0000ff>.deb</font></font></strong><br>解包：ar p FileName.deb data.tar.gz | tar zxf -<br>———————————————<br><strong><font size=+0><font color=#0000ff>.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea</font></font></strong><br>解压：sEx x FileName.*<br>压缩：sEx a FileName.* FileName<br><font color=#008000><br>sEx只是调用相关程序，本身并无压缩、解压功能，请注意！<br>sEx请到： <a href="http://sourceforge.net/projects/sex" target=_blank>http://sourceforge.net/projects/sex</a>下载！<br>解压后请将sEx拷贝到/usr/bin目录（其他由$PATH环境变量指定的目录也可以）：<br>[root@www2 tmp]# cp sEx /usr/bin/</font></p>
<p><font color=#008000></font></p>
<p><font color=#008000></font></p>
<strong>gzip 命令 </strong>
<p>减少文件大小有两个明显的好处，一是可以减少存储空间，二是通过网络传输文件时，可以减少传输的时间。gzip 是在 Linux 系统中经常使用的一个对文件进行压缩和解压缩的命令，既方便又好用。 </p>
<pre>语法：gzip [选项] 压缩（解压缩）的文件名
</pre>
<p><strong>该命令的各选项含义如下：</strong> </p>
<pre>-c 将输出写到标准输出上，并保留原有文件。
-d 将压缩文件解压。
-l 对每个压缩文件，显示下列字段：
压缩文件的大小；未压缩文件的大小；压缩比；未压缩文件的名字
-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
-t 测试，检查压缩文件是否完整。
-v 对每一个压缩和解压的文件，显示文件名和压缩比。
-num 用指定的数字 num 调整压缩的速度，-1 或 --fast 表示最快压缩方法（低压缩比），
-9 或--best表示最慢压缩方法（高压缩比）。系统缺省值为 6。
</pre>
<p><strong>指令实例：</strong> </p>
<pre>gzip *
% 把当前目录下的每个文件压缩成 .gz 文件。
gzip -dv *
% 把当前目录下每个压缩的文件解压，并列出详细的信息。
gzip -l *
% 详细显示例1中每个压缩的文件的信息，并不解压。
gzip usr.tar
% 压缩 tar 备份文件 usr.tar，此时压缩文件的扩展名为.tar.gz。
</pre><img src ="http://www.phpweblog.net/killjin/aggbug/2184.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-11-06 02:44 <a href="http://www.phpweblog.net/killjin/archive/2007/11/06/2184.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开源或免费虚拟主机管理系统</title><link>http://www.phpweblog.net/killjin/archive/2007/11/06/2183.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Mon, 05 Nov 2007 18:34:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/11/06/2183.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2183.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/11/06/2183.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2183.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2183.html</trackback:ping><description><![CDATA[<p><strong>1. ZPanel - 在Windows下的免费Hosting Panel</strong></p>
<p>网址：<br>http://sourceforge.net/projects/zpanel/<br>http://www.thezpanel.com/</p>
<p>中文讨论：<br>http://www.twftp.org/phpbb/viewtopic.php?t=3104</p>
<p><strong>2. web-cp - *nix的虚拟主机管理</strong></p>
<p>网址：<br>http://sourceforge.net/projects/webcp/<br>http://www.web-cp.net/</p>
<p>中文讨论：<br>http://www.twftp.org/phpbb/viewtopic.php?t=5095</p>
<p><strong>3. VHCS - Virtual Hosting Control System - 一样是*nix系统的，不过比ZPanel还热门喔</strong></p>
<p>网址：<br>http://sourceforge.net/projects/vhcs/<br>http://www.vhcs.net/</p>
<p><strong>其他的：</p>
<p></strong><strong><span id=more-857></span><br></strong>http://sourceforge.net/search/?words=hosting</p>
<p><strong>webmin的虚拟主机管理模块virtualmin- -</strong></p>
<p>webmin是一个可运行于Linux/freebsd的web界面的主机管理系统，本身自带以及有人贡献了不少模块</p>
<p>而virtualmin则是它的一个虚拟主机管理模块，</p>
<p>webmin官方站： http://www.webmin.com/<br>virtaulmin站点： http://www.swelltech.com/virtualmin/</p>
<p><strong>基于php/mysql的虚拟主机控制程序PHPMyWebHosting- -</strong></p>
<p>PHPMyWebHosting是个开源的，基于php/mysql的虚拟主机控制面板程序，你可以用它建立带有邮箱，mysql支持的多域名虚拟主机<br>它须建立在Linux/freebsd之上，不支持windows</p>
<p>安装phpmywebhosting你必须拥有系统管理员(root)权限，并依次安装以下套件：</p>
<p>MySQL<br>Apache and PHP<br>Postfix<br>Maildrop<br>Courier<br>ProFTPd<br>PHPMyWebHosting</p>
<p>官方站上有基于各平台详细的安装说明 http://www.ladse.de</p>
<p>phpmywebhosting下载：http://www.ladse.de/index.php/Files</p>
<p><strong>SysCP虚拟主机管理系统[全php版]- -</strong></p>
<p>1.有中文包<br>2.admin,reseller,client 三级管理<br>3.全部为php代码构成<br>4.有不少模块(modules)供选择安装<br>5.开源，免费（基于GPL）<br>6.Linux/bsd环境，特别是debian(最初是专为它开发的)</p>
<p>是德国人写的，有简体中文,英文,法文，德文语言包，是多语言的</p>
<p>用户界面：</p>
<p>管理员界面：</p>
<p>具有以下特性：</p>
<p>Customer Interface<br>managing email accounts<br>managing email forwarders<br>managing subdomains<br>managing mysql databases<br>managing additional ftp account<br>managing .htaccess password protections for directories<br>managing path options for example directorylisting<br>Admin Interface:<br>managing of customers: you can define exactly what kind of resources your customers get (e.g. amount of pop accounts, amount of mysql databases etc.)<br>manage domains: you can individualy edit zone files and directory index per domain<br>支持以下配套服务器或引擎：</p>
<p>webserver: [Apache 1.3] with [PHP4] (apache2.0.x也可以)<br>mail transfer agent: [Postfix]<br>pop/imap server: [Courier]<br>ftp server: [ProFTPd]<br>database server: [MySQL]<br>nameserver: [Bind9]<br>traffic accounting and statistics: [Webalizer]</p>
<p>官方站：http://www.syscp.de/<br>下载：http://www.syscp.de/wiki/EnDownloads<br>模块下载：http://modules.syscp.de/<br>在线演示：http://www.syscp.de/onlinedemo/index.php</p>
<p>现在最新版是Version 1.2.7, 2005.2.11推出的</p>
<img src ="http://www.phpweblog.net/killjin/aggbug/2183.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-11-06 02:34 <a href="http://www.phpweblog.net/killjin/archive/2007/11/06/2183.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开源的主机管理系统/虚拟主机控制面板</title><link>http://www.phpweblog.net/killjin/archive/2007/11/06/2182.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Mon, 05 Nov 2007 18:31:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/11/06/2182.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2182.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/11/06/2182.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2182.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2182.html</trackback:ping><description><![CDATA[
  <p>Linux/BSD/MacOSX下开放源代码的主机管理系统控制面板,包括VHCS,Web-CP <br>
      <br>
  </p>
  <p>open source hosting control panel(开源主机控制面板）ISPConfig/RavenCore<br>
    Control   Panel Software for shared, reseller, virtual and dedicated server   managemen（共享主机独立服务器管理控制面板软件)VHCS<br>
    System Control Panel is a server   administration tool(服务器管理工具:系统控制面板)SysCP<br>
    open source web hosting control   panel(开源web主机管理控制面板)Web-CP<br>
    maintaining commercial (PayPal) or free (with   header, footer and pop-up) webhosting serve(维护商业或者免费web主机服务器)WHT<br>
    ISPMan is a   distributed system to manage components of ISP from a central management   interface.（ISPMan)<br>
    a web hosting management package(GNU Hosting Helper   GPL)<br>
    A GPL web control panel for admin and accounting hosting   services<br>
    OpenSource ISP management and Hosting Control Panel </p>
  <h2>总体评价</h2>
  <p>用户群最多的 VHCS. 而 Web-CP,DTC和SysCp也都有许多用户 </p>
  <p>功能最强大的 GNU Hosting Helper 支持机群，文档，订单 </p>
  <p>单机版本功能最强大的是ISPConfig </p>
  <p>结构最好的 SysCP, 采用类似结构的有Web-Cp,DTC,VHCS<br>
  </p>
  <p>结论：大型IDC，推荐GNU Hosting Helper,备选ISPMan<br>
                
    单台主机，推荐 VHCS2,备选   Web-CP,DTC,ISPConfig,WHT,RavenCore(推荐程度依次降低,其实这几个系统都不错，看个人的喜好了)<br>
             
DTC是一个即适合单机使用，也适合集群使用的主机管理系统，Apple欧洲公司就是选用这套系统在Mac OS X上使用    </p>
  <h3>共性（所有主机管理系统实现的功能)</h3>
  1.资源限制:磁盘限额，网络带宽(对并发数限制都做得不好)
  <p>2.建立一个a domain时, apache 和mta 会自动配置 </p>
  <p>3.用户可以增加子域名 </p>
  <p>4.用户可以设置邮件别名和转发 </p>
  <p>5.用户可以建立和管理ftp用户 </p>
  <p>6.所有的东西都会放到MySQL数据库里面，然后有些信息会从数据库 生成到 配置文件.conf </p>
  <p>7.支持用户界面的本地化，尽管很多都没有相应的语言包 </p>
  <p>8.一个GUI的前端写数据到数据库中，一个后台守护进程从数据库读取配置信息写道配置文件，或者建立相关的目录/文件 </p>
  <h2>缺点</h2>
  文档不完善<br>
  控制不够详细<br>
  没有订单系统,或者不够完善和CMS系统新闻发布等一个IDC所需要的东西（有部分系统实现了这两个个功能)<br>
  有些不支持域名注册API借口<br>
  有些不支持Paypal等电子支付借口<strong><br>
    有些不支持多服务器(部分系统实现多机管理，如ISPMan,GHH)<br>
  <br>
  </strong>只有GNU   Hosting Helper用Perl实现了所有功能，是目前最强大的 虚拟主机集群管理系统<br>
  <br>
  <br>
  <br>
  <h2>虚拟主机控制面板介绍</h2>
  <h3>ISPConfig</h3>
  包很大,因为要自己编译一个Apache和PHP(18MB)，安装程序编译一个带PHP5支持的Apache运行在81端口，不会影响到已经安装的Apache<br>
  特色功能:反垃圾邮件   IPTable防火墙 Shell 服务管理（重启，关闭）<br>
  5级管理体系   系统管理员---&gt;销售代理----&gt;客户---&gt;站点---&gt;站点用户(包括Shell,FTP,Mail用户，相互独立）<br>
  Shell-访问 <br>
  回收站（可以删除代理，客户，站点，站点用户）<br>
  邮件扫描   (反病毒)<br>
  服务管理，防火墙管理<br>
  <br>
  用两个Apache,资源消耗得比较厉害，PHP的变量，数组下标用德文，MySQL字段名也是德文<br>
  <a href="http://www.ispconfig.com/">http://www.ispconfig.com/</a><br>
  ISPConfig安装方法 <a href="http://www.upsdn.net/html/2005-11/601.html">http://www.upsdn.net/html/2005-11/601.html</a>
  <h3><a title="VHCS" href="http://wiki.aboutsledge.net/index.php/VHCS">VHCS</a></h3>
  <p> 用Perl和C实现核心功能，PHP实现界面,也使用cron </p>
  <p> 较慢，修改设置和开设新空间时很明显,可能因为与使用cron调度人物有关<br>
      <a href="http://www.vhcs.net/">http://www.vhcs.net/</a><br>
    VHCS2安装方法 <a href="http://www.upsdn.net/html/2005-11/602.html">http://www.upsdn.net/html/2005-11/602.html</a> </p>
  <h3>SysCP</h3>
  <p>自定义 服务配置，完全用PHP实现（需要PHP CLI支持，一个Cron 会从数据库中查看任务队列的人物，调用exec来执行) </p>
  <p> 多语言支持的方式不好，客户管理功能较弱<br>
    <a href="http://www.syscp.de/">http://www.syscp.de/</a> </p>
  <h3>Web-CP</h3>
  用PHP－CLI写的一个Web服务器<br>
  支持多种脚本Scripting PHP,sun   asp,cf,perl...<br>
  支持shell access<br>
  支持 SSI<br>
  支持.htacess<br>
  支持多种DNS服务   bind,powerdns,mydns,tinydns  <br>
  完全使用PHP开发，支持Shell Access<br>
 
要安装PHP   CLI(Command-LIne ) 控制面板的后端服务器 server/webcp.php 和 httpd服务器 server/webcp-httpd.php   都需要 PHP CLI二进制支持，以便能够操作系统进程   <br>
  <p>个人：个人信息，密码，邮件,ftp </p>
  <p>域:允许域的所有者在该域下增删用户，设定别名，子域名，数据库 </p>
  <p>销售商:增加domain </p>
  <p>服务器: 监视服务，管理服务 </p>
  <a href="http://www.web-cp.net/">http://www.web-cp.net/</a><br>
  <h3>DTC</h3>
    <p>支持MacOS 支持Tucows gTLD registrar API 支持服务管理 Daemon Configuration 支持PayPal   Payment gateway<br>
    </p>
    <p>为所有支持的服务生成配置文件。所有要作的是就是控制配置文件如何生成。 一个cron脚本很将没隔10分钟启动一次，来验证   些配置文件是否合法，已经重新装载指定的服务 </p>
    <p>DTC分3个主要的目录. 管理控制台 (一般在 /usr/share/dtc/admin,但也有一些系统, 例如bsd，在   /usr/local/share...)是你的主服务器web界面。在这里，你可以可控制所有托管在你服务器上的站点. </p>
    <p>客户目录 (一般在 /usr/share/dtc/client)   是所有的虚拟主机管理员自己自己配置他们站点的地方.如果你不想给虚拟主机管理员以删除站点的权限,你可以不要它。因为所有的用户模块都显示在 管理控制台里 </p>
    <p>在标准的发行中， dtc安装 root 控制台到 http[s]://dtc.yourdomain-name.com/dtcadmin/,   客户控制台和客户控制面板http[s]://dtc.yourdomain-name.com/dtc/. </p>
    <p>Don't bare to customise the generation scripts under   /usr/shared/dtc/admin/inc/gen_*.php, add SSL, remove or add aliases, etc... </p>
    <p>当所有的安装完成之后，你可增加一个虚拟主机管理员到你的机器。然后你可以增加一个域名给虚拟主机管理员。 </p>
    <p>可以从 root控制台调用PHP脚本来生成配置文件，然后手动重新载入服务(named, qmail-send, and apache) . 当然你还可以   rely on /usr/share/dtc/admin/cron.php 脚本,   所有的事情都会帮你自动做好<br>
        <br>
      DTC和Webmin最大的不同是，webmin有一个服务（一个服务器，一个模块配置这个服务器）。DTC没有相应的东西，他在一个通用的借口上控制所有的任务。举个例子来说，当一个管理原增加一个域名到DTC，apache   bind和qmail的所有配置都会被更新<br>
      <br>
      DTC写入所有的主机信息到一个MySQL数据库。然后重新用数据库里的这些信息来生成apache   qmail和bind的配置文件。 </p>
    <p><a href="http://www.gplhost.com/">http://www.gplhost.com/</a><br>
      DTC安装方法 <a href="http://www.upsdn.net/html/2005-11/604.html">http://www.upsdn.net/html/2005-11/604.html</a> </p>
  <h3>PHPMyWebHosting</h3>
  <p>有许多商业的虚拟主机管理程序 (如 <a title="http://www.sw-soft.com/de/products/confixx/" href="http://www.sw-soft.com/de/products/confixx/" rel="nofollow">Confixx</a> (<em>http://www.sw-soft.com/de/products/confixx/</em>), <a title="http://www.sw-soft.com/de/products/hspcomplete/" href="http://www.sw-soft.com/de/products/hspcomplete/" rel="nofollow">HSPcomplete</a> (<em>http://www.sw-soft.com/de/products/hspcomplete/</em>), <a title="http://www.sw-soft.com/de/products/plesk/" href="http://www.sw-soft.com/de/products/plesk/" rel="nofollow">Plesk</a> (<em>http://www.sw-soft.com/de/products/plesk/</em>)   以及 <a title="http://www.pd-admin.de/" href="http://www.pd-admin.de/" rel="nofollow">PD-Admin</a> (<em>http://www.pd-admin.de/</em>)) </p>
  <p>但是他们需要花费大量的钱，并且你必须做许多修改才能让他们运行。有时候他们需要root权限来运行<br>
    同Sarge的apache2集成，不需要root权限<br>
  </p>
  <p> 主要用PHP（也用perl写一些小工具)，用SH控制apache重新启动 不需要root权限 </p>
  <p> 内容与执行逻辑没有分离,怀疑建立的虚拟主机目录权限有问题(mkdir chmod 777)<br>
    <a href="http://pmwh.ckvsoft.at/index.php/Main_Page">http://pmwh.ckvsoft.at/index.php/Main_Page</a> </p>
  <h3>Multihoster</h3>
  一个14岁的帅小伙子开发的虚拟主机系统，允许每个用户的目录有多个层次:yousite.com/usrname
  <p>支持 IP黑名单，在header和footer插入广告的功能，适合免费虚拟主机，但部分系统依赖于Cpanel和其他系统，整个系统不是很成熟<br>
    <a href="http://www.multihoster.com/">http://www.multihoster.com/</a> </p>
  <h3><a title="WHT" href="http://wiki.aboutsledge.net/index.php/WHT">WHT</a></h3>
  <a href="http://wht.sourceforge.net/">http://wht.sourceforge.net/</a><br>
  WHT   带paypal接口，可以为免费空间发广告<br>
  支持商业主机（Paypal接口) 免费主机(header, footer 和 pop-up广告）可以为   ftp访问 建立系统用户帐号, 可以为一个用户建立多个虚拟主机和子域名，为每个域建立多个邮件帐号 <br>
  <h3>RavenCore(推荐RMP包管理系统使用，如Fedora COre,Red   Hat,TurboLinux)<br>
  </h3>
  对RPM包管理的Linux发行版支持得很好，但结构个人觉得不死很好，如果用RMP包管理系统的，推荐用这个<br>
  功能之强大，和ISPConfig有得比<br>
  <br>
  管理面板地址http://your_ip:8000<br>
  管理功能：用户，主机，邮件，数据库，DNS<br>
  系统服务：状态查看，重启，关闭<br>
  服务器：重启，关闭<br>
 
文件管理    自定义错误文档  站点统计 磁盘限额   <br>
  <a href="http://www.ravencore.com/">http://www.ravencore.com/</a>
  <h3>VirtualMin</h3>
  <a href="http://www.swelltech.com/virtualmin/">http://www.swelltech.com/virtualmin/</a> WebMin相当强大,但作为其一个模块的Virtualmin相对其他虚拟主机管理程序来讲就比较简陋了<br>
  <br>
  <br>
  <h3>ZPanel</h3>
  支持Windows下的Apache，我不喜欢Windows，也就不作介绍了,其实它是非常流行的<br>
  <a href="http://www.thezpanel.com/">http://www.thezpanel.com/</a>
  <h3>VHost</h3>
  这个也太简单了，前台一个文件vhost.php，后台一个文件vhost.pl<br>
  帮助你开2个站点没有问题，用于常规使用就不行了<br>
  <a href="http://chaogic.com/vhost/">http://chaogic.com/vhost/</a><br>
  <h3>AlternC</h3>
  基于Debian GNU/Linux系统 ('Sarge'版本) 法国人开发的，不算太成熟<br>
    <p>deb <a href="http://debian.alternc.org/" rel="nofollow">http://debian.alternc.org</a></p>
  <br>
  <br>
  <br>
  <br>
  下面这两个系统   可以管理多台主机，适合大型IDC<br>
  <h3>ISPMan</h3>
  一个分布式ISP实现方案，实施该系统大概需要5个工作日，包括在3～5台机器上的软件安装 <br>
  <a href="http://www.ispman.net/">http://www.ispman.net/</a><br>
  <p>邮件功能很强大 </p>
  <p>1.邮件过滤器管理 </p>
  <p>2.每个域，每个用户进行反垃圾邮件控制 </p>
  <p>3.每个域，每个用户进行病毒扫描 </p>
  <p>4.基于邮件地址或主题的黑名单和白名单 </p>
  <p>5.邮件转寄和自动回复 </p>
  <p>用户结构完善 <br>
    1.每个域的终端用户: 收寄邮件，设置转寄/过滤/自动回复 </p>
  <p>2.域管理员 管理域用户,DNS,虚拟主机,邮件列表，访问控制 </p>
  <p>3.ISP客户 一个ISP的客户可以是一个或者多个域名的拥有者。 可以管理属于他的多个域 </p>
  <p>4.销售商 是一个小型的ISP，他可以把你的服务卖给他的客户 </p>
  <p>5.ISP 管理员 </p>
  <h3>GNU Hosting Helper（做IDC隆重推荐此系统）</h3>
  <p>支持分布式管理，也就是在 多个服务器都只需要一个管理员控制面板和一个客户控制面板 </p>
  <p><a href="http://www.hostingsoftware.net/" rel="nofollow">http://www.hostingsoftware.net/</a><br>
  </p>
  <p>用Perl编写，功能非常之强大：<br>
  </p>
  <p>管理服务器的进程 </p>
  <p>安全管理 </p>
  <p>服务器监视 </p>
  <p>帮助中心 </p>
  <p>知识库 </p>
  <p>新闻管理 </p>
  <p>Fraudscreen </p>
  <p>域管理 </p>
  <p>用户管理 </p>
  <p>订单客户管理 </p>
  <p>软件包管理 </p>
  <p>管理主机的服务 </p>
  <p>邮件服务器管理 </p>
  <p>域名服务器管理 </p>
  <p>注册服务器管理 </p>
  <p>服务器池管理 </p>
  <p>系统配置管理（管理IP别名） </p>

    <p><strong>几乎可以支持目前开源世界所有的服务器软件</strong> </p>
  <p> </p>
  <h3><a title="AlternC" href="http://wiki.aboutsledge.net/index.php/AlternC"><br>
  </a></h3>
  还有一个基于Linux-Virutal-Server项目的虚拟服务器，也是多服务器，但跟一般IDC所理解的不一样，有兴趣也可去看看<br>
  http://www.linux-vserver.org/<br>
  <a href="http://www.openhosting.com/">http://www.openhosting.com/</a>（OpenVPS)
**********************************************************************<br>
  <a href="http://www.neo.com.tw/archives/000055.html">http://www.neo.com.tw/archives/000055.html</a>
          虛擬主機控制台 WHM   軟體一覽
          <p>WHM 全名是 WebHost   Manager，不過目前因為太忙，還沒時間做簡介及評比，但是以下幾種都是國外網友推薦不錯的，當然這些大部份都是要付費的軟體，有的沒有多國語言，所以先提供給有在找這方面資訊的人。</p>
          <a name="more"></a>
            <p><strong>cPanel (國內最多人用，中文語系完整)</strong><br>
              http://www.cpanel.net/</p>
          <p>[ED2K下載]<br>
            RedHat 版<br>
            <a href="ed2k://|file|cpanel-redhat7.3-install.tar|79032320|01E47B439D0EE5CD5BD62DF18D90B4BF|/">cpanel-redhat7.3-install.tar</a><br>
            <a href="ed2k://|file|Cpanel-7.1.0-RELEASE.20-Linux-i686-glibc-2.1.tar.gz|10044856|D56D0BC634C6D7EE49BB19193D5D1A58|/">Cpanel-7.1.0-RELEASE   20-Linux-i686-glibc-2.1 tar.gz</a><br>
            <a href="ed2k://|file|cpanel.tar.gz|33980579|AD26D5DF1BA1B3C2D3CDCD064E90CE28|/">cpanel.tar.gz</a><br>
            FreeBSD   版<br>
            <a href="ed2k://|file|cpanel-freebsd4.7-install.tar.gz|16530043|38607DF3752A0956F4E39C48386A355D|/">cpanel-freebsd4.7-install.tar.gz</a></p>
          <p><br>
              <strong>DirectAdmin</strong><br>
            http://www.directadmin.com/</p>
          <p><strong>plesk (有 Windows、Linux   版，有多國語言，但似乎只有簡體中文)</strong><br>
            http://www.sw-soft.com/en/products/plesk/</p>
          <p>[官方免費版本] (僅支援單一Domain)<br>
            <a href="http://www.sw-soft.com/en/download">http://www.sw-soft.com/en/download</a></p>
          <p>[ED2K下載]<br>
            Red Hat 版<br>
            <a href="ed2k://|file|Plesk_6.0.1_.for_Red_Hat_9.0_by_rhodan.zip|75216046|6FE730D2FBD5B8846DE625719485B787|/">Plesk_6.0.1_   for_Red_Hat_9.0_by_rhodan.zip</a><br>
            <a href="ed2k://|file|SWsoft.PLESK.v6.0.1.Linux-AGAiN_.tar|72704000|9B0412F9444C4571217349CD59833916|/">SWsoft.PLESK.v6.0.1.Linux-AGAiN_.tar</a><br>
            Windows   版<br>
            <a href="ed2k://|file|[PC-APPS].Plesk.6.5.build.031125.18.[Win200x].exe|180961792|4B39168CA94C7F6E3CD19642D4B4408A|/">[PC-APPS]   Plesk 6.5 build 031125.18 [Win200x].exe</a></p>
          <p><strong>Ensim</strong><br>
            http://www.ensim.com/</p>
          <p><strong>H-SPHERE</strong><br>
            http://www.psoft.net/</p>
http://vbb3.twftp.org/archive/index.php/f-57.html<img src ="http://www.phpweblog.net/killjin/aggbug/2182.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-11-06 02:31 <a href="http://www.phpweblog.net/killjin/archive/2007/11/06/2182.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux逻辑盘卷管理LVM详解</title><link>http://www.phpweblog.net/killjin/archive/2007/11/05/2180.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Mon, 05 Nov 2007 13:15:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/11/05/2180.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2180.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/11/05/2180.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2180.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2180.html</trackback:ping><description><![CDATA[<h3>　　一、 前言</h3>
<p>　　每个Linux使用者在安装Linux时都会遇到这样的困境：在为系统分区时，如何精确评估和分配各个硬盘分区的容量，因为系统管理员不但要考虑到当前某个分区需要的容量，还要预见该分区以后可能需要的容量的最大值。因为如果估计不准确，当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区，然后恢复数据到新分区。</p>
<p>&nbsp;&nbsp;&nbsp; 虽然现在有很多动态调整磁盘的工具可以使用，例如Partation Magic等等，但是它并不能完全解决问题，因为某个分区可能会再次被耗尽；另外一个方面这需要重新引导系统才能实现，对于很多关键的服务器，停机是不可接受的，而且对于添加新硬盘，希望一个能跨越多个硬盘驱动器的文件系统时，分区调整程序就不能解决问题。</p>
<p>&nbsp;&nbsp;&nbsp; 因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整，可以方便实现文件系统跨越不同磁盘和分区。幸运的是Linux提供的逻辑盘卷管理（LVM，Logical Volume Manager）机制就是一个完美的解决方案。</p>
<p>&nbsp;&nbsp;&nbsp; LVM是逻辑盘卷管理（Logical Volume Manager）的简称，它是Linux环境下对磁盘分区进行管理的一种机制，LVM是建立在硬盘和分区之上的一个逻辑层，来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区，如：将若干个磁盘分区连接为一个整块的卷组（volume group），形成一个存储池。管理员可以在卷组上随意创建逻辑卷组（logical volumes），并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小，并且可以对磁盘存储按照组的方式进行命名、管理和分配，例如按照使用用途进行定义：&#8220;development&#8221;和&#8220;sales&#8221;，而不是使用物理磁盘名&#8220;sda&#8221;和&#8220;sdb&#8221;。而且当系统添加了新的磁盘，通过LVM管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间，而是直接扩展文件系统跨越磁盘即可。</p>
<h3><font size=+0>　　二、 LVM基本术语</font></h3>
<p>&nbsp;&nbsp;&nbsp; 前面谈到，LVM是在磁盘分区和文件系统之间添加的一个逻辑层，来为文件系统屏蔽下层磁盘分区布局，提供一个抽象的盘卷，在盘卷上建立文件系统。首先我们讨论以下几个LVM术语：<br></p>
<ul>
    <li><strong>物理存储介质（The physical media）</strong><br>这里指系统的存储设备：硬盘，如：/dev/hda1、/dev/sda等等，是存储系统最低层的存储单元。 <br>
    <li><strong>物理卷（physical volume）</strong><br>物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID)，是LVM的基本存储逻辑块，但和基本的物理存储介质（如分区、磁盘等）比较，却包含有与LVM相关的管理参数。 <br>
    <li><strong>卷组（Volume Group）</strong><br>LVM卷组类似于非LVM系统中的物理硬盘，其由物理卷组成。可以在卷组上创建一个或多个&#8220;LVM分区&#8221;（逻辑卷），LVM卷组由一个或多个物理卷组成。 <br>
    <li><strong>逻辑卷（logical volume）</strong><br>LVM的逻辑卷类似于非LVM系统中的硬盘分区，在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。 <br>
    <li><strong>PE（physical extent）</strong><br>每一个物理卷被划分为称为PE(Physical Extents)的基本单元，具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的，默认为4MB。 <br>
    <li><strong>LE（logical extent）<br></strong>逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中，LE的大小和PE是相同的，并且一一对应。 <br></li>
</ul>
<p align=center><img title=Linux系统逻辑盘卷管理LVM详细介绍 style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" height=81 alt=Linux系统逻辑盘卷管理LVM详细介绍 src="http://www.phpweblog.net/images/phpweblog_net/killjin/10.jpg" width=246 align=no border=0></p>
<br>
<p>&nbsp;&nbsp;&nbsp; 首先可以看到，物理卷（PV）被由大小等同的基本单元PE组成。</p>
<br>
<p align=center><img title=Linux系统逻辑盘卷管理LVM详细介绍 style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" height=99 alt=Linux系统逻辑盘卷管理LVM详细介绍 src="http://www.phpweblog.net/images/phpweblog_net/killjin/11.jpg" width=318 align=no border=0></p>
<br>
<p>&nbsp;&nbsp;&nbsp; 一个卷组由一个或多个物理卷组成，</p>
<br>
<p align=center><img title=Linux系统逻辑盘卷管理LVM详细介绍 style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" height=218 alt=Linux系统逻辑盘卷管理LVM详细介绍 src="http://www.phpweblog.net/images/phpweblog_net/killjin/12.jpg" width=329 align=no border=0></p>
<br>
<p>&nbsp;&nbsp;&nbsp; 从上图可以看到，PE和LE有着一一对应的关系。逻辑卷建立在卷组上。逻辑卷就相当于非LVM系统的磁盘分区，可以在其上创建文件系统。</p>
<br>
<p>&nbsp;&nbsp;&nbsp; 下图是磁盘分区、卷组、逻辑卷和文件系统之间的逻辑关系的示意图：</p>
<br>
<p align=center><img style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000" height=292 alt="" src="http://www.phpweblog.net/images/phpweblog_net/killjin/9.jpg" width=328 border=1></p>
<br>
<p>&nbsp;&nbsp;&nbsp; 和非LVM系统将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样，逻辑卷以及卷组相关的元数据也是保存在位于物理卷起始处的VGDA(卷组描述符区域)中。VGDA包括以下内容： PV描述符、VG描述符、LV描述符、和一些PE描述符 。</p>
<p>&nbsp;&nbsp;&nbsp; 系统启动LVM时激活VG，并将VGDA加载至内存，来识别LV的实际物理存储位置。当系统进行I/O操作时，就会根据VGDA建立的映射机制来访问实际的物理位置。</p>
<h3><font size=+0>　　三、 安装LVM</font></h3>
<p>&nbsp;&nbsp;&nbsp; 首先确定系统中是否安装了lvm工具：</p>
<p>&nbsp;&nbsp;&nbsp; [root@www root]# rpm &#8211;qa|grep lvm<br>&nbsp;&nbsp;&nbsp; lvm-1.0.3-4</p>
<p>&nbsp;&nbsp;&nbsp; 如果命令结果输入类似于上例，那么说明系统已经安装了LVM管理工具；如果命令没有输出则说明没有安装LVM管理工具，则需要从网络下载或者从光盘装LVM rpm工具包。</p>
<p>&nbsp;&nbsp;&nbsp; 安装了LVM的RPM软件包以后，要使用LVM还需要配置内核支持LVM。RedHat默认内核是支持LVM的，如果需要重新编译内核，则需要在配置内核时，进入Multi-device Support (RAID and LVM)子菜单，选中以下两个选项： </p>
<p>　
<li>Multiple devices driver support (RAID and LVM) <br>　　&lt;*&gt; Logical volume manager (LVM) Support
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 然后重新编译内核，即可将LVM的支持添加到新内核中。</p>
<p>&nbsp;&nbsp;&nbsp; 为了使用LVM，要确保在系统启动时激活LVM，幸运的是在RedHat7.0以后的版本，系统启动脚本已经具有对激活LVM的支持，在/etc/rc.d/rc.sysinit中有以下内容：</p>
<blockquote>
<p># LVM initialization<br>if [ -e /proc/lvm -a -x /sbin/vgchange -a -f /etc/lvmtab ]; then<br>action &#8194;$"Setting up Logical Volume Management:" /sbin/vgscan &amp;&amp; /sbin/vgchange -a y<br>fi</p>
</blockquote>
<p>&nbsp;&nbsp;&nbsp; 其中关键是两个命令，vgscan命令实现扫描所有磁盘得到卷组信息，并创建文件卷组数据文件/etc/lvmtab和/etc/lvmtab.d/*；vgchange -a y命令激活系统所有卷组。</p>
<h3><font size=+0>　　四、 创建和管理LVM</font></h3>
<p>　　要创建一个LVM系统，一般需要经过以下步骤：</p>
<h4>　　1、 创建分区</h4>
<p>&nbsp;&nbsp;&nbsp; 使用分区工具（如：fdisk等）创建LVM分区，方法和创建其他一般分区的方式是一样的，区别仅仅是LVM的分区类型为8e。</p>
<h4>　　2、 创建物理卷</h4>
<p>&nbsp;&nbsp;&nbsp; 创建物理卷的命令为pvcreate，利用该命令将希望添加到卷组的所有分区或者磁盘创建为物理卷。将整个磁盘创建为物理卷的命令为：</p>
<blockquote>
<blockquote>
<p># pvcreate /dev/hdb</p>
</blockquote></blockquote>
<p>　　将单个分区创建为物理卷的命令为：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # pvcreate /dev/hda5</p>
<h4>　　3、 创建卷组</h4>
<p>&nbsp;&nbsp;&nbsp; 创建卷组的命令为vgcreate，将使用pvcreate建立的物理卷创建为一个完整的卷组：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # vgcreate web_document /dev/hda5 /dev/hdb</p>
<p>&nbsp;&nbsp;&nbsp; vgcreate命令第一个参数是指定该卷组的逻辑名：web_document。后面参数是指定希望添加到该卷组的所有分区和磁盘。vgcreate在创建卷组 web_document 以外，还设置使用大小为4 MB的PE（默认为4MB），这表示卷组上创建的所有逻辑卷都以 4 MB 为增量单位来进行扩充或缩减。由于内核原因，PE大小决定了逻辑卷的最大大小，4 MB 的PE决定了单个逻辑卷最大容量为 256 GB，若希望使用大于256G的逻辑卷则创建卷组时指定更大的PE。PE大小范围为8 KB 到 512 MB，并且必须总是 2 的倍数（使用-s指定，具体请参考man vgcreate）。</p>
<h4>　　4、 激活卷组</h4>
<p>&nbsp;&nbsp;&nbsp; 为了立即使用卷组而不是重新启动系统，可以使用vgchange来激活卷组：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # vgchange -a y web_document</p>
<h4>　　5、 添加新的物理卷到卷组中</h4>
<p>&nbsp;&nbsp;&nbsp; 当系统安装了新的磁盘并创建了新的物理卷，而要将其添加到已有卷组时，就需要使用vgextend命令：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # vgextend web_document /dev/hdc1</p>
<p>&nbsp;&nbsp;&nbsp; 这里/dev/hdc1是新的物理卷。</p>
<h4>　　6、 从卷组中删除一个物理卷</h4>
<p>&nbsp;&nbsp;&nbsp; 要从一个卷组中删除一个物理卷，首先要确认要删除的物理卷没有被任何逻辑卷正在使用，就要使用pvdisplay命令察看一个该物理卷信息：</p>
<br>
<p align=center><img title=Linux系统逻辑盘卷管理LVM详细介绍 style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" height=299 alt=Linux系统逻辑盘卷管理LVM详细介绍 src="http://www.phpweblog.net/images/phpweblog_net/killjin/13.jpg" width=356 align=no border=0></p>
<br>
<p>&nbsp;&nbsp;&nbsp; 如果某个物理卷正在被逻辑卷所使用，就需要将该物理卷的数据备份到其他地方，然后再删除。删除物理卷的命令为vgreduce：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # vgreduce web_document /dev/hda1</p>
<h4>　　7、 创建逻辑卷</h4>
<p>&nbsp;&nbsp;&nbsp; 创建逻辑卷的命令为lvcreate：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # lvcreate -L1500 &#8211;nwww1 web_document</p>
<p>&nbsp;&nbsp;&nbsp; 该命令就在卷组web_document上创建名字为www1，大小为1500M的逻辑卷，并且设备入口为/dev/web_document/www1（web_document为卷组名，www1为逻辑卷名）。如果希望创建一个使用全部卷组的逻辑卷，则需要首先察看该卷组的PE数，然后在创建逻辑卷时指定：</p>
<blockquote>
<p># vgdisplay web_document| grep "Total PE"<br>Total PE 45230<br># lvcreate -l 45230 web_document -n www1</p>
</blockquote>
<h4>　　8、 创建文件系统</h4>
<p>&nbsp;&nbsp;&nbsp; 笔者推荐使用reiserfs文件系统，来替代ext2和ext3：</p>
<p align=center><img title=Linux系统逻辑盘卷管理LVM详细介绍 style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" height=441 alt=Linux系统逻辑盘卷管理LVM详细介绍 src="http://www.phpweblog.net/images/phpweblog_net/killjin/14.jpg" width=498 align=no border=0></p>
<p>&nbsp;&nbsp;&nbsp; 创建了文件系统以后，就可以加载并使用它：</p>
<blockquote>
<blockquote>
<p># mkdir /data/wwwroot<br># mount /dev/web_document/www1 /data/wwwroot</p>
</blockquote></blockquote>
<p>　　如果希望系统启动时自动加载文件系统，则还需要在/etc/fstab中添加内容：</p>
<blockquote>
<blockquote>
<p>/dev/web_document/www1 /data/wwwroot reiserfs defaults 1 2</p>
</blockquote></blockquote>
<h4>　　9、 删除一个逻辑卷</h4>
<p>　　删除逻辑卷以前首先需要将其卸载，然后删除：</p>
<blockquote>
<p># umount /dev/web_document/www1<br># lvremove /dev/web_document/www1<br>lvremove -- do you really want to remove "/dev/web_document/www1"? [y/n]: y<br>lvremove -- doing automatic backup of volume group "web_document"<br>lvremove -- logical volume "/dev/web_document/www1" successfully removed</p>
</blockquote>
<h4>　　10、 扩展逻辑卷大小</h4>
<p>　　LVM提供了方便调整逻辑卷大小的能力，扩展逻辑卷大小的命令是lvcreate：</p>
<blockquote>
<p># lvextend -L12G /dev/web_document/www1<br>lvextend -- extending logical volume "/dev/web_document/www1" to 12 GB<br>lvextend -- doing automatic backup of volume group "web_document "<br>lvextend -- logical volume "/dev/web_document/www1" successfully extended</p>
</blockquote>
<p>　　上面的命令就实现将逻辑卷www1的大小扩招为12G。</p>
<blockquote>
<p># lvextend -L+1G /dev/web_document/www1<br>lvextend -- extending logical volume "/dev/web_document/www1" to 13 GB<br>lvextend -- doing automatic backup of volume group "web_document "<br>lvextend -- logical volume "/dev/web_document/www1" successfully extended</p>
</blockquote>
<p>　　上面的命令就实现将逻辑卷www1的大小增加1G。</p>
<p>&nbsp;&nbsp;&nbsp; 增加了逻辑卷的容量以后，就需要修改文件系统大小以实现利用扩充的空间。笔者推荐使用reiserfs文件系统来替代ext2或者ext3。因此这里仅仅讨论reiserfs的情况。Reiserfs文件工具提供了文件系统大小调整工具：resize_reiserfs。对于希望调整被加载的文件系统大小：</p>
<p>&nbsp;&nbsp;&nbsp; # resize_reiserfs -f /dev/web_document/www1</p>
<p>&nbsp;&nbsp;&nbsp; 一般建议最好将文件系统卸载，调整大小，然后再加载：</p>
<blockquote>
<p># umount /dev/web_document/www1<br># resize_reiserfs /dev/web_document/www1<br># mount -treiserfs /dev/web_document/www1 /data/wwwroot</p>
</blockquote>
<p>　　对于使用ext2或ext3文件系统的用户可以考虑使用工具</p>
<p>　　ext2resize。<font color=#000000>http://sourceforge.net/projects/ext2resize</font></p>
<p>　　11、 减少逻辑卷大小</p>
<p>　　使用lvreduce即可实现对逻辑卷的容量，同样需要首先将文件系统卸载：</p>
<blockquote>
<p># umount /data/wwwroot<br># resize_reiserfs -s-2G /dev/web_document/www1<br># lvreduce -L-2G /dev/web_document/www1<br># mount -treiserfs /dev/web_document/www1 /data/wwwroot</p>
</blockquote>
<h2><font size=+0>　　五、 总结</font></h2>
<p>　　根据上面的讨论可以看到，LVM具有很好的可伸缩性，使用起来非常方便。可以方便地对卷组、逻辑卷的大小进行调整，更进一步调整文件系统的大小。如果希望了解更多信息，请参考LVM-HOWTO。</p>
</li>
<img src ="http://www.phpweblog.net/killjin/aggbug/2180.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-11-05 21:15 <a href="http://www.phpweblog.net/killjin/archive/2007/11/05/2180.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>centos 5.0 编译安装apache 2.2.6+php5.2.5+mysql5.0.46+Zend Optimizer 3.3.0+eacc</title><link>http://www.phpweblog.net/killjin/archive/2007/11/04/2169.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Sun, 04 Nov 2007 10:37:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/11/04/2169.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2169.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/11/04/2169.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2169.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2169.html</trackback:ping><description><![CDATA[<div class=t_msgfont id=postmessage_1394>V2.0 2007年10月14日 操作系统更新为<strong><font color=#ff0000>centos</font></strong> <strong><font color=#ff0000>5.0</font></strong>&nbsp;&nbsp;apache 更新为2.2.6版本， php更新为5.2.5,增加集成Suhosin补丁，mysql 更新为<strong><font color=#ff0000>5.0</font></strong>.46, Zend Optimizer 更新为3.3.0。解决新平台下的一些问题。修正文字错误。<br><br>v1.2 2007年2月12日 apache 更新为2.2.4版本，增加mod_ssl和openssl支持，增加apr和apr-util的编译， php更新为5.2.1,增加集成Suhosin补丁，mysql 更新为<strong><font color=#ff0000>5.0</font></strong>.33, Zend Optimizer 更新为3.2.2，增加phpmyadmin。修改一些文字错误。<br><br>v1.0 2007年1月11日<br><br>先声明，我绝对是个Linux的菜鸟，以下的这些文字个人的安装笔记，是参考了网上许多高手的成功经验组合而成的，说实话我自己的东西不多 ：）我想把这些经验写下来，既可以对其他跟我一样摸索的兄弟一个经验，也可以防止以后自己都忘记了，嘿嘿。<br><br>所以如果某个大虾看到我借用了你的资源，请你不要生气。也欢迎大家进行指点。<br><br>1、下载<strong><font color=#ff0000>centos</font></strong> 5<br>我是下载的DVD版本，大家也可以下载服务器CD安装版本，其实都差不多。大家可以到这儿下载，速度很快的。<br><a href="http://ftp.iasi.roedu.net/mirrors/centos.org/5/isos/i386/CentOS-5.0-i386-bin-DVD.iso" target=_blank>http://ftp.iasi.roedu.net/mirror ... .0-i386-bin-DVD.iso</a><br><br>当然也可以在windows下用BT或迅雷下载，速度也很不错的。<br><br>下载后当然就刻录成光盘。我建议你刻录DVD啦，如果是菜鸟，也可以在图形界面进行学习，不会这么抓不住头脑。<br><br>2、（1）安装CentOS 5<br>作为服务器，不安装不需要的组件，所以在选择组件的时候，除了选择FTP SERVER外取消所有组件的选择。也不要选web服务器。因为我们后面要手动<strong><font color=#ff0000>编译安装</font></strong>。<br><br><br>系统约定RPM包和源码包存放位置<br><br>RPM包和源码包存放位置 /usr/local/src<br>源码包<strong><font color=#ff0000>编译安装</font></strong>位置(prefix) /usr/local/xxx<br>脚本以及维护程序存放位置 /usr/local/sbin<br>MySQL 数据库位置 /var/lib/mysql<br>Apache 网站根目录 /home/www<br>Apache 虚拟主机日志根目录 /data/logs/www<br>yum RPM包信息文件 /etc/yum.list<br><br>3、系统环境部署及调整<br><br>（1）. 检查系统是否正常<br># more /var/log/messages //检查有无系统内核级错误信息<br># demesg //检查硬件设备是否有错误信息<br># ifconfig //检查网卡设置是否正确<br># ping <a href="http://www.163.com/" target=_blank>www.163.com</a> // 检查网络是否正常<br><br>（2）. 关闭不需要的服务<br># export LANG='en_US' //设置语言<br># setup //选择启动的服务<br>进入system service 选项。<br>以space 键选定所需服务。<br>以下仅列出需要启动的服务，未列出的服务一律关闭：<br>crond<br>irqbalance 仅当服务器CPU为S.M.P架构或支持双核心、HT技术时，才需开启，否则关闭。<br>microcode_ctl<br>network<br>vsftpd<br>sshd<br>syslog<br><br>（3）、修改/etc/yum.repos.d/CentOS-Base.repo，将镜象站点地址改为在中国的镜象站点地址。不然我们通过yum安装软件速度会极慢。修改如下：<br><br># CentOS-Base.repo<br>#<br># This file uses a new mirrorlist system developed by Lance Davis for CentOS.<br># The mirror system uses the connecting IP address of the client and the<br># update status of each mirror to pick mirrors that are updated to and<br># geographically close to the client.&nbsp;&nbsp;You should use this for CentOS updates<br># unless you are manually picking other mirrors.<br>#<br># If the mirrorlist= does not work for you, as a fall back you can try the <br># remarked out baseurl= line instead.<br>#<br>#<br><br>[base]<br>name=CentOS-$releasever - Base<br>baseurl=http://mirror.be10.com/<strong><font color=#ff0000>centos</font></strong>/$releasever/os/$basearch/<br>gpgcheck=1<br>gpgkey=http://mirror.<strong><font color=#ff0000>centos</font></strong>.org/<strong><font color=#ff0000>centos</font></strong>/RPM-GPG-KEY-CentOS-5<br>protect=1<br><br>#released updates <br>[updates]<br>name=CentOS-$releasever - Updates<br>baseurl=http://mirror.be10.com/<strong><font color=#ff0000>centos</font></strong>/$releasever/updates/$basearch/<br>gpgcheck=1<br>gpgkey=http://mirror.<strong><font color=#ff0000>centos</font></strong>.org/<strong><font color=#ff0000>centos</font></strong>/RPM-GPG-KEY-CentOS-5<br>protect=1<br><br>#packages used/produced in the build but not released<br>[addons]<br>name=CentOS-$releasever - Addons<br>baseurl=http://mirror.be10.com/<strong><font color=#ff0000>centos</font></strong>/$releasever/addons/$basearch/<br>gpgcheck=1<br>gpgkey=http://mirror.<strong><font color=#ff0000>centos</font></strong>.org/<strong><font color=#ff0000>centos</font></strong>/RPM-GPG-KEY-CentOS-5<br>protect=0<br><br>#additional packages that may be useful<br>[extras]<br>name=CentOS-$releasever - Extras<br>baseurl=http://mirror.be10.com/<strong><font color=#ff0000>centos</font></strong>/$releasever/extras/$basearch/<br>gpgcheck=1<br>gpgkey=http://mirror.<strong><font color=#ff0000>centos</font></strong>.org/<strong><font color=#ff0000>centos</font></strong>/RPM-GPG-KEY-CentOS-5<br>protect=0<br><br>#additional packages that extend functionality of existing packages<br>[<strong><font color=#ff0000>centos</font></strong>plus]<br>name=CentOS-$releasever - Plus<br>baseurl=http://mirror.be10.com/<strong><font color=#ff0000>centos</font></strong>/$releasever/<strong><font color=#ff0000>centos</font></strong>plus/$basearch/<br>gpgcheck=1<br>enabled=0<br>gpgkey=http://mirror.<strong><font color=#ff0000>centos</font></strong>.org/<strong><font color=#ff0000>centos</font></strong>/RPM-GPG-KEY-CentOS-5<br>protect=1<br><br>#contrib - packages by Centos Users<br>[contrib]<br>name=CentOS-$releasever - Contrib<br>baseurl=http://mirror.be10.com/<strong><font color=#ff0000>centos</font></strong>/$releasever/contrib/$basearch/<br>gpgcheck=1<br>enabled=0<br>protect=0<br>gpgkey=http://mirror.<strong><font color=#ff0000>centos</font></strong>.org/<strong><font color=#ff0000>centos</font></strong>/RPM-GPG-KEY-CentOS-5<br><br>#packages in testing<br>[testing]<br>name=CentOS-5 - Testing<br>baseurl=http://mirror.be10.com/<strong><font color=#ff0000>centos</font></strong>/5/testing/i386/<br><br>gpgcheck=1<br>enabled=0<br>protect=0<br><br><br>保存。<br><br>（2）更新系统，我们使用yum,<br><br>然后执行：<br># yum upgrade<br>建议更新所有列出的程序，rhel 5.X的稳定性还要继续努力呢。<br><br><br>（4）、定时校正服务器时间<br># yum install ntp<br># crontab -e<br>0 23 * * * root /usr/sbin/ntpdate 210.72.145.44 &gt; /dev/null 2&gt;&amp;1<br><br>以上命令设置好后存盘。您的机器将在每天的23:00根据中国国家授时中心的NTP服务器时间自动校准时间。<br><br>(5). 对TCP/IP网络参数进行调整，加强抗SYN Flood能力<br># echo 'net.ipv4.tcp_syncookies = 1' &gt;&gt; /etc/sysctl.conf //将net.ipv4.tcp_syncookies = 1写入sysctl.conf 文件<br># sysctl -p //查看<br><br>（6）、FTP服务器的配置<br>vi /etc/vsftpd/vsftpd.conf<br>把anonymous_enable=YES注释掉不允许匿名登录。<br>把chroot_list_enable=YES<br>chroot_list_file=/etc/vsftpd.chroot_list<br>前的注释去掉。<br>把ftpd_banner=*前的注释去掉。后面改成你的欢迎信息(这样设置可以避免显示ftp服务器的版本信息)<br>然后保存，service vsftpd start就可以了。<br><br>这时应当添加用户，因为root默认不能通过FTP方式登录。<br><br># adduser username<br># passwd userpassword<br><br>这样对于我们上传一些文件到系统中很方便。<br><br><br>4. 重新启动系统<br># init 6<br><br><br>5. 使用 yum 程序安装所需开发包（以下为标准的 RPM 包名称）<br># yum install gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel zlib-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel openssl-devel libxml2-devel<br><br>#这里我们将编译GD所必须的一些小软件比如libpng,libtiff,freetype,libjpeg,等先用RPM的方式一并安装好，避免手动编译浪费时间，同时也能避免很多错误，这几个小软件的编译很麻烦。这几个小软件编译错误了，GD当然安装不了，php5的编译当然也没戏了。所以我们抓大放小，对这些小牛鬼蛇神采取快速简洁的方式进行安装。并且对服务器的性能也不能产生什么影响。<br>另外libxml2系统已经默认安装了，所以我们不需要手工编译了，直接安装它的开发包就行了。<br><br>6. 源码<strong><font color=#ff0000>编译安装</font></strong>所需包 (Source)<br>(1) GD2<br># cd /usr/local/src<br># wget <a href="http://www.boutell.com/gd/http/gd-2.0.34.tar.gz" target=_blank>http://www.boutell.com/gd/http/gd-2.0.34.tar.gz</a><br># tar xzvf gd-2.0.34.tar.gz<br># cd gd-2.0.34<br># CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" ./configure --prefix=/usr/local/gd2 --mandir=/usr/share/man //./configure 配置。<br><br># make //make 是用来编译的，它从 Makefile 中读取指令，然后编译。<br># make install //make install 是用来安装的，它也从 Makefile 中读取指令，安装到指定的位置。<br><br>(2) Apache 日志截断程序<br># cd /usr/local/src<br># wget <a href="http://cronolog.org/download/cronolog-1.6.2.tar.gz" target=_blank>http://cronolog.org/download/cronolog-1.6.2.tar.gz</a><br># tar xzvf cronolog-1.6.2.tar.gz<br># cd cronolog-1.6.2<br># ./configure --prefix=/usr/local/cronolog<br># make<br># make install<br><br><br>7、编译mysql <strong><font color=#ff0000>5.0</font></strong>.46<br>mysql <strong><font color=#ff0000>5.0</font></strong>.46是企业版本，貌似双数版本都是企业版本了。个人觉得代码质量要比社区版本要好一些。大家可以下载，免费使用。并不需要向mysql公司交钱。<br><br>cd /usr/local/src<br># wget <a href="http://mirror.provenscaling.com/mysql/enterprise/source/5.0/mysql-5.0.46.tar.gz" target=_blank>http://mirror.provenscaling.com/ ... mysql-<strong><font color=#ff0000>5.0</font></strong>.46.tar.gz</a><br># tar xzvf mysql-<strong><font color=#ff0000>5.0</font></strong>.46.tar.gz<br># cd mysql-<strong><font color=#ff0000>5.0</font></strong>.46<br><br>修改mysql 客户端最大连接数， 默认的只有100,远远达不到我们的要求。<br><br># vi sql/mysqld.cc<br><br>搜索找到下面一行：<br>{"max_connections", OPT_MAX_CONNECTIONS,<br>"The number of simultaneous clients allowed.", (gptr*) &amp;max_connections,<br>(gptr*) &amp;max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1,<br>0},<br><br>将其中的100改为1500, 当然小点也可以，根据你的需要来，不建议改的太大。<br><br>{"max_connections", OPT_MAX_CONNECTIONS,<br>"The number of simultaneous clients allowed.", (gptr*) &amp;max_connections,<br>(gptr*) &amp;max_connections, 0, GET_ULONG, REQUIRED_ARG, 1500, 1, 16384, 0, 1,<br>0},<br><br>保存。<br><br># CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" ./configure --prefix=/usr/local/mysql --localstatedir=/var/lib/mysql --with-comment=Source --with-server-suffix=-enterprise-gpl --with-mysqld-user=mysql --without-debug --with-big-tables --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=all --with-pthread --enable-static --enable-thread-safe-client --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --enable-assembler --without-innodb --without-ndb-debug --without-isam<br><br><br>配置成功会提示：<br><br>MySQL has a Web site at <a href="http://www.mysql.com/" target=_blank>http://www.mysql.com/</a> which carries details on the<br>latest release, upcoming features, and other information to make your<br>work or play with MySQL more productive. There you can also find<br>information about mailing lists for MySQL discussion.<br><br>Remember to check the platform specific part of the reference manual for<br>hints about installing MySQL on your platform. Also have a look at the<br>files in the Docs directory.<br><br>Thank you for choosing MySQL!<br><br>// 注意 ，CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" 这个环境参数只针对intel P4 芯片，如果你的CPU是AMD的，注意不能使用。请查看相应的编译优化参数。否则程序会无法编译，即使编译成功也无法运行，嘿嘿。<br><br>关于其他CPU的优化请看我的BLOG的一篇转贴：<br><a href="http://www.cnprint.org/bbs/blogs/1/blog43.html" target=_blank>http://www.cnprint.org/bbs/blogs/1/blog43.html</a><br><br><br># make<br>编译的时间可能会比较长，毕竟优化的比较厉害。<br><br># make install<br><br><strong><font color=#ff0000>编译安装</font></strong>完成后执行后续操作：<br># useradd mysql //添加 mysql 用户<br># cd /usr/local/mysql<br># bin/mysql_install_db --user=mysql<br># chown -R root:mysql . //设置权限，注意后面有一个 "."<br># chown -R mysql /var/lib/mysql //设置 mysql 目录权限<br># chgrp -R mysql . //注意后面有一个 "."<br># cp share/mysql/my-medium.cnf /etc/my.cnf<br># cp share/mysql/mysql.server /etc/rc.d/init.d/mysqld //开机自动启动 mysql。<br># chmod 755 /etc/rc.d/init.d/mysqld<br># chkconfig --add mysqld<br># /etc/rc.d/init.d/mysqld start //启动 MySQL<br># bin/mysqladmin -u root password "password_for_root"<br># service mysqld stop //关闭 MySQL<br><br>8. <strong><font color=#ff0000>编译安装</font></strong> Apache<br># cd /usr/local/src<br># wget <a href="http://www.ip97.com/apache.org/httpd/httpd-2.2.6.tar.gz" target=_blank>http://www.ip97.com/apache.org/httpd/httpd-2.2.6.tar.gz</a><br># tar zxvf httpd-2.2.6.tar.gz<br># cd httpd-2.2.6<br><br>依次安装apr和apr-util<br><br># cd srclib/apr<br># CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" ./configure --prefix=/usr/local/apr --enable-threads --enable-other-child --enable-static<br># make &amp;&amp; make install<br><br># cd ../apr-util<br># CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ --with-mysql=/usr/local/mysql<br># make &amp;&amp; make install<br><br>cd /usr/local/src/httpd-2.2.6<br># CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" ./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --with-mysql=/usr/local/mysql --enable-cache --enable-file-cache --enable-mem-cache --enable-disk-cache --enable-static-support --enable-static-htpasswd --enable-static-htdigest --enable-static-rotatelogs --enable-static-logresolve --enable-static-htdbm --enable-static-ab --enable-static-checkgid --disable-cgid --disable-cgi --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --enable-ssl --with-ssl=/usr/include/openssl<br><br># make<br># make install<br># echo '/usr/local/apache2/bin/apachectl start ' &gt;&gt; /etc/rc.local //将 apachectl 的调用加入到你的系统启动文件中。<br><br>注解：<br>./configure //配置源代码树<br>--prefix=/usr/local/apache2 //体系无关文件的顶级安装目录PREFIX ，也就Apache的安装目录。<br>--enable-module=so //打开 so 模块，so 模块是用来提 DSO 支持的 apache 核心模块<br>--enable-mods-shared=all //编译全部的模板，对于不需要我们可以在httpd.conf去掉。<br>--enable-cache //支持缓存<br>--enable-file-cache //支持文件缓存<br>--enable-mem-cache //支持记忆缓存<br>--enable-disk-cache //支持磁盘缓存<br>--enable-static-support //支持静态连接(默认为动态连接)<br>--enable-static-htpasswd //使用静态连接编译 htpasswd - 管理用于基本认证的用户文件<br>--enable-static-htdigest //使用静态连接编译 htdigest - 管理用于摘要认证的用户文件<br>--enable-static-rotatelogs //使用静态连接编译 rotatelogs - 滚动 Apache 日志的管道日志程序<br>--enable-static-logresolve //使用静态连接编译 logresolve - 解析 Apache 日志中的IP地址为主机名<br>--enable-static-htdbm //使用静态连接编译 htdbm - 操作 DBM 密码数据库<br>--enable-static-ab //使用静态连接编译 ab - Apache HTTP 服务器性能测试工具<br>--enable-static-checkgid //使用静态连接编译 checkgid<br>--disable-cgid //禁止用一个外部 CGI 守护进程执行CGI脚本<br>--disable-cgi //禁止编译 CGI 版本的 PHP<br>--enable-ssl // 编译 ssl模块。<br><br>我们不再使用worker模式编译apache，worker模式和php貌似有一些不协调不稳定之处。所以使用了默认的perfork模式。<br><br>将apache设置成开机自启动:<br><br>在/etc/rc.d/rc.local文件中加入一行<br>/usr/local/apache2/bin/apachectl start<br>这样每次重新启动系统以后,apache也会随系统一起启动.<br><br>或者<br># cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd<br>然后 vi /etc/rc.d/init.d/httpd 添加(#!/bin/sh下面)<br># chkconfig: 2345 10 90<br># description: Activates/Deactivates Apache Web Server<br>最后，运行chkconfig把Apache添加到系统的启动服务组里面：<br># chkconfig --add httpd<br># chkconfig httpd on<br><br><br>9、编译php 5.2.5-devel。<br>php 5.2.4有点小BUG，无法在<strong><font color=#ff0000>centos</font></strong> 5上正常编译，官方已经在php5.2.5中修复了。所以我们使用php 5.2.5进行编译。<br>Suhosin是php增强型安全补丁，可以编译到静态内核中，也可以编译成php动态扩展。我个人强烈你建议安装成静态内核。Suhosin已经进入freebsd和gentoo的ports。下面的以下先说静态安装步骤。当然你也可以在安装php后将它编译成php的动态扩展。<br><br># cd /usr/local/src<br># wget <a href="http://cn.php.net/get/php-5.2.5.tar.gz/from/this/mirror" target=_blank>http://cn.php.net/get/php-5.2.5.tar.gz/from/this/mirror</a><br>wget <a href="http://www.hardened-php.net/suhosin/_media/suhosin-patch-5.2.5-0.9.6.2.patch.gz" target=_blank>http://www.hardened-php.net/suho ... .5-0.9.6.2.patch.gz</a><br># tar zxvf php-5.2.5.tar.gz<br># gunzip suhosin-patch-5.2.1-0.9.6.2.patch.gz<br># cd php-5.2.5<br><br># CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-pear=/usr/share/php --with-zlib-dir --with-bz2 --with-libxml-dir=/usr --with-gd=/usr/local/gd2 --enable-gd-native-ttf --enable-gd-jis-conv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-ttf=shared,/usr --enable-mbstring --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/etc --with-iconv --disable-ipv6 --enable-static --enable-maintainer-zts --enable-zend-multibyte --enable-inline-optimization --enable-zend-multibyte --enable-sockets --enable-soap --with-openssl<br><br>配置成功会提示：<br><br>+--------------------------------------------------------------------+<br>| License:&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;|<br>| This software is subject to the PHP License, available in this&nbsp; &nbsp;&nbsp;&nbsp;|<br>| distribution in the file LICENSE.&nbsp;&nbsp;By continuing this installation |<br>| process, you are bound by the terms of this license agreement.&nbsp; &nbsp;&nbsp;&nbsp;|<br>| If you do not agree with the terms of this license, you must abort |<br>| the installation process at this point.&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; |<br>+--------------------------------------------------------------------+<br><br>Thank you for using PHP.<br><br><br># make<br><br># make install<br><br># cp php.ini-recommended /etc/php.ini<br><br><br>在这里也顺便说一下将suhosin安装成为php的动态扩展的方法。毕竟网上根本不见它的中文安装教程。<br><br>虽然我个人不推荐这种方式。<br><br>wget <a href="http://www.hardened-php.net/suhosin/_media/suhosin-0.9.16.tgz" target=_blank>http://www.hardened-php.net/suhosin/_media/suhosin-0.9.16.tgz</a><br>tar zxvf suhosin-0.9.16.tgz<br>cd suhosin-0.9.16<br>./configure --with-php-config=/usr/local/php/bin/php-config<br>make<br>make install<br><br>会提示编译的模块存在的目录，记住它。<br>Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/<br><br>然后在php.ini中增加一行下列语句。<br>extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/suhosin.so<br><br>10 、整合apache 与php<br># vi /usr/local/apache2/conf/httpd.conf<br>在最后一行加上：<br>AddType application/x-httpd-php .php<br><br>查找：(设置 WEB 默认文件)<br>DirectoryIndex index.html<br>替换为：<br>DirectoryIndex index.php index.html index.htm //在 WEB 目录不到默认文件，httpd 就会执行 /var/www/error/noindex.html<br><br>找到这一段：<br># AllowOverride controls what directives may be placed in .htaccess files.<br># It can be "All", "None", or any combination of the keywords:<br># Options FileInfo AuthConfig Limit<br>#<br>AllowOverride none<br><br>更改为AllowOverride all<br>允许apache rewrite<br><br># 监听443端口,支持https连接<br>取消注释 httpd.conf 中的 Include conf/extra/httpd-ssl.conf<br><br>保存httpd.conf，退出。<br><br># /usr/local/apache2/bin/apachectl restart //重启 Apache<br><br>这时会出现错误：<br><br>/usr/local/apache2/bin/apachectl start<br>httpd: Syntax error on line 107 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied<br><br>不急，我们慢慢解决。<br><br>先重启下机器：<br>reboot<br>这个Permission denied问题，在<strong><font color=#ff0000>centos</font></strong> 5下面一般是Selinux引起的，作为生产用服务器，我建议你千万别草率地关掉Selinux一了百了。就像家里的防盗网，阻碍了你的猫自由进出窗户，你不能为了猫方便，就把防盗网简单拆除是同样的道理。我看见网上许多人建议把Selinux简单关闭来解决这个问题，很不以为然。<br>我们可以这样操作：<br><br># audit2allow -d<br>allow initrc_t usr_t:file execmod;<br>allow mount_t default_t:file execute;<br><br><br># cd /etc/selinux/targeted/modules/<br># audit2allow -M local -d<br><br>屏幕产生如下提示：<br><br>产生类型强制文件：local.te<br>正在编译策略<br>checkmodule -M -m -o local.mod local.te<br>semodule_package -o local.pp -m local.mod<br><br>********************重要 ***********************<br><br>为了在内核中加载这个新创建的策略软件包，<br>您需要执行 <br><br>semodule -i local.pp<br><br>我们运行<br><br># semodule -i local.pp<br><br>这样就让Selinux加载了新的规则。<br><br>更详细的内容请看我在BLOG上的转贴：<br><br><a href="http://www.cnprint.org/bbs/blogs/1/blog48.html" target=_blank>http://www.cnprint.org/bbs/blogs/1/blog48.html</a><br><br>reboot<br><br>哈哈，apache不会再报错了吧？<br>这样我保留了selinux的功能，同时apache也能正常运行。<br><br>11. 查看确认 L.A.M.P 环境信息<br>vi /usr/local/apache2/htdocs/phpinfo.php<br><br>新增加下面一行，并保存。<br><br><br><br># chmod 755 /usr/local/apache2/htdocs/phpinfo.php<br><br>用浏览器打开 <a href="http://127.0.0.1/phpinfo.php" target=_blank>http://127.0.0.1/phpinfo.php</a><br><br><br># echo ' ' &gt; /usr/local/apache2/htdocs/testdb.php<br># chmod 755 /usr/local/apache2/htdocs/testdb.php<br># service mysqld start<br>用浏览器打开 <a href="http://127.0.0.1/testdb.php" target=_blank>http://127.0.0.1/testdb.php</a><br>检查 phpinfo 中的各项信息是否正确。<br><br>12、设置SSL并创建自己的CA<br><br># cd /usr/share/ssl/misc<br><br># ./CA -newca<br><br>屏幕上出现如下的提示:CA certificate filename (or enter to create)<br><br>这是要求输入要创建的CA的证书文件名, 可以直接回车或输入证书文件名。<br><br>Making CA certificate ...<br>Generating a 1024 bit RSA private key<br>.........++++++<br>................................++++++<br>writing new private key to './demoCA/private/./cakey.pem'<br>Enter PEM pass phrase:<br><br>Verifying password - Enter PEM pass phrase:-<br><br>此时要求输入和验证CA的私钥口令、国家代码（中国是CN）、省份、城市或地区、组织或企业名称、部门名称、CA的名称或服务器的主机名称、管理员电子邮件地址。<br><br>至此,在当前目录下生成了demoCA的目录,CA的证书就在该目录下,文件名为cacert.pem<br><br>生成服务器的证书请求<br><br># ./CA -newreq<br><br>屏幕上出现如下的提示:<br><br>Generating a 1024 bit RSA private key<br>.....................................................++++++<br>.....++++++<br>writing new private key to 'newreq.pem'<br>Enter PEM pass phrase:<br>Verifying password - Enter PEM pass phrase:<br><br>此时要求输入和验证服务器的私钥口令、国家代码（中国是CN）、省份、城市或地区、组织或企业名称、部门名称、CA的名称或服务器的主机名称、管理员电子邮件地址。<br><br>Please enter the following 'extra' attributes<br><br>to be sent with your certificaterequest<br><br>A challenge password []:<br><br>An optional company name []:<br><br>.Request (and private key) is in newreq.pem<br><br>这是要求输入服务器的相关信息。<br><br>此时,在当前目录下生成了一个名为newreq.pem的文件,包含了要生成服务器数字证书的请求。<br><br>签署证书<br><br># ./CA -sign<br><br>屏幕上出现如下的提示:<br><br>Using configuration from /usr/share/ssl/openssl.cnf<br><br>Enter PEM pass phrase:<br><br>此时一样需要输入CA的私钥口令、国家代码（中国是CN）、省份、城市或地区、组织或企业名称、部门名称、CA的名称或服务器的主机名称、管理员电子邮件地址。<br><br>Certificate is to be certified until Nov 19 13:46:19 2002 GMT (365 days)<br><br>Sign the certificate? [y/n]:y<br><br>这时显示证书请求文件中的各项信息,并询问是否要签署证书，回答y，进行签署。<br><br>1 out of 1 certificate requests certified, commit? [y/n]y<br><br>回答y,会显示已经签署的证书的信息,并在当前目录下生成服务器的证书文件newcert.pem。<br><br># mkdir /usr/local/apache2/conf/ssl.crt/<br># mkdir /usr/local/apache2/conf/ssl.key/<br># cp newcert.pem /usr/local/apache2/conf/ssl.crt/server.pem<br># cp newreq.pem /usr/local/apache2/conf/ssl.key/server.pem<br><br><br>更改服务器的证书文件的相关配置<br># vi /usr/local/apache2/conf/extra/httpd-ssl.conf<br><br>查找并修改<br><br># Server Certificate:<br># Point SSLCertificateFile at a PEM encoded certificate. If<br># the certificate is encrypted, then you will be prompted for a<br># pass phrase. Note that a kill -HUP will prompt again. Keep<br># in mind that if you have both an RSA and a DSA certificate you<br># can configure both in parallel (to also allow the use of DSA<br># ciphers, etc.)<br>SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.pem<br>#SSLCertificateFile /usr/local/apache2/conf/server-dsa.crt<br><br># Server Private Key:<br># If the key is not combined with the certificate, use this<br># directive to point at the key file. Keep in mind that if<br># you've both a RSA and a DSA private key you can configure<br># both in parallel (to also allow the use of DSA ciphers, etc.)<br>SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.pem<br>#SSLCertificateKeyFile /usr/local/apache2/conf/server-dsa.key<br><br><br>示例文件<br><br>在SSL的根目录中生成一个index.html,它是如下所示:<br><br>＜html＞<br><br>这是SSL示例!<br><br>＜/html＞<br><br>测试<br><br>假如Web服务器的DNS名称是<a href="http://www.cnprint.org/" target=_blank>www.cnprint.org</a>.<br><br>在浏览器的URL地址栏里输入 <a href="http://www.cnprint.org/%EF%BC%8C%E6%B5%8F%E8%A7%88%E5%99%A8%E4%BE%BF%E4%BC%9A%E6%98%BE%E7%A4%BAAPACHE%E5%AE%89%E8%A3%85%E6%97%B6%E7%A1%AE%E7%9C%81%E7%9A%84Test" target=_blank>http://www.cnprint.org/，浏览器便会显示APACHE安装时确省的Test</a> Page.<br><br>在浏览器的URL地址栏里输入 <a href="https://www.cnprint.org/%EF%BC%8C%E6%B3%A8%E6%84%8F:%E6%98%AF" target=_blank>https://www.cnprint.org/，注意:是</a> https 而不是http !<br><br>浏览器会提示站点已经采用了SSL进行数据的加密传输.由于我们的CA证书不是浏览器缺省的信任的根证书,所以,浏览器会说无法确认服务器的证书可信。暂时不管,一直NEXT,最后,浏览器会显示:这是SSL示例!<br><br>可以把CA的证书放在非SSL的站点上,让浏览器下载并安装CA证书,并将其设置成可信任的根证书,便可解决上面的问题.8 解除HTTPD起动时的口令输入。<br><br>由于安全的原因,Web服务器的私钥是口令加密了的，每次重新起动HTTPD或Linux时,都会要求输入Web服务器的私钥的口令。<br><br>如果要解除HTTPD起动时的口令输入,可以这样:<br><br># cd /usr/local/apache2/conf/ssl.key/<br># cp server.pem server.pem.org<br># openssl rsa -in server.pem.org -out server.pem<br># chmod 400 server.pem<br><br>另外在网上看到一个方法，我没有试。有兴趣的可以试下。<br><br>创建SSL密码自动应答文件，否则每次Apache启动的时候，都会要求你输入SSL的密码.<br>创建 /usr/local/apache2/conf/ssl.key/sendsslpwd ,内容如下.<br>#!/bin/bash<br>SSLpasswd="YOUR PASSPHRASE"<br>echo $SSLpasswd<br>chmod 755 /usr/local/apache2/conf/ssl.key/sendsslpwd<br><br><br>此时，Web服务器的私钥已经没有口令加密,一定要确保server.pem文件除root外,任何用户均无权读取它。<br><br><br>13、安装 Zend Optimizer<br># cd /usr/local/src<br># wget <a href="http://downloads.zend.com/optimizer/3.3.0/ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz" target=_blank>http://downloads.zend.com/optimi ... glibc21-i386.tar.gz</a><br># tar xzvf ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz<br># ./ZendOptimizer-3.3.0-linux-glibc21-i386/install.sh<br>按照它的提示一步步进行就行了。<br>总之一句话。如果你的服务器环境不需要ZendOptimizer，那么能不安就不安装这个。避免和eaccelerator冲突。<br><br>14、安装eaccelerator // eaccelerator是php的加速软件，使用后php的执行效率会有较大幅度的提升。目前eaccelerator 0.9.5.2已经和ZendOptimizer-3.3.0能够基本上兼容啦。不过我个人觉得，ZendOptimizer-3.3.0没有加速的功能，反而使php运行变慢，只是起到了运行zend加密文件的作用而已。闲话不多说了，大家有兴趣的，可以去google下。<br><br># cd /usr/local/src<br># wget <a href="http://bart.eaccelerator.net/source/0.9.5.2/eaccelerator-0.9.5.2.tar.bz2" target=_blank>http://bart.eaccelerator.net/sou ... tor-0.9.5.2.tar.bz2</a><br># tar -jxvf eaccelerator-0.9.5.2.tar.bz2<br># cd eaccelerator-0.9.5.2<br><br>export PHP_PREFIX="/usr/local/php"<br>$PHP_PREFIX/bin/phpize //指定一下php的目录<br><br># ./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config // 设置<br><br># make &amp; make install<br><br><strong><font color=#ff0000>编译安装</font></strong>后我们会看到屏幕提示的eaccelerator.so所在的目录，比如我得到的是/usr/local/php/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so，记住这个路径，待会要用到。<br><br>修改php.ini（安装完zend之后，php.ini存放于/usr/local/Zend/etc）<br>在文件最后，zend之前，注意，这部分内容务必放在zend之前，不然可能会出现不可预期的服务器问题。添加下列信息：<br><br>[eaccelerator]<br>extension="/usr/local/php/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so"<br>eaccelerator.shm_size="32"<br>eaccelerator.cache_dir="/tmp/eaccelerator"<br>eaccelerator.enable="1"<br>eaccelerator.optimizer="1"<br>eaccelerator.check_mtime="1"<br>eaccelerator.debug="0"<br>eaccelerator.filter=""<br>eaccelerator.shm_max="0"<br>eaccelerator.shm_ttl="0"<br>eaccelerator.shm_prune_period="0"<br>eaccelerator.shm_only="0"<br>eaccelerator.compress="1"<br>eaccelerator.compress_level="9"<br><br>解释:<br>zend_extension 是安装完程序自动指示给我们的<br>eaccelerator.shm_size="32" 缓存大小单位MB<br>eaccelerator.cache_dir="/tmp/eaccelerator" 缓存路径<br><br># mkdir /tmp/eaccelerator // 建立目录<br># chmod 0777 /tmp/eaccelerator // 修改目录属性<br><br>最后重新启动apachectl<br><br>重启apache，phpinfo显示：<br>This program makes use of the Zend Scripting Language Engine:<br>Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies<br>with eAccelerator v0.9.5.2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator<br>with Zend Extension Manager v1.0.11, Copyright (c) 2003-2006, by Zend Technologies<br>with Zend Optimizer v3.3.0, Copyright (c) 1998-2006, by Zend Technologies<br><br>也会有eAccelerator的具体信息。<br><br>15、安装phpmyadmin，管理mysql数据库<br><br># cd /usr/local/apache2/htdocs/<br># wget <a href="http://nchc.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.11.1-all-languages-utf-8-only.tar.gz" target=_blank>http://nchc.dl.sourceforge.net/s ... s-utf-8-only.tar.gz</a><br><br># tar zxvf phpMyAdmin-2.11.1-all-languages-utf-8-only.tar.gz<br># mv phpMyAdmin-2.11.1-all-languages-utf-8-only phpmyadmin<br><br># cd phpmyadmin/libraries<br><br>修改配置文件<br># vi config.default.php<br><br>找到这几行进行修改：<br>$cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (valid choices: config, http, HTTP, signon or cookie)<br>$cfg['Servers'][$i]['user'] = 'root'; // MySQL user<br>$cfg['Servers'][$i]['password'] = 'PASSWORD'; // MySQL password (only needed<br><br>经过这几个步骤，我们一个比较安全的LAMP服务器就环境基本建立成功啦。感觉上也不是很难，是吧？</div>
<img src ="http://www.phpweblog.net/killjin/aggbug/2169.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-11-04 18:37 <a href="http://www.phpweblog.net/killjin/archive/2007/11/04/2169.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>从SHELL中启动可视化编辑器 </title><link>http://www.phpweblog.net/killjin/archive/2007/10/31/2156.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Wed, 31 Oct 2007 10:49:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/10/31/2156.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2156.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/10/31/2156.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2156.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2156.html</trackback:ping><description><![CDATA[<div class=postbody><font size=2>vi filename 指示shell启动vi编辑器，并将参数filename传给它。如果当前目前中存在该文件，则vi编辑器将它解释为要打开的文件；如果没有该文件，则vi编译器创建新文件 <br>vi file1 file2 file3 shell传递3个参数给vi，vi将它们解释为要打开的文件。可以使用:w命令保存文件，使用:n命令访问下一个文件 <br>vi +# filename 打开文件，并将光标移到指定的行。例如，命令vi +100 records 从第100行开始编辑文件records <br>vi +/the filename 打开文件，并将光标移动包含有目标字符串的行。例如，命令vi +/Jason friends 从第1个含有字符串Jason的行开始编辑文件friends <br>view filename 打开文件进行编辑，但是拒绝保存对文件的修改，除非使用w!命令 <br>光标移动命令 <br>hjkl 将光标分别向左、下、上、右移动一个字符 <br>0(零) 将光标移到当前行的行首 <br>^(脱字符) 同0一样将光标移到当前行的行首 <br>$ 将光标移到当前行的行末 <br>##G 将光标移到G前面的数字指定的行。例如，42G将光标移到文件的第42行 <br>G 将光标移到文件的最后一行 <br>w 将光标向前移到下一个单词的首字母 <br>e 将光标向前移到下一个单词的最后一个字母 <br>b 将光标向后移到上一个单词首字母 <br>- 将光标定位到上一行的行首 <br>+ 将光标定位到下一行的行首 <br>12| 将光标定位到当前行的第12列 <br>L 将光标定位到屏幕的最下面一行 <br>M 将光标定位到屏幕中间的一行 <br>H 将光标定位到屏幕的最上面一行 <br>'' 两个单引号将光标移到它的先前的位置 <br>光标定位命令（上下文的） <br>fb 将光标向前移到当前行上的下一个字母b（或者其他的任意指定的字符） <br>Fb 将光标向后移到当前行上的上一个字母b（或指定的字符） <br>t# 将光标移到当前行上字符＃的第1个实例的右侧。例如，命令tM将光标移到当前行上第1个M的右侧 <br>T# 在当前行上向左移动光标，将它移到字符＃的第1个实例的前一字符 <br>/word 将光标向前移到单词word的下一个实例 <br>?word 将光标向后移到单词word的上一个实例 <br>n 将光标移到前面命令/word或?word中指定模式的下一个实例 <br>显示调整命令 <br>Ctrl+D 显示文件中的下半屏文本 <br>Ctrl+U 显示文件中的上半屏文本 <br>Ctrl+F 显示文件中的下一屏文本 <br>Ctrl+B 显示文件中的上一屏文本 <br>设置显示选项 <br>:set number 将行号作为屏幕显示的一部分，但是行号并不是文件的一部分。它的缩写形式为:set nu <br>:set nonumber 清除屏幕上的行号。也可以使用缩写形式:set nonu <br>:set showmode 在屏幕的右下角显示追加模式信息 <br>:set list 在每行的行末显示美元符号，并用Ctrl+I表示制表符 <br>:set showmatch 在输入）或］时，将光标移到与之匹配的（或[ <br>:set window=value 定义屏幕上显示的文本行的行数 <br>:set autoindent 自动缩进。也可以使用缩写形式:set ai <br>:set tabstop=value 设置显示制表符的空格字符个数。也可以使用缩写形式ts=value <br>:set wrapmargin=value 设置显示器的右页边。当输入进入所设置的页边时，编辑器自动回车换行 <br>:set ignorecase 指示编辑器搜索字符串，并忽略目标中字母的大小写 <br>:set 显示设置的所有选项 <br>:set all 显示所有可以设置的选项 <br>文本删除命令 <br>dd 删除当前光标所有的文本行 <br>#dd 删除＃行文本 <br>dw 从文本中删除一个单词 <br>#dw 从文本中删除＃个单词 <br>x 删除光标所在的一个字符 <br>#x 从文本中删除＃个字符 <br>D 删除当前行上光标后面的部分 <br>:#,#d 例如，:12,37d 将删除第12～37行之间的所有文本，包括第12和37行 <br>撤销命令 <br>u 撤销。恢复最近一次的文本修改操作，即使已经移动了光标。在Linux系统中，再次使用撤销命令将恢复更前一次的文本修改操作。在BSD的vi中，第2次撤销操作将撤销第一次撤销操作，恢复第1次撤销前修改的文本 <br>:redo 在Linux系统中，取消撤销操作恢复文本修改。在标准的UNIX系统中，第2个u命令取消第1个u命令，结果就是一个&#8220;redo&#8221; <br>U 如果在修改后还没有将光标移出当前行，则可以撤销对当前行进行的所有的文本修改 <br>向文本中添加文本 <br>a(小写) 从光标的右侧开始插入文本 <br>A(大写) 从当前行的行末开始添加文本 <br>i(小写) 从光标的左侧开始插入文本 <br>I(大写) 从当前行的行首插入文本 <br>o(小写) 在光标的下面打开（或插入）一个新行 <br>O(大写) 在光标的上面打开一个新行 <br>:#r filename 例如，:8r report.old读取文件report.old，并将它的内容放到当前文件的第8行之后 <br>Esc 无论使用什么命令进入了追加/插入模式，都可以通过按Esc键离开追加模式返回到vi的命令模式 <br>Ctrl+V 允许输入控制字符。按Ctrl+V键后再按回车键将把Ctrl+M插入到文件中 <br>在文件中修改文本 <br>cw 仅仅修改光标处的单词（删除单词，然后进入追加模式中，以在被删除单词的位置添加文本） <br>s(小写) 替换单个字符 <br>S(大写) 替换整行文本 <br>cc 替换整行文本(同S) <br>r 用输入的下一个字符替代当前光标处的字符，并自动返回到命令模式 <br>R 将编辑器放到覆盖模式，用输入的字符来逐个替换光标处的字符 <br>C(大写) 修改行上从光标到行末之间的文本 <br>ct# 修改行上从光标到前向第1个目标字符之间的文本。例如ctY将删除当前行上从光标到向前第1个字符Y之间的所有文本，并进入追加模式以在删除文本的位置添加文本 <br>cf# 修改行上从光标到前向第1个目标字符之间的文本（包括目标字符）。例如cfY将删除当前行上从光标到向前第1个字符Y之间（包括Y）的所有文本，并进入追加模式以在删除文本的位置添加文本 <br>cT# 修改行上从光标到后向第1个目标字符之间的文本。例如cTY将删除当前行上从光标到向后第1个字符Y之间的所有文本，并进入追加模式以在删除文本的位置添加文本 <br>cF# 修改行上从光标到后向第1个目标字符之间的文本（包括目标字符）。例如cFY将删除当前行上从光标到向后第1个字符Y之间（包括Y）的所有文本，并进入追加模式以在删除文本的位置添加文本 <br>接出和粘贴行的单词 <br>yy 将当前行复制或接出到内在缓冲区。20yy将当前行和它后面的19行（共20行）文本复制到内存。目标行仍然保留在文件中，可以使用p命令将这些内存中的文本粘贴到文件中 <br>dd 删除当前行，并将它放到与yy命令使用的相同的内存缓冲区。目标行从文件中删除，但是可以使用p命令将它粘贴到文件中的其他地方 <br>yw 将当前光标所在的单词接出或复制到内在缓冲区。6yw命令将把当前单词和它后面的5个（共6个）单词复制到内存 <br>dw 删除当前的单词，并将它放到与yw命令使用的相同的内存缓冲区。可以使用p命令将单词粘贴到文件的其他地方 <br>yt# 接出从光标到向前一个字符（不包括该字符）之间的文本。例如，ytB命令将从光标到字符B的下一实例（不包括字符B）之间的文本接出或复制到内存 <br>yf# 接出从光标到向前一个字符（包括该字符）之间的文本。例如，yf:命令将从光标到字符:的下一个实例（包括字符:）之间的文本接出或复制到内存 <br>yT# 后向接出（不包括目标字符）。例如，yTN命令将从光标到字符N的后向第1个实例之间的文本（不包括字符N）接出或复制到内存 <br>yF# 后向接出（包括目标字符）。例如，yFJ命令将把从光标到字符N的向后第1个实例之间的文本（包括字符N）接出或复制到内存 <br>p 将内存中的文本行粘贴到文件中光标所在行的下面，或将内存中的单词粘贴到文件中光标的右侧 <br>P(大写) 将接出或删除的文本行粘贴到文件中光标所在行的上面。或将接出或删除的单词粘贴到文件中光标的左侧 <br>文件移动命令 <br>J 将下行文本同当前行合并成一行 <br>:#,# move # 将指定的行移到目标位置。:12,35 move 58命令将第12～35行之间的所有文本移到第58行的后面。缩写为mo <br>:1,26 co 82 将第1～26行之间的所有文本复制到第82行的后面（可以选择行号） <br>使用可视化编辑器进行全局编辑 <br>:s /target/replacement/ 查找当前行上目标字符串的第1个实例并删除，然后用字符串replacement替换。只修改当前行上的第1个目标实例 <br>:g /target/s//replacement/ 查找所有行上目标字符串的第1个实例并删除，然后用字符串replacement替换。修改所有行上目标的第1个实例 <br>:#,# s/target/replacement/ 在指定的行上进行替换。例如，:7,37 s/march/walk/将查找第7～37行之间的所有文本行，并用字符串walk替换每行中的第1个目标字符串march。所有指定行上的第1个目标字符串修改 <br>:#,# s/target/replacement/g 在指定的行上进行全局替换。例如，:1,$ s/fun/joyful/g 将在第1行到文件最后一行之间查找目标字符串fun的所有实例并删除，然后用字符串joyful替换。指定行上的目标字符串的所有实例都被修改 <br>:g /target/s/replacement 查找所有行上目标字符串的第1个实例并删除，然后用字符串replacement替换。所有行上的第1个目标都被修改 <br>:#,# target/s/replacement/ 在指定的行上进行替换，例如，:7,37 march/s/walk命令在第7～37行之间每个文本行上查找目标字符串的第1个实例并删除，然后用字符串walk替换。所有指定行上的第1个目标字符串都被修改 <br>:#,# target/s/replacement/g 在指定的行上进行全局替换。例如，:1,$ fun/s/joyful/g将在第1行到文件最后一行之间查找目标字符串fun的所有实例并删除，然后用字符串joyful替换。指定行上的所有目标字符串都被修改 <br>编辑工具：映射，缩写和标记 <br>m# 用字母标记当前行。例如，ma命令表示用a标记当前行。即使移动了标记行，它仍然标记为a，可以用a来定位该行 <br>'# 定位标记行。例如，命令'a将光标移到标记a的行。命令'a,$d将删除从标记行到文件末尾之间的所有行 <br>:map # command string 在命令模式中输入＃时，将其作为一个命令串。例如，:map #o#!/bin/ksh产生一个新的命令模式指令，您输入＃时，它被解释为:o打开个新行，并添加文本#!/bin/ksh到文件中。为了在命令中包含回车和其他控制字符，可以在它们的前面用Ctrl+V命令 <br>:ab abbreviation char-string 设置追加模式缩写。例如，在命令模式中输入:ab mv Milky Way Galaxy，则建立缩写。如果在追加模式中输入字符串mw，然后按Esc键，mw将被Milky Way Galaxy替代 <br>在vi编辑器中向shell发出命令 <br>:!ls 启动一个shell，并让shell运行ls程序。在运行完指定的程序后，必须按回车键以返回到编辑器中 <br>:!ksh 启动一个shell，它允许运行多个命令。退出shell可以回到编译器中 <br>:Or!speel% 对当前文件(%)进行拼写检查，并将spell的输出诗篇到当前文件中，从第1行(0行后面)开始放置这些输出 <br>:31r!command% 运行UNIX命令（如cal或date）并将它的输出读入到当前文件，从第31行开始放置这些输出 <br>Ctrl+Z 用于挂起当前编辑会话进程的csh和ksh命令，它允许您向父shell发出命令 <br>fg 重新激活挂起的编辑进程的csh和ksh命令 <br>读、写和退出编辑器 <br>:wq 保存编辑会话期间对文件所做的修改，退出编辑器返回到shell <br>:q 如果没有对文件进行修改或添加文件，可以用q退出对一个文件的编辑 <br>:q! 退出对文件的编辑返回到shell模式，但是不保存在编辑会话期间对文件所做的修改 <br>:w filename v将文件的缓冲区副本（修改版本）保存到一个新文件 <br>[color=#DC143C][b]:#,# w newtest 例如，:1,6 w newtext命令创建一个名为newtext的文件，并将当前文件的第1～6行文本复制到文件newtext中 <br>:1,6 w &gt;&gt; oldfile 将当前文件的第1～6行文本的一个副本追加到已有文件oldfile的末尾 <br>:1,6 w! oldfile 用当前文件的第1～6行文本覆盖文件oldfile</font></div>
<div class=postbody><font size=2></font></div>
<div class=postbody><font size=2><strong>进入vi的命令</strong><br>vi filename :打开或新建文件，并将光标置于第一行首<br>vi +n filename ：打开文件，并将光标置于第n行首<br>vi + filename ：打开文件，并将光标置于最后一行首<br>vi +/pattern filename：打开文件，并将光标置于第一个与pattern匹配的串处<br>vi -r filename ：在上次正用vi编辑时发生系统崩溃，恢复filename<br>vi filename....filename ：打开多个文件，依次编辑<br><br>移动光标类命令<br>h ：光标左移一个字符<br>l ：光标右移一个字符<br>space：光标右移一个字符<br>Backspace：光标左移一个字符<br>k或Ctrl+p：光标上移一行<br>j或Ctrl+n ：光标下移一行<br>Enter ：光标下移一行<br>w或W ：光标右移一个字至字首<br>b或B ：光标左移一个字至字首<br>e或E ：光标右移一个字j至字尾<br>) ：光标移至句尾<br>( ：光标移至句首<br>}：光标移至段落开头<br>{：光标移至段落结尾<br>nG：光标移至第n行首<br>n+：光标下移n行<br>n-：光标上移n行<br>n$：光标移至第n行尾<br>H ：光标移至屏幕顶行<br>M ：光标移至屏幕中间行<br>L ：光标移至屏幕最后行<br>0：（注意是数字零）光标移至当前行首<br>$：光标移至当前行尾<br><br>屏幕翻滚类命令<br>Ctrl+u：向文件首翻半屏<br>Ctrl+d：向文件尾翻半屏<br>Ctrl+f：向文件尾翻一屏<br>Ctrl＋b；向文件首翻一屏<br>nz：将第n行滚至屏幕顶部，不指定n时将当前行滚至屏幕顶部。<br><br>插入文本类命令<br>i ：在光标前<br>I ：在当前行首<br>a：光标后<br>A：在当前行尾<br>o：在当前行之下新开一行<br>O：在当前行之上新开一行<br>r：替换当前字符<br>R：替换当前字符及其后的字符，直至按ESC键<br>s：从当前光标位置处开始，以输入的文本替代指定数目的字符<br>S：删除指定数目的行，并以所输入文本代替之<br>ncw或nCW：修改指定数目的字<br>nCC：修改指定数目的行<br><br>删除命令<br>ndw或ndW：删除光标处开始及其后的n-1个字<br>do：删至行首<br>d$：删至行尾<br>ndd：删除当前行及其后n-1行<br>x或X：删除一个字符，x删除光标后的，而X删除光标前的<br>Ctrl+u：删除输入方式下所输入的文本<br><br>搜索及替换命令 :<br>/pattern：从光标开始处向文件尾搜索pattern<br>?pattern：从光标开始处向文件首搜索pattern<br>n：在同一方向重复上一次搜索命令<br>N：在反方向上重复上一次搜索命令<br>：s/p1/p2/g：将当前行中所有p1均用p2替代<br>：n1,n2s/p1/p2/g：将第n1至n2行中所有p1均用p2替代<br>：g/p1/s//p2/g：将文件中所有p1均用p2替换<br><br>选项设置<br>all：列出所有选项设置情况<br>term：设置终端类型<br>ignorance：在搜索中忽略大小写<br>list：显示制表位(Ctrl+I)和行尾标志（$)<br>number：显示行号<br>report：显示由面向行的命令修改过的数目<br>terse：显示简短的警告信息<br>warn：在转到别的文件时若没保存当前文件则显示NO write信息<br>nomagic：允许在搜索模式中，使用前面不带&#8220;&#8221;的特殊字符<br>nowrapscan：禁止vi在搜索到达文件两端时，又从另一端开始<br>mesg：允许vi显示其他用户用write写到自己终端上的信息<br><br>最后行方式命令<br>：n1,n2 co n3：将n1行到n2行之间的内容拷贝到第n3行下<br>：n1,n2 m n3：将n1行到n2行之间的内容移至到第n3行下<br>：n1,n2 d ：将n1行到n2行之间的内容删除<br>：w ：保存当前文件<br>：e filename：打开文件filename进行编辑<br>：x：保存当前文件并退出<br>：q：退出vi<br>：q!：不保存文件并退出vi<br>：!command：执行shell命令command<br>：n1,n2 w!command：将文件中n1行至n2行的内容作为command的输入并执行之，若不指<br>定n1，n2，则表示将整个文件内容作为command的输入<br>：r!command：将命令command的输出结果放到当前行 。</font></div>
<div class=storyposted>xsb 发表于:2005.11.09 18:11 ::分类: ( <a href="http://xsb.itpub.net/category/419/1161">OS</a> ) ::阅读:(751次) :: <a href="http://xsb.itpub.net/post/419/45339">Permanent link</a> :: <a href="http://xsb.itpub.net/trackbacks/419/45339">引用 (0)</a> </div>
<div class=story>
<div class=storyTitle><img alt="" src="http://blog.itpub.net//imgs/comment_icon1.gif"> re: vi使用手册(zt) <span class=categoryinfo>[<a href="http://xsb.itpub.net/index.php?op=Comment&amp;articleId=45339&amp;parentId=56183&amp;blogId=419">回复</a>]</span> </div>
<div class=storytext>
<p>http://www.5ilinux.com/blog/archives/000058.html<br>功能最强在的编辑器——vi<br>vi 是所有UNIX系统都会提供的屏幕编辑器，它提供了一个视窗设备，通过它可以编辑文件。当然，对UNIX系统略有所知的人，或多或少都觉得vi超级难用，但vi是最基本的编辑器，所以希望读者能好好把它学起来，以后在UNIX世界里必将畅行无阻、游刃有余，因为其他几种文本处理器并非UNIX标准配备。说不定别人的Linux机器没安装joe或pico，如果您不会vi，那您可能就没辄了。<br>vi的基本概念<br>基本上vi可分为三种操作状态，分别是命令模式（Command mode）、插入模式（Insert mode）和底线命令模式（Last line mode），各模式的功能区分如下：<br>1． Comand mode：控制屏幕光标的移动，字符或光标的删除，移动复制某区段及进入Insert mode下，或者到Last line mode。<br>2． Insert mode：唯有在Insert mode下，才可做文字数据输入，按Esc等可回到Comand mode。<br>3． Last line mode：将储存文件或离开编辑器，也可设置编辑环境，如寻找字符串、列出行号等。<br>不过可以把vi简化成两个模式，即是将Last line mode也算入Command mode,把vi分成Command 和Insert mode。<br>vi的基本操作<br>&#8226;进入vi<br>在系统提示符号输入vi及文件名称后，即可进入vi全屏幕编辑画面：<br>$ vi testfile<br>有一点要特别注意，就是您进入vi之后是处于&#8220;Command mode&#8221;下，您要切换到Insert mode才能输入文字。初次用vi的用户都会想先用上下左右键移动光标，结果电脑一直叫，把自己气个半死，所以进入vi后，先不要乱动，转换入Insert后再说。<br>&#8226;切换至Insert mode编辑文件<br>在Command mode下按&#8216;i&#8217;、&#8216;a&#8217;或&#8216;o&#8217;三键就可进入Insert mode。这时候您就可以开始输入文字了。<br>i: 插入，从目前光标所在之处插入所输入的文字。<br>a: 增加，目前光标所在的下一个字开始输入文字。<br>o: 插入新的一行，从行首开始输入文字。<br>&#8226;Insert的切换&#8594;Command mode，按Esc键<br>您目前处于Insert mode，您就只能一直打字。假如您发现打错字了，想用光标键往回移动，将该字删除，就要按ESC键转换回Command mode，再删除文字。<br>&#8226;离开vi及存文件<br>在Command mode下，可按冒号&#8220;：&#8221;键入入Last line mode，例如：<br>:w filename (输入&#8220;w filename&#8221;，将文章存入指定的文件名filename)<br>:wq (输入&#8220;wq&#8221;，因为进入之时已经指定文件名testfile，所以会写入testfile并离开vi)<br>:q! (输入&#8220;q!&#8221;，强制离开并放弃编辑的文件)</p>
<p>Command mode功能键列表<br>在介绍command mode指令的时后，指令后面加上&#8220;常用&#8221;字眼的功能键，表示比较常用的vi指令，请读者您一定要学会、记住。<br>（1）I、a、o切换进入Insert mode。[超级常用]<br>（2）移动光标<br>vi可以直接用键盘上的光标键来上下左右移动，但正规的vi是用小写英文字母<br>h、j、k、l，分别控制光标左、下、上、右移一格。<br>按Ctrl+B：屏幕往后移动一页。[常用]<br>按Ctrl+F：屏幕往前移动一页。[常用]<br>按Ctrl+U：屏幕往后移动半页。<br>按Ctrl+D：屏幕往前移动半页。<br>按 0 （数字零）：移动文章的开头。[常用]<br>按 G：移动到文章的最后。[常用]<br>按 w：光标跳到下个word的开头。[常用]<br>按 e：光标跳到下个word的字尾。<br>按 b：光标回到上个word的开头。<br>按 $：移到光标所在行的行尾。[常用]<br>按 ^：移到该行第一个非空白的字符。<br>按 0：移到该行的开头位置。[常用]<br>按 #：移到该行的第#个位置，例：51、121。[常用]<br>（3）删除文字<br>x：每按一次删除光标所在位置的后面一个字符。[超常用]<br>#x：例如，6x 表删除光标所在位置的后面6个字符。[常用]<br>X：大字的X，每按一次删除光标所在位置的前面一个字符。<br>#X：例如，20X 表删除光标所在位置的前面20个字符。<br>dd：删除光标所在行。[超常用]<br>#dd：例如，6dd表删除从光标所在的该行往下数6行之文字。[常用]<br>（4）复制<br>yw：将光标所在处到字尾的字符复制到缓冲区中。<br>（想在和#x、#X的功能相反）<br>p：将缓冲区内的字符粘贴到光标所在位置（指令&#8216;yw&#8217;与&#8216;p必须搭配使用）。<br>yy：复制光标所在行。[超常用]<br>p：复制单行到您想粘贴之处。（指令&#8216;yy&#8217;与&#8216;p&#8217;必须搭配使用）<br>#yy：如：6yy表示拷贝从光标所在的该行往下数6行之文字。[常用]<br>p:复制多行到您想粘贴之处。（指令&#8216;#yy&#8217;与&#8216;p&#8217;必须搭配使用）<br>&#8220;ayy：将复制行放入buffer a, vi提供buffer功能，可将常用的数据存在buffer<br>&#8220;ap：将放在buffer a的数据粘贴。<br>&#8220;b3yy：将三行数据存入buffer b。<br>&#8220;b3p：将存在buffer b的资料粘贴<br>（5）取代<br>r: 取代光标所在处的字符：[常用]<br>R：取代字符直到按Esc为止。<br>（6）复原（undo）上一个指令<br>u：假如您误操作一个指令，可以马上按u，回复到上一个操作。[超常用]<br>.: .可以重复执行上一次的指令。<br>（7）更改<br>cw：更改光标所在处的字到字尾$处。<br>c#w：例如，c3w代表更改3个字。<br>（8）跳至指定行<br>Ctrl+G：列出光标所在行的行号。<br>#G：例如，15G，表示移动光标至文章的第15行行首。[常用]<br>Last line mode下指令简介<br>读者您要使用Last line mode之前，请记得先按Esc键确定您已经处于Command mode下后，再按冒号&#8220;：&#8221;或&#8220;/&#8221;或&#8220;？&#8221;三键的其中一键进入Last line mode。<br>1．列出行号<br>set nu: 输入&#8220;set nu&#8221;后，会在文章的每一行前面列出行号。<br>2．跳到文章的某一行<br>#：井号代表一个数字，在Last line mode提示符号&#8220;：&#8221;前输入数字，再按Enter就会跳到该行了，如：15[Enter]就会跳到文章的第15行。[常用]<br>3．寻找字符串<br>/关键字：先按/，再输入您想寻找的字，如果第一次找的关键字不是您相尽可能的，可以一直按n会往下寻找到您要的关键字为止。<br>？关键字：先按？，再输入您想寻找的字，如果第一次找的关键字不是您想要的，可以按n会往前寻找到您要的关键字为止。<br>4．取代字符串<br>1，$s/string/replae/g：在last line mode输入&#8220;1，$s/string/replace/g&#8221;会将全文的string字符串取代为replace字符串，其中1,$s就是指搜寻区间为文章从头至尾的意思，g则是表示全部取代不必确认。<br>%s/string/replace/c：同样会将全文的string字符串取代为replace字符串，和上面指令不同的地方是，%s和1,$s是相同的功能，c则是表示要替代之前必须再次确认是否取代。<br>1,20s/string/replace/g：将1至20行间的string替代为relpace字符串。<br>5．存文件<br>w：在last line mode提示符号&#8220;：&#8221;前按w即可将文件存起来。[超常用]<br>#，# w filename：如果您想摘取文章的某一段，存成另一个文件，可用这个指令#代表行号，例如30,50 w nice，将您正在编辑文章的第30~50行存成nice这个文件。<br>6．离开<br>q：按q就离开，有时如果无法离开vi，可搭配&#8220;！：强置离开vi，如&#8220;q！&#8221;<br>qw：一般建议离开时，搭配w一起使用，如此离开时还可存文件。[常用]</p>
</div>
</div>
<img src ="http://www.phpweblog.net/killjin/aggbug/2156.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-10-31 18:49 <a href="http://www.phpweblog.net/killjin/archive/2007/10/31/2156.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>LINUX守候进程名字功能对照表</title><link>http://www.phpweblog.net/killjin/archive/2007/10/31/2155.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Wed, 31 Oct 2007 09:04:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/10/31/2155.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/2155.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/10/31/2155.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/2155.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/2155.html</trackback:ping><description><![CDATA[amd：自动安装NFS（网络文件系统）守侯进程<br>apmd:高级电源管理<br>Arpwatch：记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对数据库<br>Autofs：自动安装管理进程automount，与NFS相关，依赖于NIS<br>Bootparamd：引导参数服务器，为LAN上的无盘工作站提供引导所需的相关信息<br>crond：Linux下的计划任务<br>Dhcpd：启动一个DHCP（动态IP地址分配）服务器<br>Gated：网关路由守候进程，使用动态的OSPF路由选择协议<br>Httpd：WEB服务器<br>Inetd：支持多种网络服务的核心守候程序<br>Innd：Usenet新闻服务器<br>Linuxconf：允许使用本地WEB服务器作为用户接口来配置机器<br>Lpd：打印服务器<br>Mars-nwe：mars-nwe文件和用于Novell的打印服务器<br>Mcserv：Midnight命令文件服务器<br>named：DNS服务器<br>netfs：安装NFS、Samba和NetWare网络文件系统<br>network：激活已配置网络接口的脚本程序<br>nfs：打开NFS服务<br>nscd：nscd(Name Switch Cache daemon)服务器，用于NIS一个支持服务，它高速缓存用户口令和组成成员关系<br>portmap：RPC portmap管理器，与inetd类似，它管理基于RPC服务的连接<br>postgresql：一种SQL数据库服务器<br>routed：路由守候进程，使用动态RIP路由选择协议<br>rstatd：一个为LAN上的其它机器收集和提供系统信息的守候程序<br>ruserd：远程用户定位服务，这是一个基于RPC的服务，它提供关于当前记录到LAN上一个机器日志中的用户信息<br>rwalld：激活rpc.rwall服务进程，这是一项基于RPC的服务，允许用户给每个注册到LAN机器的其他终端写消息<br>rwhod：激活rwhod服务进程，它支持LAN的rwho和ruptime服务<br>sendmail：邮件服务器sendmail<br>smb：Samba文件共享/打印服务<br>snmpd：本地简单网络管理候进程<br>squid：激活代理服务器squid<br>syslog：一个让系统引导时起动syslog和klogd系统日志守候进程的脚本<br>xfs：X Window字型服务器，为本地和远程X服务器提供字型集<br>xntpd：网络时间服务器<br>ypbind：为NIS（网络信息系统）客户机激活ypbind服务进程<br>yppasswdd：NIS口令服务器<br>ypserv：NIS主服务器<br>gpm：管鼠标的<br>identd：AUTH服务，在提供用户信息方面与finger类似<br><br>我这个比较老了~~<br>是以前总结的，现在的比较新，但是有很多服务还是可以参考的~~<br><br>必须的服务<br>------------参考1-----------<br>
<div>atd <br>crond <br>xinet <br>keytable <br>kudzu <br>network <br>random <br>syslog <br>xfs（如果你有執行 X-windows 的話）<br>gpm (console mouse,控制鼠标接口的吧!建议图形化界面下,不要关闭该服务!)<br><br>------------参考2-----------<br>crond<br>irqbalance 仅当服务器CPU为S.M.P架构或支持双核心、HT技术时，才需开启，否则关闭。<br>microcode_ctl<br>network<br>vsftpd<br>sshd<br>syslog</div>
<img src ="http://www.phpweblog.net/killjin/aggbug/2155.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-10-31 17:04 <a href="http://www.phpweblog.net/killjin/archive/2007/10/31/2155.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux操作系统的用户和用户组管理详解</title><link>http://www.phpweblog.net/killjin/archive/2007/09/14/1958.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Fri, 14 Sep 2007 00:37:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/09/14/1958.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/1958.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/09/14/1958.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/1958.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/1958.html</trackback:ping><description><![CDATA[<p style="TEXT-INDENT: 2em">Linux系统是一个多用户多任务的分时操作系统，任何一个要使用系统资源的用户，都必须首先向系统管理员申请一个账号，然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪，并控制他们对系统资源的访问；另一方面也可以帮助用户组织文件，并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后，就能够进入系统和自己的主目录。<br><br>　　实现用户账号的管理，要完成的工作主要有如下几个方面：<br>　　&#183; 用户账号的添加、删除与修改。<br>　　&#183; 用户口令的管理。<br>　　&#183; 用户组的管理。 <br><br><strong>　　一、Linux系统用户账号的管理</strong><br><br>　　用户账号的管理工作主要涉及到用户账号的添加、修改和删除。<br><br>　　添加用户账号就是在系统中创建一个新账号，然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的，无法使用。 <br><br><strong>　　1、添加新的用户账号使用useradd命令，其语法如下：</strong><br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">useradd 选项 用户名</div>
　　<strong>其中各选项含义如下：</strong><br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">　　-c comment 指定一段注释性描述。<br>　　-d 目录 指定用户主目录，如果此目录不存在，则同时使用-m选项，可以创建主目录。<br>　　-g 用户组 指定用户所属的用户组。<br>　　-G 用户组，用户组 指定用户所属的附加组。<br>　　-s Shell文件 指定用户的登录Shell。<br>　　-u 用户号 指定用户的用户号，如果同时有-o选项，则可以重复使用其他用户的标识号。</div>
　　<strong>用户名 指定新账号的登录名。</strong><br><br><br><strong>　　2、例子说明<br><br>　　例1：</strong><br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php"># useradd &#8211;d /usr/sam -m sam</div>
　　此命令创建了一个用户sam，<br>　　其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam（/usr为默认的用户主目录所在的父目录）。<br><br>　　<strong>例2：</strong><br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php"># useradd -s /bin/sh -g group &#8211;G adm,root gem</div>
　　此命令新建了一个用户gem，该用户的登录Shell是/bin/sh，它属于group用户组，同时又属于adm和root用户组，其中group用户组是其主组。<br>　　这里可能新建组：#groupadd group及groupadd adm　<br>　<br>　　增加用户账号就是在/etc/passwd文件中为新用户增加一条记录，同时更新其他系统文件如/etc/shadow, /etc/group等。<br><br>　　Linux提供了集成的系统管理工具userconf，它可以用来对用户账号进行统一管理。<br><br><strong>　　3、删除帐号</strong><br><br>　　如果一个用户的账号不再使用，可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除，必要时还删除用户的主目录。删除一个已有的用户账号使用userdel命令，其格式如下：<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">userdel 选项 用户名</div>
　　<strong>常用的选项是-r，它的作用是把用户的主目录一起删除。</strong><br><br>　　<strong>例如：</strong><br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php"># userdel sam</div>
　　此命令删除用户sam在系统文件中（主要是/etc/passwd, /etc/shadow, /etc/group等）的记录，同时删除用户的主目录。<br><br><br><strong>　　4、修改帐号</strong><br><br>　　修改用户账号就是根据实际情况更改用户的有关属性，如用户号、主目录、用户组、登录Shell等。<br><br>　　修改已有用户的信息使用usermod命令，其格式如下：<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">usermod 选项 用户名</div>
　　常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等，这些选项的意义与useradd命令中的选项一样，可以为用户指定新的资源值。另外，有些系统可以使用如下选项：<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">-l 新用户名</div>
　　这个选项指定一个新的账号，即将原来的用户名改为新的用户名。<br><br>　　<strong>例如：</strong><br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php"># usermod -s /bin/ksh -d /home/z &#8211;g developer sam</div>
　　此命令将用户sam的登录Shell修改为ksh，主目录改为/home/z，用户组改为developer。<br><br><strong>　　5、用户口令的管理</strong><br><br>　　用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令，但是被系统锁定，无法使用，必须为其指定口令后才可以使用，即使是指定空口令。<br><br>　　指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令，普通用户只能用它修改自己的口令。命令的格式为：<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">passwd 选项 用户名</div>
　　可使用的选项：<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">　　-l 锁定口令，即禁用账号。<br>　　-u 口令解锁。<br>　　-d 使账号无口令。<br>　　-f 强迫用户下次登录时修改口令。<br>　　如果默认用户名，则修改当前用户的口令。</div>
　　例如，假设当前用户是sam，则下面的命令修改该用户自己的口令：<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">　　$ passwd<br>　　Old password:******<br>　　New password:*******<br>　　Re-enter new password:*******</div>
　　如果是超级用户，可以用下列形式指定任何用户的口令：<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">　　# passwd sam<br>　　New password:*******<br>　　Re-enter new password:*******</div>
　　普通用户修改自己的口令时，passwd命令会先询问原口令，验证后再要求用户输入两遍新口令，如果两次输入的口令一致，则将这个口令指定给用户；而超级用户为用户指定口令时，就不需要知道原口令。 <br><br>　　为了系统安全起见，用户应该选择比较复杂的口令，例如最好使用8位长的口令，口令中包含有大写、小写字母和数字，并且应该与姓名、生日等不相同。<br><br>　　为用户指定空口令时，执行下列形式的命令：<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php"># passwd -d sam</div>
　　此命令将用户sam的口令删除，这样用户sam下一次登录时，系统就不再询问口令。<br><br>　　passwd命令还可以用-l(lock)选项锁定某一用户，使其不能登录，例如：<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php"># passwd -l sam</div>
<span style="FONT-SIZE: 13px"><strong>
<p style="TEXT-INDENT: 2em">二、Linux系统用户组的管理</strong><br><br>　　每个用户都有一个用户组，系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同，如Linux下的用户属于与它同名的用户组，这个用户组在创建用户时同时创建。 <br>　　用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。<br><br><strong>　　1、增加一个新的用户组使用groupadd命令。其格式如下：</strong><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">groupadd 选项 用户组</div>
　　可以使用的选项有：<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">　　-g GID 指定新用户组的组标识号（GID）。<br>　　-o 一般与-g选项同时使用，表示新用户组的GID可以与系统已有用户组的GID相同。</div>
　　<strong>例1：</strong><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php"># groupadd group1</div>
　　此命令向系统中增加了一个新组group1，新组的组标识号是在当前已有的最大组标识号的基础上加1。<br><br>　　<strong>例2：</strong><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">#groupadd -g 101 group2</div>
　　此命令向系统中增加了一个新组group2，同时指定新组的组标识号是101。<br><br><strong>　　2、如果要删除一个已有的用户组，使用groupdel命令，其格式如下：</strong><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">groupdel 用户组</div>
　　<strong>例如：</strong><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">#groupdel group1</div>
　　此命令从系统中删除组group1。<br><br><strong>　　3、修改用户组的属性使用groupmod命令。其语法如下：</strong><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">groupmod 选项 用户组</div>
　　<strong>常用的选项有：</strong><br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">　　-g GID 为用户组指定新的组标识号。<br>　　-o 与-g选项同时使用，用户组的新GID可以与系统已有用户组的GID相同。<br>　　-n新用户组 将用户组的名字改为新名字</div>
　　<strong>例1：</strong><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php"># groupmod -g 102 group2</div>
　　此命令将组group2的组标识号修改为102。<br><br>　　<strong>例2：</strong><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php"># groupmod &#8211;g 10000 -n group3 group2</div>
　　此命令将组group2的标识号改为10000，组名修改为group3。<br><br><strong>　　4、如果一个用户同时属于多个用户组，那么用户可以在用户组之间切换，以便具有其他用户组的权限。用户可以在登录后，使用命令newgrp切换到其他用户组，这个命令的参数就是目的用户组。例如：</strong><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">$ newgrp root</div>
　　这条命令将当前用户切换到root用户组，前提条件是root用户组确实是该用户的主组或附加组。类似于用户账号的管理，用户组的管理也可以通过集成的系统管理工具来完成。</span>&nbsp;<br>
<p style="TEXT-INDENT: 2em">三、与用户账号有关的系统文件</strong><br><br>　　完成用户管理的工作有许多种方法，但是每一种方法实际上都是对有关的系统文件进行修改。与用户和用户组相关的信息都存放在一些系统文件中，这些文件包括/etc/passwd, /etc/shadow, /etc/group等。下面分别介绍这些文件的内容。<br><br><strong>1、/etc/passwd文件是用户管理工作涉及的最重要的一个文件。</strong>Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行，它记录了这个用户的一些基本属性。这个文件对所有用户都是可读的。它的内容类似下面的例子：<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">　　＃ cat /etc/passwd<br><br>　　root:x:0:0:Superuser:/:<br>　　daemon:x:1:1:System daemons:/etc:<br>　　bin:x:2:2:Owner of system commands:/bin:<br>　　sys:x:3:3:Owner of system files:/usr/sys:<br>　　adm:x:4:4:System accounting:/usr/adm:<br>　　uucp:x:5:5:UUCP administrator:/usr/lib/uucp:<br>　　auth:x:7:21:Authentication administrator:/tcb/files/auth:<br>　　cron:x:9:16:Cron daemon:/usr/spool/cron:<br>　　listen:x:37:4:Network daemon:/usr/net/nls:<br>　　lp:x:71:18:Printer administrator:/usr/spool/lp:<br>　　sam:x:200:50:Sam san:/usr/sam:/bin/sh</div>
　　从上面的例子我们可以看到，/etc/passwd中一行记录对应着一个用户，每行记录又被冒号(:)分隔为7个字段，其格式和具体含义如下：<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell</div>
　　<strong>1）&#8220;用户名&#8221;是代表用户账号的字符串。</strong>通常长度不超过8个字符，并且由大小写字母和/或数字组成。登录名中不能有冒号(:)，因为冒号在这里是分隔符。为了兼容起见，登录名中最好不要包含点字符(.)，并且不使用连字符(-)和加号(+)打头。<br><br>　　<strong>2）&#8220;口令&#8221;一些系统中，存放着加密后的用户口令字。</strong>。虽然这个字段存放的只是用户口令的加密串，不是明文，但是由于/etc/passwd文件对所有用户都可读，所以这仍是一个安全隐患。因此，现在许多Linux 系统（如SVR4）都使用了shadow技术，把真正的加密后的用户口令字存放到/etc/shadow文件中，而在/etc/passwd文件的口令字段中只存放一个特殊的字符，例如&#8220;x&#8221;或者&#8220;*&#8221;。<br><br>　　<strong>3）&#8220;用户标识号&#8221;是一个整数，系统内部用它来标识用户。</strong>一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的，系统内部将把它们视为同一个用户，但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等。<br><br>　　通常用户标识号的取值范围是0～65 535。0是超级用户root的标识号，1～99由系统保留，作为管理账号，普通用户的标识号从100开始。在Linux系统中，这个界限是500。<br><br>　　<strong>4）&#8220;组标识号&#8221;字段记录的是用户所属的用户组。</strong>它对应着/etc/group文件中的一条记录。<br><br>　　<strong>5)&#8220;注释性描述&#8221;字段记录着用户的一些个人情况</strong>，例如用户的真实姓名、电话、地址等，这个字段并没有什么实际的用途。在不同的Linux 系统中，这个字段的格式并没有统一。在许多Linux系统中，这个字段存放的是一段任意的注释性描述文字，用做finger命令的输出。<br><br>　　<strong>6)&#8220;主目录&#8221;，也就是用户的起始工作目录</strong>，它是用户在登录到系统之后所处的目录。在大多数系统中，各用户的主目录都被组织在同一个特定的目录下，而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行（搜索）权限，其他用户对此目录的访问权限则根据具体情况设置。<br><br>　　<strong>7)用户登录后，要启动一个进程，负责将用户的操作传给内核，这个进程是用户登录到系统后运行的命令解释器或某个特定的程序，即Shell。</strong>Shell是用户与Linux系统之间的接口。Linux的Shell有许多种，每种都有不同的特点。常用的有sh(Bourne Shell), csh(C Shell), ksh(Korn Shell), tcsh(TENEX/TOPS-20 type C Shell), bash(Bourne Again Shell)等。系统管理员可以根据系统情况和用户习惯为用户指定某个Shell。如果不指定Shell，那么系统使用sh为默认的登录Shell，即这个字段的值为/bin/sh。<br><br>　　用户的登录Shell也可以指定为某个特定的程序（此程序不是一个命令解释器）。利用这一特点，我们可以限制用户只能运行指定的应用程序，在该应用程序运行结束后，用户就自动退出了系统。有些Linux 系统要求只有那些在系统中登记了的程序才能出现在这个字段中。<br><br><br>　　<strong>系统中有一类用户称为伪用户（psuedo users），</strong>这些用户在/etc/passwd文件中也占有一条记录，但是不能登录，因为它们的登录Shell为空。它们的存在主要是方便系统管理，满足相应的系统进程对文件属主的要求。常见的伪用户如下所示。<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">伪&nbsp;&nbsp;用&nbsp;&nbsp;户&nbsp; &nbsp;含&nbsp; &nbsp;义<br>bin&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;拥有可执行的用户命令文件<br>sys&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;拥有系统文件<br>adm&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;拥有帐户文件 <br>uucp&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;UUCP使用 <br>lp&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; lp或lpd子系统使用 <br>nobody&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;NFS使用</div>
拥有帐户文件<br><br>　　除了上面列出的伪用户外，还有许多标准的伪用户，例如：audit, cron, mail, usenet等，它们也都各自为相关的进程和文件所需要。<br><br>　　由于/etc/passwd文件是所有用户都可读的，如果用户的密码太简单或规律比较明显的话，一台普通的计算机就能够很容易地将它破解，因此对安全性要求较高的Linux系统都把加密后的口令字分离出来，单独存放在一个文件中，这个文件是/etc/shadow文件。只有超级用户才拥有该文件读权限，这就保证了用户密码的安全性。<br><br><br><strong>2、/etc/shadow中的记录行与/etc/passwd中的一一对应，它由pwconv命令根据/etc/passwd中的数据自动产生。</strong>它的文件格式与/etc/passwd类似，由若干个字段组成，字段之间用&#8220;:&#8221;隔开。这些字段是：<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志</div>
　　1）&#8220;登录名&#8221;是与/etc/passwd文件中的登录名相一致的用户账号<br>　　2）&#8220;口令&#8221;字段存放的是加密后的用户口令字，长度为13个字符。如果为空，则对应用户没有口令，登录时不需要口令；如果含有不属于集合 { ./0-9A-Za-z }中的字符，则对应的用户不能登录。<br>　　3）&#8220;最后一次修改时间&#8221;表示的是从某个时刻起，到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCO Linux 中，这个时间起点是1970年1月1日。<br>　　4）&#8220;最小时间间隔&#8221;指的是两次修改口令之间所需的最小天数。<br>　　5）&#8220;最大时间间隔&#8221;指的是口令保持有效的最大天数。<br>　　6）&#8220;警告时间&#8221;字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。<br>　　7）&#8220;不活动时间&#8221;表示的是用户没有登录活动但账号仍能保持有效的最大天数。<br>　　8）&#8220;失效时间&#8221;字段给出的是一个绝对的天数，如果使用了这个字段，那么就给出相应账号的生存期。期满后，该账号就不再是一个合法的账号，也就不能再用来登录了。<br><br>　　<strong>下面是/etc/shadow的一个例子：</strong><br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">＃ cat /etc/shadow<br><br>　　root:Dnakfw28zf38w:8764:0:168:7:::<br>　　daemon:*::0:0::::<br>　　bin:*::0:0::::<br>　　sys:*::0:0::::<br>　　adm:*::0:0::::<br>　　uucp:*::0:0::::<br>　　nuucp:*::0:0::::<br>　　auth:*::0:0::::<br>　　cron:*::0:0::::<br>　　listen:*::0:0::::<br>　　lp:*::0:0::::<br>　　sam:EkdiSECLWPdSa:9740:0:0::::</div>
<strong>3、用户组的所有信息都存放在/etc/group文件中。</strong><br><br>将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段。每个用户都属于某个用户组；一个组中可以有多个用户，一个用户也可以属于不同的组。当一个用户同时是多个组中的成员时，在/etc/passwd文件中记录的是用户所属的主组，也就是登录时所属的默认组，而其他组称为附加组。用户要访问属于附加组的文件时，必须首先使用newgrp命令使自己成为所要访问的组中的成员。用户组的所有信息都存放在/etc/group文件中。此文件的格式也类似于/etc/passwd文件，由冒号(:)隔开若干个字段，这些字段有：<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">组名:口令:组标识号:组内用户列表</div>
　　1）&#8220;组名&#8221;是用户组的名称，由字母或数字构成。与/etc/passwd中的登录名一样，组名不应重复。<br>　　2）&#8220;口令&#8221;字段存放的是用户组加密后的口令字。一般Linux 系统的用户组都没有口令，即这个字段一般为空，或者是*。<br>　　3）&#8220;组标识号&#8221;与用户标识号类似，也是一个整数，被系统内部用来标识组。<br>　　4）&#8220;组内用户列表&#8221;是属于这个组的所有用户的列表/b]，不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组，也可能是附加组。<br><br>　　<strong>/etc/group文件的一个例子如下：</strong><br><br>　　# cat /etc/group<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">　　root::0:root<br>　　bin::2:root,bin<br>　　sys::3:root,uucp<br>　　adm::4:root,adm<br>　　daemon::5:root,daemon<br>　　lp::7:root,lp<br>　　users::20:root,sam</div>
<span style="FONT-SIZE: 13px"><strong>四、批量添加用户<br></strong><br>　　添加和删除用户对每位Linux系统管理员都是轻而易举的事，比较棘手的是如果要添加几十个、上百个甚至上千个用户时，我们不太可能还使用useradd一个一个地添加，必然要找一种简便的创建大量用户的方法。Linux系统提供了创建大量用户的工具，可以让您立即创建大量用户，方法如下：<br><br>　　<strong>（1）先编辑一个文本用户文件</strong>，每一列按照/etc/passwd密码文件的格式书写，要注意每个用户的用户名、UID、宿主目录都不可以相同，其中密码栏可以留做空白或输入x号。一个范例文件user.txt内容如下：<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">　　user001::600:100:user:/home/user001:/bin/bash<br>　　user002::601:100:user:/home/user002:/bin/bash<br>　　user003::602:100:user:/home/user003:/bin/bash<br>　　user004::603:100:user:/home/user004:/bin/bash<br>　　user005::604:100:user:/home/user005:/bin/bash<br>　　user006::605:100:user:/home/user006:/bin/bash</div>
　　<strong>（2）以root身份执行命令/usr/sbin/newusers，从刚创建的用户文件user.txt中导入数据，创建用户：</strong><br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php"># newusers &lt; user.txt</div>
　　然后可以执行命令vipw或vi /etc/passwd检查/etc/passwd文件是否已经出现这些用户的数据，并且用户的宿主目录是否已经创建。<br><br>　　<strong>（3）执行命令/usr/sbin/pwunconv</strong>，将/etc/shadow产生的shadow密码解码，然后回写到/etc/passwd中，并将/etc/shadow的shadow密码栏删掉。这是为了方便下一步的密码转换工作，即先取消shadow password功能。<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php"># pwunconv</div>
　　<strong>（4）编辑每个用户的密码对照文件</strong>，范例文件passwd.txt内容如下：<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">　　user001:密码<br>　　user002:密码<br>　　user003:密码<br>　　user004:密码<br>　　user005:密码<br>　　user006:密码</div>
　　<strong>（5）以root身份执行命令/usr/sbin/chpasswd</strong>，创建用户密码，chpasswd会将经过/usr/bin/passwd命令编码过的密码写入/etc/passwd的密码栏。<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php"># chpasswd &lt; passwd.txt</div>
　　<strong>（6）确定密码经编码写入/etc/passwd的密码栏后</strong>，执行命令/usr/sbin/pwconv将密码编码为shadow password，并将结果写入/etc/shadow。<br><br>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php"># pwconv</div>
<p>　　这样就完成了大量用户的创建了，之后您可以到/home下检查这些用户宿主目录的权限设置是否都正确，并登录验证用户密码是否正确。</p>
<p></span>&nbsp;</p>
<p style="TEXT-INDENT: 2em">五、赋予普通用户特殊权限</strong><br><br>　　在Linux系统中，管理员往往不止一人，若每位管理员都用root身份进行管理工作，根本无法弄清楚谁该做什么。所以最好的方式是：管理员创建一些普通用户，分配一部分系统管理工作给他们。<br><br>　　我们不可以使用su让他们直接变成root，因为这些用户都必须知道root的密码，这种方法很不安全，而且也不符合我们的分工需求。一般的做法是利用权限的设置，依工作性质分类，让特殊身份的用户成为同一个工作组，并设置工作组权限。例如：要wwwadm这位用户负责管理网站数据，一般Apache Web Server的进程httpd的所有者是www，您可以设置用户wwwadm与www为同一工作组，并设置Apache默认存放网页目录/usr/local/httpd/htdocs的工作组权限为可读、可写、可执行，这样属于此工作组的每位用户就可以进行网页的管理了。<br><br>　　但这并不是最好的解决办法，例如管理员想授予一个普通用户关机的权限，这时使用上述的办法就不是很理想。这时您也许会想，我只让这个用户可以以root身份执行shutdown命令就行了。完全没错，可惜在通常的Linux系统中无法实现这一功能，<strong>不过已经有了工具可以实现这样的功能——sudo</strong>。<br><br>　　sudo通过维护一个特权到用户名映射的数据库将特权分配给不同的用户，这些特权可由数据库中所列的一些不同的命令来识别。为了获得某一特权项，有资格的用户只需简单地在命令行输入sudo与命令名之后，按照提示再次输入口令（用户自己的口令，不是root用户口令）。例如，sudo允许普通用户格式化磁盘，但是却没有赋予其他的root用户特权。<br><br><strong>1、sudo工具由文件/etc/sudoers进行配置</strong>，该文件包含所有可以访问sudo工具的用户列表并定义了他们的特权。一个典型的/etc/sudoers条目如下：<br><br></p>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">liming ALL=(ALL) ALL</div>
<p>　　这个条目使得用户liming作为超级用户访问所有应用程序，如用户liming需要作为超级用户运行命令，他只需简单地在命令前加上前缀sudo。因此，要以root用户的身份执行命令format，liming可以输入如下命令：<br></p>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php"># sudo /usr/sbin/useradd sam</div>
<p>　　注意：命令要写绝对路径，/usr/sbin默认不在普通用户的搜索路径中，或者加入此路径：PATH=$PATH:/usr/sbin;export PATH。另外，不同系统命令的路径不尽相同，可以使用命令&#8220;whereis 命令名&#8221;来查找其路径。<br><br>　　这时会显示下面的输出结果：<br><br></p>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">　　We trust you have received the usual lecture from the local System<br>　　Administrator. It usually boils down to these two things:<br>　　#1) Respect the privacy of others.<br>　　#2) Think before you type.<br>　　Password:</div>
<p>　　如果liming正确地输入了口令，命令useradd将会以root用户身份执行。<br><br>　　注意：配置文件/etc/sudoers必须使用命令 Visudo来编辑。<br><br>　　只要把相应的用户名、主机名和许可的命令列表以标准的格式加入到文件/etc/sudoers，并保存就可以生效，再看一个例子。<br><br><strong>2、例子：管理员需要允许gem用户在主机sun上执行reboot和shutdown命令，</strong>在/etc/sudoers中加入：<br><br></p>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">gem sun=/usr/sbin/reboot，/usr/sbin/shutdown </div>
<p>　　注意：命令一定要使用绝对路径，以避免其他目录的同名命令被执行，从而造成安全隐患。<br><br>　　然后保存退出，gem用户想执行reboot命令时，只要在提示符下运行下列命令：<br><br></p>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">$ sudo /usr/sbin/reboot</div>
<p>　　输入正确的密码，就可以重启服务器了。<br><br>　　如果您想对一组用户进行定义，可以在组名前加上%，对其进行设置，如：<br><br></p>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">%cuug ALL=(ALL) ALL</div>
<p><strong>3、另外，还可以利用别名来简化配置文件。</strong>别名类似组的概念，有用户别名、主机别名和命令别名。多个用户可以首先用一个别名来定义，然后在规定他们可以执行什么命令的时候使用别名就可以了，这个配置对所有用户都生效。主机别名和命令别名也是如此。注意使用前先要在/etc/sudoers中定义：User_Alias, Host_Alias, Cmnd_Alias项，在其后面加入相应的名称，也以逗号分隔开就可以了，举例如下：<br><br></p>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">　　Host_Alias SERVER=no1<br>　　User_Alias ADMINS=liming，gem<br>　　Cmnd_Alias SHUTDOWN=/usr/sbin/halt，/usr/sbin/shutdown，/usr/sbin/reboot<br>　　ADMINS SERVER=SHUTDOWN</div>
<p><strong>4、再看这个例子：</strong><br><br></p>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">ADMINS ALL=(ALL) NOPASSWD: ALL</div>
<p>　　表示允许ADMINS不用口令执行一切操作，其中&#8220;NOPASSWD:&#8221;项定义了用户执行操作时不需要输入口令。<br><br><strong>5、sudo命令还可以加上一些参数，完成一些辅助的功能</strong>，如<br><br></p>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">$ sudo &#8211;l</div>
<p>　　会显示出类似这样的信息：<br><br></p>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">　　User liming may run the following commands on this host:<br>　　(root) /usr/sbin/reboot</div>
<p>　　说明root允许用户liming执行/usr/sbin/reboot命令。这个参数可以使用户查看自己目前可以在sudo中执行哪些命令。<br><br><strong>6、在命令提示符下键入sudo命令会列出所有参数</strong>，其他一些参数如下：<br><br></p>
<div style="FONT-WEIGHT: bold; MARGIN: 0px 2em">CODE: </div>
<div class="php">　　-V 显示版本编号。<br>　　-h 显示sudo命令的使用参数。<br>　　-v 因为sudo在第一次执行时或是在N分钟内没有执行（N预设为5）会询问密码。这个参数是重新做一次确认，如果超过N分钟，也会问密码。<br>　　-k 将会强迫使用者在下一次执行sudo时询问密码（不论有没有超过N分钟）。<br>　　-b 将要执行的命令放在背景执行。<br>　　-p prompt 可以更改问密码的提示语，其中%u会替换为使用者的账号名称，%h会显示主机名称。<br>　　-u username/#uid 不加此参数，代表要以root的身份执行命令，而加了此参数，可以以username的身份执行命令（#uid为该username的UID）。<br>　　-s 执行环境变量中的 SHELL 所指定的 Shell ，或是 /etc/passwd 里所指定的 Shell。<br>　　-H 将环境变量中的HOME（宿主目录）指定为要变更身份的使用者的宿主目录。（如不加-u参数就是系统管理者root。）</div>
<p>　　 要以系统管理者身份（或以-u更改为其他人）执行的命令。</p>
<p>&nbsp;</p><img src ="http://www.phpweblog.net/killjin/aggbug/1958.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-09-14 08:37 <a href="http://www.phpweblog.net/killjin/archive/2007/09/14/1958.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux如何编译安装源码包软件</title><link>http://www.phpweblog.net/killjin/archive/2007/09/14/1956.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Thu, 13 Sep 2007 20:05:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/09/14/1956.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/1956.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/09/14/1956.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/1956.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/1956.html</trackback:ping><description><![CDATA[<strong>一、什么是源码包软件；<br><br></strong>顾名思义，源码包就是源代码的可见的软件包，基于Linux和BSD系统的软件最常见；在国内源可见的软件几乎绝迹；大多开源软件都是国外出品；在国内较为出名的开源软件有fcitx;lumaqq;Lumaqq及scim等；
<p>但软件的源代码可见并不等于软件是开源的，我们还要以软件的许可为准；比如有些软件是源码可见的，但他约定用户只能按他约定的内容来修改；比如vbb论坛程序；所以一个软件是否是开源软件，得具备两个条件；一是源代码可见；二是要有宽松的许可证书，比如GPL证书等；</p>
<p>在GNU Linux或BSD社区中，开发人员在放出软件的二进制软件包的同时，也会为我们提供源代码软件包；<br><strong><br>二、源代码有何用？<br></strong><br>一个软件的如果有源码，是任何人都能看到他是怎么开发而来的，就像一个瓶子，比如瓶子制作的模具是什么；需要什么材料；具体的用途以及瓶子的详细说明书等等。软件的开放源码就是类似，开发者在给我们软件的同时，也会告诉我们软件是怎么开发出来的；只要我们的水平足够的高，所有的代码都在那里，我们就可以修改和定制软件，以适合我们的需要；如果Windows开放源代码，并以GPL发布，一样是有人能造出来N多的Windows发行版；遗憾的是Windows并不是开源系统；<br><strong><br>所以软件的源代码的用处无非是以下两点；<br></strong><br>1、软件根据用户的需要加以定制；<br>2、二次开发；注：要根据软件的许可证书约定为准，开发者许可二次开发才行；<br><strong><br>三、怎样安装以源码包打包的软件；</strong><br><font color=blue><strong><br>1、源码包的打包格式；<br></strong></font></p>
<p>源代码一般以file.tar.gz file.tar.bz2或file.src.rpm 打包；file.tar.gz和file.tar.bz2格式的解包命令如下；<br>
<div class=codeblock><code><font face=新宋体>[root@localhost beinan]# tar jxvf file.tar.bz2<br>[root@localhost beinan]# tar zxvf file.tar.gz</font></code></div>
<br>至于file.src.rpm 的用法，请参见：<a href="http://linux.chinaitlab.com/set/39788.html"><font color=#000099>《file.src.rpm 使用方法的简介》</font></a><br><font color=blue><strong><br>2、如何编译安装源码包；（大多数）</strong></font><br><font color=blue><br>1）解开软件包查看帮助文档；<br></font><br>我们解开一个包后，进入解压包，一般都能发现README（或reame)和INSTALL( 或install)；或doc（或DOC)目录；看名字就知道个差不多；
<p>&nbsp;</p>
<p>比如我们下载一个比较新的fcitx 的软件包，比如是 <a href="http://www.fcitx.org/download" target=_blank><font color=#000099>fcitx-3.2-050827.tar.bz2</font></a></p>
<p>我们在解开这个软件包会会发现如下的文件；</p>
<p>
<div class=codeblock><code><font face=新宋体>[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2<br>[root@localhost fcitx]#cd fcitx<br>[root@localhost fcitx]# ls<br>aclocal.m4 config.guess configure debian INSTALL Makefile.in src xpm<br>AUTHORS config.h.in configure.in depcomp install-sh missing THANKS<br>autogen.sh config.rpath COPYING doc lib mkinstalldirs TODO<br>ChangeLog config.sub data fcitx.spec.in Makefile.am README tools</font></code></div>
<p><font face=新宋体></font></p>
<p>所以我们就可以看fcitx的INSTALL 和doc目录的安装文档了；里面都告诉我们如何安装；</p>
<p>有时安装文档也会在开发者的主页上有详细的说明，及常见问题的处理等；比如 <a href="http://linux.chinaitlab.com/info/38307.html" target=_blank><font color=#4444cc>LumaQQ</font></a><br><font color=blue><br>2）编译安装软件的条件；<br></font><br>首先我们在Linux系统中至少得把开发工具安装上，比如 gcc ;perl;python;glibc;gtk;make ;automake 等开发工具或基础包；还要安装一些相应的开发包，一般是文件名包括dev的，比如kernel-devel；还有一些开发库，比如以lib开头的；如果您在编译软件时，有时提示缺少什么东西之类的，大多少的是这些开发工具和开发库等；从光盘中找出安装就是了；有时光盘没有提供，请用google搜索相应的软件包，有时可能也会用到源码包编译安装所依赖的包；</p>
<p>有时本来系统中已经安装了所依赖的包，但系统提示找不到应该怎么办？这时需要我们设置一下PKG_CONFIG_PATH的环境变量就行了；</p>
<p>#export PKG_CONFIG_PATH=/usr/lib/pkgconfig<br>或<br>#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig<br>然后我们再来运行编译的./configure ;make ;make install ，尝试着来吧；</p>
<p>以java开发的工具开发的程序，要用到 jre或者jdk ；jdk已经包括jre了，所以如果我们只是要求有一个java程序运行的环境，只需要安装jre就行了；安装好jre，配置一下java的环境变量就可以用了。如果是图形界面的程序，点点鼠标就OK了；</p>
<p>用perl 开发的程序，是需要perl环境的，所以必须得把perl的包安装上，python 也同理；<br><font color=blue><br>3）编译安装软件的方法；</font></p>
<p>大多以tar.gz 和tar.bz2打包软件，大多是通过 ./configure ;make ;make install 来安装的；有的软件是直接make;make install ；</p>
<p>我们可以通过./configure --help 来查看配置软件的功能；大多软件是提供./configure 配置软件的功能的；少数的也没有，如果没有的就不用./configure ;直接make;make install 就行了；</p>
<p>./configure 比较重要的一个参数是 --prefix ，用--prefix 参数，我们可以指定软件安装目录；当我们不需要这个软件时，直接删除软件的目录就行了；</p>
<p>比如我们可以指定fcitx 安装到 /opt/fcitx 目录中；<br>
<div class=codeblock><code><font face=新宋体>[root@localhost fcitx]#./configure --prefix=/opt/fcitx</font></code></div>
<p><font face=新宋体></font></p>
<p>如果我们不需要fcitx 时，可以直接删除 /opt/fcitx 目录；</p>
<p>所以我们举这个例子中，fcitx如果定制安装到 /opt/fcitx目录中，完整的安装方法应该是：<br>
<div class=codeblock><code><font face=新宋体>[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2<br>[root@localhost fcitx]#cd fcitx<br>[root@localhost fcitx]# ./configure --prefix=/opt/fcitx<br>[root@localhost fcitx]# make<br>[root@localhost fcitx]# make install</font></code></div>
<p><font face=新宋体></font></p>
<p>调用fcitx ，应该是<br>
<div class=codeblock><code><font face=新宋体>[beinan@localhost ~]#/opt/fcitx/bin/fcitx</font></code></div>
<p><font face=新宋体></font></p>
<p>如果您想要让fcitx 只要执行fcitx ，就能调用，请配置环境变量，或者在/usr/bin 中做一个fcitx 的链接；<br>
<div class=codeblock><code><font face=新宋体>[root@localhost beinan]# ln -s /opt/fcitx/bin/fcitx /usr/bin/fcitx</font></code></div>
<p><font face=新宋体></font></p>
<p>一般的情况下都有说，但大多软件没有提供源码包的卸载方法；我们可以找到软件的安装点删除。主要看你把它安装在哪了。</p>
<p>设置环境变量PATH，请参见：<a href="http://linux.chinaitlab.com/unix/39860.html"><font color=#000099>《在Fedora Core 中，有些常用命令怎么没有？解决办法设置PATH》</font></a></p>
<p>所以您的PATH可以设置成这样的；<br>
<div class=codeblock><code><font face=新宋体>export PATH=".:/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/X11R6/bin:/sbin:/opt/fcitx/bin"</font></code></div>
<p><font face=新宋体></font></p>
<p>当然这只是举个例子，fcitx 可以进入桌面自动运行的，请参看 http://www.fcitx.org 官方站上的安装说明；举个例子只是让大家好理解一点；</p>
<p>再举一个例子，比如我想安装mlterm ；并指定安装目录为/opt/mlterm中； http://mlterm.sourceforge.net </p>
<p>
<div class=codeblock><code><font face=新宋体>#./configure --prefix=/opt/mlterm<br>#make<br>#make install</font></code></div>
<br>把源码包安装的软件，都指定安装在 /opt目录中，这样不就知道了软件安装在哪里了；也方便卸载；<br><font color=blue><strong><br>3.其它类型软件；</strong></font><br><font color=blue><br>1）基于perl 和python 的程序的安装；<br></font><br>一般情况下，用 #perl file.pl安装；比如：VMware 的Linux版本的安装；<br>
<div class=codeblock><code><font face=新宋体>[root@localhost vmware-distrib]# perl vmware-install.pl</font></code></div>
<p><font face=新宋体></font></p>
<p>基于python 开发，也得用 python file.py 来安装</p>
<p>一般软件包都有README和INSTALL 或者 DOC 文档，看文档安装；<br><font color=blue><br>2）有些安装程序是脚本型的调用；要用 #sh 文件名<br></font><br>比如NVdia驱动的安装就是这样的；<br>
<div class=codeblock><code><font face=新宋体>[beinan@localhost ~]# sh NFORCE-Linux-x86-1.0-0306-pkg1.run</font></code></div>
<p><font face=新宋体></font></p>
<p>当然也能通过 chmod 755 NFORCE-Linux-x86-1.0-0306-pkg1.run ，然后 ./NFORCE-Linux-x86-1.0-0306-pkg1.run 来安装；</p>
<p>也有一些是以file.bin 文件<br>
<div class=codeblock><code><font face=新宋体>[beinan@localhost ~]# chmod 755 file.bin<br>[beinan@localhost ~]# ./file.bin</font></code></div>
<p><font face=新宋体></font></p>
<p>大抵如此。。。。。。。。</p>
<p><strong>后记：</strong> 源码包及特殊格式的软件安装就写这么多，写的再多也是写不完。我们主要还是以软件的安装文档为准；安装软件时，如果只是简单的应用，如果有rpm包，尽可能的用rpm包；主要是方便和易于管理；<br><strong><br>附录：</strong></p>
<p>安装软件时，最好用各自发行版所提供的系统软件包管理工具，对于Fedora/Redhat 您可以参考如下文章；</p>
<p>0）RPM 基础 <a href="http://linux.chinaitlab.com/set/39786.html"><font color=#000099>《RPM 的介绍和应用》</font></a></p>
<p>1）Fedora 系统管理软件包工具 system-config-packages，方便的添加和移除系统安装盘提供的软件包，详情请看<a href="http://linux.chinaitlab.com/set/39789.html"><font color=#000099> 《Fedora 软件包管理器system-config-packages》</font></a></p>
<p>2）Redhat 系统管理软件包工具,新一点的系统应该是 redhat-config-packages ，用法和<a href="http://linux.chinaitlab.com/set/39789.html"><font color=#000099> 《Fedora 软件包管理器system-config-packages》</font></a> 一样；</p>
<p>3）apt + synaptic 软件包在线安装、移除、升级工具； 用法：<a href="http://linux.chinaitlab.com/unix/39857.html"><font color=#000099>《用apt+synaptic 在线安装或升级Fedora core 4.0 软件包》</font></a><br>4）yum 软件包在线安装、升级、移除工具；用法：<a href="http://linux.chinaitlab.com/set/39828.html"><font color=#000099>《Fedora/Redhat 在线安装更新软件包，yum 篇》</font></a></p>
<p>5）<a href="http://linux.chinaitlab.com/set/39788.html"><font color=#000099>《file.src.rpm 使用方法的简介》</font></a></p>
<p>6）<a href="http://linux.chinaitlab.com/set/39862.html#"><font color=#000099>《如何编译安装源码包软件》</font></a></p>
<p>目前 apt和yum 已经极为成熟了，建议我们安装软件时采用 apt或者yum ；如果安装系统盘提供的软件包，可以用 system-config-packages 或redhat-config-packages ；</p>
<img src ="http://www.phpweblog.net/killjin/aggbug/1956.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-09-14 04:05 <a href="http://www.phpweblog.net/killjin/archive/2007/09/14/1956.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>让putty支持中文输入和显示</title><link>http://www.phpweblog.net/killjin/archive/2007/09/14/1955.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Thu, 13 Sep 2007 19:07:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/09/14/1955.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/1955.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/09/14/1955.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/1955.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/1955.html</trackback:ping><description><![CDATA[对于经常在windows下远程ssh到linux的用户而言，putty可能是你最好的选择。<br><br>可是缺省情况下，putty对中文的支持却让人不敢恭维，如果远程linux的locale设置为zh_CN.*(bg2312,gbk,utf8等等），显示就是乱码。经研究发现，其实putty的中文支持还是很好的，呵呵<br><br>打开putty主程序，选择window-〉Appearance-〉Font settings-〉Change...,选择Fixedsys字体,字符集选择CHINESE_GB2312。<br>在window-〉Appearance-〉Translation中，Received data assumed to be in which character set 中,把Use font encoding改为UTF-8.<br>如果经常使用,把这些设置保存在session里面.<br><br>现在打开putty,登录成功后,在shell中输入:export LC_ALL='zh_CN.utf8',现在已经可以完美的支持中文了<br><br>可以打开vim输入中文测试一下,而且也不会出现删除半个汉字的问题.
<img src ="http://www.phpweblog.net/killjin/aggbug/1955.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-09-14 03:07 <a href="http://www.phpweblog.net/killjin/archive/2007/09/14/1955.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux中的远程连接 SSH and VNC图形模式</title><link>http://www.phpweblog.net/killjin/archive/2007/09/14/1954.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Thu, 13 Sep 2007 17:35:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/09/14/1954.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/1954.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/09/14/1954.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/1954.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/1954.html</trackback:ping><description><![CDATA[<p>我们知道在windows下面我们可以用远程桌面连接来控制其它电脑，<br>但在linux环境下又怎么样来连接呢?</p>
<p>不过在说怎样连接之前还是要先明确一个概念，为什么我标题没有用linux中的远程桌面连接呢，<br>这是因为Linux下面的桌面，也就是我们所说的X Window ，只是linux下的一个应用程序而已，<br>所以linux中的远程连接就分为shell和X 桌面连接两种。<br><a id=more-141></a><br>先说说通过SSH（Secure Shell)连接到linux下的shell，如果的操作平台是windows下，<br>你可以下载SSH客户端工具连接到linux，比如最常用的PuTTY，你可以去这里下载：<br>http://www.chiark.greenend.org.uk/~sgtatham/putty/<br>运行后，如图所示</p>
<p>&#160;</p>
<p><img height=438 alt="" src="http://www.phpweblog.net/images/phpweblog_net/killjin/1.jpg" width=451 border=0>输入你linux主机的IP，默认端口为22，然后点击Open，<br>就会出现登录界面，输入用户名和密码：：</p>
<p><img height=52 alt="" src="http://www.phpweblog.net/images/phpweblog_net/killjin/2.jpg" width=345 border=0></p>
<p><img height=63 alt="" src="http://www.phpweblog.net/images/phpweblog_net/killjin/3.jpg" width=296 border=0></p>
<p>登录过程就算完成了。</p>
<p>如果你客户端也用的linux呢，那更方便了，直接输入：<br>ssh -l username [address of the remote host]连接，<br>第一次连接时会让你确认，输入yes，然后再输入口令就行了。</p>
<p>其实通过ssh连接，我们已经完全可以远程管理主机了，<br>不过有时候也需要在X Window下做一些事，<br>接下来就是说说怎么样远程连接到linux的桌面。</p>
<p>通常我们用配置XDM（X Display Manager）和VNC来远程连接，<br>这里我要说的是用vnc来实行远程连接。</p>
<p>提起VNC大家肯定不要陌生，它是一个踌平台的远程控制软件，<br>有linux上装好它的服务器端，我们就可以通过客户端来进行连接了。<br>安装就不多说了，完成后在提示符下输入：<br>vncserver</p>
<p><img height=137 alt="" src="http://www.phpweblog.net/images/phpweblog_net/killjin/4.jpg" width=437 border=0></p>
<p>就算是启动了，注意后面的数字1，以后连接的时候要用到<br>这样vnc服务器就启动了，如果你第一次运行vncserver，会要求你输入访问密码。</p>
<p>如果你是在windows平台下连接linux，那直接安装vnc的的客户端就行了，<br>也就是安装vncviewer，安装完成后启动：</p>
<p><img height=107 alt="" src="http://www.phpweblog.net/images/phpweblog_net/killjin/5.jpg" width=361 border=0></p>
<p>输入IP加上标识号，如前面启动vnc服务是1，那这里就填1，依此类推。点击确定：</p>
<p><img height=95 alt="" src="http://www.phpweblog.net/images/phpweblog_net/killjin/6.jpg" width=366 border=0></p>
<p>输入访问密码，回车：</p>
<p><img height=369 alt="" src="http://www.phpweblog.net/images/phpweblog_net/killjin/7.jpg" width=460 border=0></p>
<p>连接成功。<br>如果你操作平台是linux,那么在提示符下输入:<br>vncviewer IP : x (x为标识符),就可以进行连接了。</p>
<p>还有种情况，如果是linux主机连接windows，除了用vnc外，<br>在linux中有个类似于windows中的远程桌面的工具包，那就是Rdesktop，在提示符下输入：<br>rdesktop ip 就可以了。另外你还以在gnome的工具菜单里启动：</p>
<p><img height=459 alt="" src="http://www.phpweblog.net/images/phpweblog_net/killjin/8.jpg" width=408 border=0></p>
<p>输入IP，用户名和密码，如果没有域，就留空，然后连接，就和XP桌面一样，真是很方便 ，顺便提醒一句，如果你要连接的linux主机位于局域网内，可别忘了做端口映射，如果用SSH就映射22到主机，如果是用VNC连接，就要根据你的标识了，比如本例中的1，就映射端口5901，依此类推。</p>
<img src ="http://www.phpweblog.net/killjin/aggbug/1954.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-09-14 01:35 <a href="http://www.phpweblog.net/killjin/archive/2007/09/14/1954.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GNU parted的指令說明</title><link>http://www.phpweblog.net/killjin/archive/2007/09/14/1952.html</link><dc:creator>Prog</dc:creator><author>Prog</author><pubDate>Thu, 13 Sep 2007 16:27:00 GMT</pubDate><guid>http://www.phpweblog.net/killjin/archive/2007/09/14/1952.html</guid><wfw:comment>http://www.phpweblog.net/killjin/comments/1952.html</wfw:comment><comments>http://www.phpweblog.net/killjin/archive/2007/09/14/1952.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/killjin/comments/commentRss/1952.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/killjin/services/trackbacks/1952.html</trackback:ping><description><![CDATA[Parted是支很好用的程式，可以用來切割磁碟，也可以變動現有分割區的大小，很好用，尤其是變動分割區大小的功能超級好用，就像我學習parted的原因，是為了把我的/usr擴大(因為當初在分割的時候，把usr切太小了)。但網路上似乎沒有完整一點的parted指令說明，於是我就依據官方document，來做整理，因為小弟的英文程度不是很好，所以恐怕有的地方會有錯，或者有人願意為這文件增加內容，都歡迎指教，謝謝!! <br><br>GNU parted <br><br>文中的特殊用詞說明： <br>minor(我不會翻，意思就是在 parted裡的partition編號) <br>disk label(磁碟標記) <br>flag(旗標) <br><br>指令說明 <br>check <br>用法：check minor <br>說明：檢查partition有沒有錯誤 <br><br>cp <br>用法：cp [來源裝置] 來源minor 目的minor <br>注意：加了[]的參數是可有可無的參數。 <br>說明：複製來源partition的檔案系統至目的partition，要注意的是下了這個指令後，會將目的partition原本的資料內容清除喔&#8230;.要小心。而那個可選擇性的來源裝置選項就是用在&#8221;跨裝置&#8221;複製檔案系統，很方便吧。 <br>範例： <br>(parted) cp /dev/hdb 2 3 <br>意思是將/dev/hdb2的檔案系統拷貝至minor 3 <br>支援的檔案系統有： <br>ext2,ext3(目的partition的容量要大於來源partition) <br>fat16,fat32 <br>linux-swap <br>reiserfs <br><br>help <br>用法：help 指令 <br>說明：show出一般的help，或者是某項指令的help說明 <br><br>mklabel <br>用法：mklabel 標記類型 <br>有以下這些類型： <br>bsd，loop(raw disk access)、gpt、mac、msdos、pc98、sun <br>說明：為整個磁碟建立一個新的磁碟標記，當建立新的磁碟標記時，此磁碟並沒有任何的partition。，因此尚不能使用，必須使用其他程式如Gpart來回復partition。 <br><br>mkfs <br>用法：mkfs minor 檔案系統類型 <br>說明：為一個partition 建立檔案系統類型，這個動作將會破壞掉此partition的所有資料。 <br>支援的檔案系統類型有： <br>ext2，mips，fat16，fat32，linux-swap，reiserfs <br>範例： <br>(parted)mkfs 2 fat32 <br>為minor 2這個partition建立為fat32的檔案系統類型 <br><br>mkpart <br>用法：mkpart 分割區類型 [檔案系統類型] 起始 結束 <br>說明：mkpart用來建立一個新的分割區，分割區類型有primary，extended， <br>logical。 <br>範例： <br>(parted)mkpart logical 0.0 692.1 <br>建立一個邏輯分割區，容量為692.1MB。注意的是，由於磁區計算方法不同的原因，也許你在建立容量範圍的時候會產生些微的偏差值，但這並不會對partition造成影響。 <br><br>mkpartfs <br>用法：mkpartfs 分割區類型 檔案系統類型 起始 結束 <br>說明：mkpartfs 用來建立一個新的分割區及檔案系統。 <br>範例： <br>(parted)mkpartfs logical ext2 440 670 <br>建立一個ext2的邏輯分割區，起始為440MB，結束為670MB，這個分割區共計230MB。 <br><br>move <br>用法：move minor 起始 [結束] <br>說明：可以將整個partition位置移動。如果只給起始位置，沒給結束位置的話，將會保持這個partition原本的大小。 <br>範例： <br>(parted)move 2 150 <br>將minor為２的partition起始位置移動到150MB的地方。 <br><br>name <br>用法：name minor 名字 <br>說明：為partition命名（只有Mac及PC98可以用）。 <br>範例： <br>(parted)name 2 &#8216;abc&#8217; <br>將partition 2 命名為abc。 <br><br>print <br>用法：print <br>說明：show出parted正在處理的磁碟裝置的分割表。 <br>範例： <br>(parted) print <br>Disk geometry for /dev/hda: 0.000-2445.679 megabytes <br>Disk label type: msdos <br>Minor Start End Type Filesystem Flags <br>1 0.031 945.000 primary FAT boot, lba <br>2 945.000 2358.562 primary ext2 <br>3 2358.562 2445.187 primary linux-swap <br><br>quit <br>用法：quit <br>說明：離開parted。 <br><br>rescue <br>用法：rescue start end <br>說明：用來挽救不小心被你用rm指令delete掉的partition。 <br>範例： <br>(parted) print <br>Disk geometry for /dev/hdc: 0.000-8063.507 megabytes <br>Disk label type: msdos <br>Minor Start End Type Filesystem Flags <br>1 0.031 8056.032 primary ext3 <br><br>(parted) rm <br>Partition number? 1 <br>(parted) print <br>Disk geometry for /dev/hdc: 0.000-8063.507 megabytes <br>Disk label type: msdos <br>Minor Start End Type Filesystem Flags <br><br>Oh my god~~不小心把ext3的partition砍了，這時候就rescue就派上用場了 <br>(parted) rescue <br>Start? 0 <br>End? 8056 <br>Information: A ext3 primary partition was found at 0.031Mb -&gt; <br>8056.030Mb. Do you want to add it to the partition table? <br>Yes/No/Cancel? y <br><br>(parted) print <br>Disk geometry for /dev/hdc: 0.000-8063.507 megabytes <br>Disk label type: msdos <br>Minor Start End Type Filesystem Flags <br>1 0.031 8056.032 primary ext3 <br><br>嘿嘿~降就救回來了!! <br><br>resize <br>用法：resize minor 起始 結束 <br>說明：調整partion的大小，要注意，resize只能改變partition大小，並不能改變minor，另外當你在改變ext2，ext3的大小時，新的起始位置必須要和舊的一，也就是說只能動尾不能動頭啦!! <br>範例： <br>(parted)resize 3 200 850 <br>調整第3個partition為從200MB ~ 850MB。 <br><br>rm <br>用法：rm minor <br>說明：移除partition，除果你不小心用rm指令搞掉了一個partition，你可以用mkpart來回復。注意，假如你現在有編號1~8，8個minor，當你把minor <br>6砍掉時，原本的minor7及minor8就會向前變為minor6及minor7，因此當你有做移除partition動作時，記得要去修改/etc/fstab裡頭的設定喔。 <br>範例： <br>(parted)rm 3 <br>移除minor3 這個partion。 <br><br>select <br>用法：select 裝置名稱 <br>說明：用來直接在parted裡切換裝置。 <br>範例： <br>(parted)select /dev/hdb <br>切換處理的裝置到/dev/hdb <br><br>set <br>用法：set minor flag 狀態(on,off) <br>說明：變更partiton的flag，狀態那欄就是拿來設定flag要打開或關閉用的。Flag有下列幾種：boot、lba、root、swap、hidden、raid、LVM。 <br>範例： <br>(parted)set 1 boot on <br>將partition1的旗標設為boot並且將之開啟。 <br><br>講那麼多，不如做幾個實例看看吧!! <br>範例 1：增加partition的大小 <br>假如我們的/dev/hda的分割區是以下這樣： <br>(parted) print <br>Disk geometry for /dev/hda: 0.000-1000.000 megabytes <br>Disk label type: msdos <br>Minor Start End Type Filesystem Flags <br>1 0.063 500.000 primary ext2 <br>2 500.000 625.000 primary linux-swap <br><br>由上面可以看出我們擁有1000MB的空間，partition1用去500MB，partition2用去125MB，還有375MB空間可供運用，假如你想要將剩餘的375MB空間全部都給partition1使用的話，就照著下面的步驟來囉!! <br>#parted /dev/hda <br>進入parted，並選擇hda為操作的磁碟 <br><br>(parted)rm 2 <br>刪除partition2。注意：在一般增加partition空間的情形下並不需要做刪除的動作，因為刪除動作會將partition裡的資料毀損。在這個例子裡，partiton2是linux-swap，swap並不會儲存資料，所以把partiton2刪除了並不會有所影響，我們稍後再建立一個 linux-swap的partition就可以了。 <br><br>(parted)resize 1 0.063 874.9 <br>調整partition1的位置為從0.063到874.999，共875MB。 <br>(parted) print <br>Disk geometry for /dev/hda: 0.000-1000.000 megabytes <br>Disk label type: msdos <br>Minor Start End Type Filesystem Flags <br>1 0.063 874.999 primary ext2 <br><br>(parted)mkpartfs primary linux-swap 875 999.9 <br>建立新的linux-swap partition。 <br><br>(parted) print <br>Disk geometry for /dev/hda: 0.000-1000.000 megabytes <br>Disk label type: msdos <br>Minor Start End Type Filesystem Flags <br>1 0.063 874.999 primary ext2 <br>2 875.000 1000.000 primary linux-swap <br><br>這樣就大功告成啦~~ <br><br>範例2：增加一個即將不夠用的partition空間 <br>假設我們的/dev/hda如下： <br>(parted) print <br>Disk geometry for /dev/hda: 0-8063.5 megabytes <br>Disk label type: msdos <br>Minor Start End Type Filesystem Flags <br>1 0.0 23.5 primary ext2 boot <br>2 23.5 8056.0 extended <br>5 23.6 3545.6 logical ext2 <br>6 3545.6 7067.7 logical ext2 <br>7 7067.7 7326.5 logical ext2 <br>8 7326.5 7585.4 logical ext2 <br>9 7585.4 7844.2 logical linux-swap <br><br>$ df -h <br>Filesystem Size Used Avail Use% Mounted on <br>/dev/hda8 251M 31M 207M 13% / <br>/dev/hda1 23M 2.4M 19M 11% /boot <br>/dev/hda5 3.4G 577M 2.7G 18% /usr <br>/dev/hda6 3.4G 289M 2.9G 9% /home <br>/dev/hda7 251M 12M 226M 5% /var <br>如果我們想增加/var空間到1GB，而這想要增加的空間哪來呢??從/home拿過來好了。照著下面步驟來吧!! <br><br>(parted)resize 6 3545.6 6200 <br>縮小/home的空間至500MB <br><br>(parted)mkpartfs logicai ext2 6200 7067.7 <br>建立一個新的partition，這個partition將被編號為10。 <br><br>(parted)cp 7 10 <br>將partition7(/var)的內容copy到新建的partition10上。 <br><br>(parted)rm 7 <br>刪除partition 7，到了這個地方，由於partition 7被刪除了，於是原本的partition8、9、10號碼往前挪變成了partiton 7、8、9。 <br><br>(parted)resize 9 6200 7326.5 <br>調整partition9(新的/var)大小為1G。到此，整個調整partition大小的動作只算完成了一半喔!!因為我們有新增partition也有刪除partition，甚至連/var的parition位置都變了，所以最後的動作就是更改/etc/fstab囉!! <br>原本的/etc/fstab內容如下： <br>/dev/hda8 / ext2 defaults 1 1 <br>/dev/hda1 /boot ext2 defaults 1 2 <br>/dev/hda6 /home ext2 grpquota,usrquota 0 2 <br>/dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0 <br>/dev/hda5 /usr ext2 defaults 1 2 <br>/dev/hda7 /var ext2 grpquota,usrquota 0 2 <br>/dev/fd0 /mnt/floppy auto noauto,owner 0 0 <br>none /proc proc defaults 0 0 <br>none /dev/pts devpts gid=5,mode=620 0 0 <br>/dev/hda9 swap swap defaults 0 0 <br><br>parted做完後的變動如下： <br>/var變成了/dev/hda9 <br>/ 變成了/dev/hda7 <br>swap變成了/dev/hda8 <br>因此修改後的/etc/fstab如下： <br>/dev/hda7 / ext2 defaults 1 1 <br>/dev/hda1 /boot ext2 defaults 1 2 <br>/dev/hda6 /home ext2 grpquota,usrquota 0 2 <br>/dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0 <br>/dev/hda5 /usr ext2 defaults 1 2 <br>/dev/hda9 /var ext2 grpquota,usrquota 0 2 <br>/dev/fd0 /mnt/floppy auto noauto,owner 0 0 <br>none /proc proc defaults 0 0 <br>none /dev/pts devpts gid=5,mode=620 0 0 <br>/dev/hda8 swap swap defaults 0 0 <br><br>重開機後!!就完成了。 
<img src ="http://www.phpweblog.net/killjin/aggbug/1952.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/killjin/" target="_blank">Prog</a> 2007-09-14 00:27 <a href="http://www.phpweblog.net/killjin/archive/2007/09/14/1952.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>