﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-faintbear-随笔分类-LINUX</title><link>http://www.blogjava.net/faintbear/category/710.html</link><description>小风嗖嗖的刮着......</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 12:08:09 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 12:08:09 GMT</pubDate><ttl>60</ttl><item><title>Linux以及各大发行版介绍</title><link>http://www.blogjava.net/faintbear/archive/2006/02/21/31868.html</link><dc:creator>小力力力</dc:creator><author>小力力力</author><pubDate>Tue, 21 Feb 2006 14:13:00 GMT</pubDate><guid>http://www.blogjava.net/faintbear/archive/2006/02/21/31868.html</guid><wfw:comment>http://www.blogjava.net/faintbear/comments/31868.html</wfw:comment><comments>http://www.blogjava.net/faintbear/archive/2006/02/21/31868.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/faintbear/comments/commentRss/31868.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/faintbear/services/trackbacks/31868.html</trackback:ping><description><![CDATA[<STRONG>什么是Linux？</STRONG> <BR><BR>也许很多人会不屑的说，Linux不就是个操作系统么。错！Linux不是一个操作系统，严格来讲，<STRONG>Linux只是一个操作系统中的内核</STRONG>。内核是什么？内核建立了计算机软件与硬件之间通讯的平台，内核提供系统服务，比如文件管理、虚拟内存、设备I/O等。 <BR><BR>既然Linux只是一个内核。那么我们通常所说的Linux操作系统又是什么？我们通常所说的Linux，指 <STRONG>GNU/Linux</STRONG> ，即采用Linux内核的GNU操作系统。是的，操作系统的实际名称是GNU。什么是GNU？GNU代表<STRONG>G</STRONG>NU’s <STRONG>N</STRONG>ot <STRONG>U</STRONG>nix。可以说是一个操作系统又可以说是一种规范。比如，众所周知的PHP，原名为Personal HomePage（个人主页），根据GNU的软件命名规则，PHP现已更名为<STRONG>P</STRONG>HP: <STRONG>H</STRONG>ypertext <STRONG>P</STRONG>reprocessor（超文本预处理程序）。 <BR><BR><STRONG>谁编写/创造了Linux？</STRONG> <BR><BR>Linux最早由Linus Torvalds在1991年开始编写。在这之前，Richard Stallman创建了Free Software Foundation（FSF）组织以及GNU项目，并不断的编写创建GNU程序（程序的许可方式均为<STRONG>GPL</STRONG>: General Public License）。在不断的有程序员和开发者加入到GNU组织中后，变造就了今天我们所看到的Linux，或称GNU/Linux。 <BR><BR><STRONG>什么是Linux发行版？</STRONG> <BR><BR>正如之前所说的，Linux只是一个内核。然而，一个完整的操作系统不仅仅是内核而已。所以，许多个人、组织和企业，开发了基于GNU/Linux的Linux发行版。这其中最著名的便是Red Hat公司的Red Hat系列以及社区（community）组织的Debian系列。 <BR><BR>下面我就简单得介绍一下目前比较著名、流行的Linux发行版本。部分资料来源：<A href="http://www.distrowatch.com/" target=_new rel=nofollow>DistroWatch.com</A> <BR><BR><STRONG>Mandriva</STRONG> <BR><IMG alt=http://www.noobu.com/img/linux_distro/mandrake.png src="http://www.noobu.com/img/linux_distro/mandrake.png"> <BR><BR>Mandriva原名Mandrake，最早由Gaël Duval创建并在1998年7月发布。记得前两年国内刚开始普及Linux时，Mandrake非常流行。说起Mandrake的历史，其实最早Mandrake的开发者是基于Redhat进行开发的。Redhat默认采用GNOME桌面系统，而Mandrake将之改为KDE。而由于当时的Linux普遍比较难安装，不适合第一次接触Linux的新手，所以Mandrake还简化了安装系统。我想这也是当时Mandrake在国内如此红火的原因之一。Mandrake在易用性方面的确是下了不少功夫，包括默认情况下的硬件检测等。 <BR><BR>Mandrake的开发完全透明化，包括“cooker”。当系统有了新的测试版本后，便可以在cooker上找到。之前Mandrake的新版本的发布速度很快，但从9.0之后便开始减缓。估计是希望能够延长版本的生命力以确保稳定和安全性。 <BR><BR>优点：友好的操作界面，图形配置工具，庞大的社区技术支持，NTFS分区大小变更 <BR>缺点：部分版本bug较多，最新版本只先发布给Mandrake俱乐部的成员 <BR>软件包管理系统：urpmi (RPM) <BR>免费下载：FTP即时发布下载，ISO在版本发布后数星期内提供 <BR>官方主页：<A href="http://www.mandrivalinux.com/" target=_new rel=nofollow>http://www.mandrivalinux.com/</A> <BR><BR><STRONG>Red Hat</STRONG> <BR><IMG alt=http://www.noobu.com/img/linux_distro/fedora.png src="http://www.noobu.com/img/linux_distro/fedora.png"> <BR><BR>国内，乃至是全世界的Linux用户所最熟悉、最耳闻能详的发行版想必就是Red Hat了。Red Hat最早由Bob Young和Marc Ewing在1995年创建。而公司在最近才开始真正步入盈利时代，归功于收费的Red Hat Enterprise Linux（RHEL，Red Hat的企业版）。而正统的Red Hat版本早已停止技术支持，最后一版是Red Hat 9.0。于是，目前Red Hat分为两个系列：由Red Hat公司提供收费技术支持和更新的Red Hat Enterprise Linux，以及由社区开发的免费的Fedora Core。Fedora Core 1发布于2003年年末，而FC的定位便是桌面用户。FC提供了最新的软件包，同时，它的版本更新周期也非常短，仅六个月。目前最新版本为FC 3，而FC4也预定将于今年6月发布。这也是为什么服务器上一般不推荐采用Fedora Core。 <BR><BR>适用于服务器的版本是Red Hat Enterprise Linux，而由于这是个收费的操作系统。于是，国内外许多企业或空间商选择<A href="http://www.centos.org/" target=_new rel=nofollow>CentOS</A>。CentOS可以算是RHEL的克隆版，但它最大的好处是免费！菜鸟油目前的服务器便采用的CentOS 3.4。 <BR><BR>优点：拥有数量庞大的用户，优秀的社区技术支持，许多创新 <BR>缺点：免费版（Fedora Core）版本生命周期太短，多媒体支持不佳 <BR>软件包管理系统：up2date (RPM), YUM (RPM) <BR>免费下载：是 <BR>官方主页：<A href="http://www.redhat.com/" target=_new rel=nofollow>http://www.redhat.com/</A> <BR><BR><STRONG>SUSE</STRONG> <BR><IMG alt=http://www.noobu.com/img/linux_distro/suse.png src="http://www.noobu.com/img/linux_distro/suse.png"> <BR><BR>SUSE是德国最著名的Linux发行版，在全世界范围中也享有较高的声誉。SUSE自主开发的软件包管理系统YaST也大受好评。SUSE于2003年年末被Novell收购。 <BR><BR>SUSE之后的发布显得比较混乱，比如9.0版本是收费的，而10.0版本（也许由于各种压力）又免费发布。这使得一部分用户感到困惑，也转而使用其它发行版本。但是，瑕不掩瑜，SUSE仍然是一个非常专业、优秀的发行版。 <BR><BR>优点：专业，易用的YaST软件包管理系统 <BR>缺点：FTP发布通常要比零售版晚1~3个月 <BR>软件包管理系统：YaST (RPM), 第三方APT (RPM) 软件库（repository） <BR>免费下载：取决于版本 <BR>官方主页：<A href="http://www.suse.com/" target=_new rel=nofollow>http://www.suse.com/</A> <BR><BR><STRONG>Debian GNU/Linux</STRONG> <BR><IMG alt=http://www.noobu.com/img/linux_distro/debian.png src="http://www.noobu.com/img/linux_distro/debian.png"> <BR><BR>Debian是菜鸟油服务器之前所采用的操作系统。Debian最早由Ian Murdock于1993年创建。可以算是迄今为止，最遵循GNU规范的Linux系统。Debian系统分为三个版本分支（branch）：stable, testing 和 unstable。截至2005年5月，这三个版本分支分别对应的具体版本为：Woody, Sarge 和 Sid。其中，unstable为最新的测试版本，其中包括最新的软件包，但是也有相对较多的bug，适合桌面用户。testing的版本都经过unstable中的测试，相对较为稳定，也支持了不少新技术（比如SMP等）。而Woody一般只用于服务器，上面的软件包大部分都比较过时，但是稳定和安全性都非常的高。菜鸟油之前所采用的是Debian Sarge。 <BR><BR>为何有如此多的用户痴迷于Debian呢（包括笔者在内）？apt-get / dpkg是原因之一。dpkg是Debian系列特有的软件包管理工具，它被誉为所有Linux软件包管理工具（比如RPM）最强大的！配合apt-get，在Debian上安装、升级、删除和管理软件变得异常容易。许多Debian的用户都开玩笑的说，Debian将他们养懒了，因为只要简单得敲一下”apt-get upgrade &amp;&amp; apt-get update”，机器上所有的软件就会自动更新了…… <BR><BR>优点：遵循GNU规范，100%免费，优秀的网络和社区资源，强大的apt-get <BR>缺点：安装相对不易，stable分支的软件极度过时 <BR>软件包管理系统：APT (DEB) <BR>免费下载：是 <BR>官方主页：<A href="http://www.debian.org/" target=_new rel=nofollow>http://www.debian.org/</A> <BR><BR><STRONG>Ubuntu</STRONG> <BR><IMG alt=http://www.noobu.com/img/linux_distro/ubuntu.png src="http://www.noobu.com/img/linux_distro/ubuntu.png"> <BR><BR>笔者的桌面电脑便使用的Ubuntu。依照笔者的理解，简单而言，Ubuntu就是一个拥有Debian所有的优点，以及自己所加强的优点的近乎完美的Linux操作系统。:) Ubuntu是一个相对较新的发行版，但是，它的出现可能改变了许多潜在用户对Linux的看法。也许，从前人们会认为Linux难以安装、难以使用，但是，Ubuntu出现后，这些都成为了历史。Ubuntu基于Debian Sid，所以这也就是笔者所说的，Ubuntu拥有Debian的所有优点，包括apt-get。然而，不仅如此而已，Ubuntu默认采用的GNOME桌面系统也将Ubuntu的界面装饰的简易而不失华丽。当然，如果你是一个KDE的拥护者的话，Kubuntu同样适合你！ <BR><BR>Ubuntu的安装非常的人性化，只要按照提示一步一步进行，安装和Windows同样简便！并且，Ubuntu被誉为对硬件支持最好最全面的Linux发行版之一，许多在其他发行版上无法使用，或者默认配置时无法使用的硬件，在Ubuntu上轻松搞定。并且，Ubuntu采用自行加强的内核（kernel），安全性方面更上一层楼。并且，Ubuntu默认不能直接root登陆，必须从第一个创建的用户通过su或sudo来获取root权限（这也许不太方便，但无疑增加了安全性，避免用户由于粗心而损坏系统）。Ubuntu的版本周期为六个月，弥补了Debian更新缓慢的不足。 <BR><BR>优点：人气颇高的论坛提供优秀的资源和技术支持，固定的版本更新周期和技术支持，可从Debian Woody直接升级 <BR>缺点：还未建立成熟的商业模式 <BR>软件包管理系统：APT (DEB) <BR>免费下载：是 <BR>官方主页：<A href="http://www.ubuntulinux.org/" target=_new rel=nofollow>http://www.ubuntulinux.org/</A> <BR><BR><STRONG>Gentoo</STRONG> <BR><IMG alt=http://www.noobu.com/img/linux_distro/gentoo.png src="http://www.noobu.com/img/linux_distro/gentoo.png"> <BR><BR>Gentoo最初由Daniel Robbins（前Stampede Linux和FreeBSD的开发者之一）创建。由于开发者对FreeBSD的熟识，所以Gentoo拥有媲美FreeBSD的广受美誉的ports系统——portage。（Ports和Portage都是用于在线更新软件的系统，类似apt-get，但还是有很大不同）Gentoo的首个稳定版本发布于2002年。 <BR><BR>Gentoo的出名是因为其高度的自定制性：因为它是一个基于源代码的（source-based）发行版。尽管安装时可以选择预先编译好的软件包，但是大部分使用Gentoo的用户都选择自己手动编译。这也是为什么Gentoo适合比较有Linux使用经验的老手使用的原因。但是要注意的是，由于编译软件需要消耗大量的时间，所以如果你所有的软件都自己编译，并安装KDE桌面系统等比较大的软件包，可能需要几天时间才能编译完…… <BR><BR>优点：高度的可定制性，完整的使用手册，媲美Ports的Portage系统，适合“臭美”的高手使用^^ <BR>缺点：编译耗时多，安装缓慢 <BR>软件包管理系统：Portage (SRC) <BR>免费下载：是 <BR>官方主页：<A href="http://www.gentoo.org/" target=_new rel=nofollow>http://www.gentoo.org/</A> <BR><BR><STRONG>Slackware</STRONG> <BR><IMG alt=http://www.noobu.com/img/linux_distro/slackware.png src="http://www.noobu.com/img/linux_distro/slackware.png"> <BR><BR>Slackware由Patrick Volkerding创建于1992年。算起来应当是历史最悠久的Linux发行版。曾经Slackware非常的流行，但是当Linux越来越普及，用户的技术层面越来越广（更多的新手）后，Slackware渐渐的被新来的人们所遗忘。在其他主流发行版强调易用性的时候，Slackware依然固执的追求最原始的效率——所有的配置均还是要通过配置文件来进行。 <BR><BR>尽管如此，Slackware仍然深入人心（大部分都是比较有经验的Linux老手）。Slackware稳定、安全，所以仍然有大批的忠实用户。由于Slackware尽量采用原版的软件包而不进行任何修改，所以制造新bug的几率便低了很多。Slackware的版本更新周期较长（大约1年），但是新版本的软件仍然不间断的提供给用户下载。 <BR><BR>优点：非常稳定、安全，高度坚持UNIX的规范 <BR>缺点：所有的配置均通过编辑文件来进行，自动硬件检测能力较差 <BR>软件包管理系统：Slackware Package Management (TGZ) <BR>免费下载：是 <BR>官方主页：<A href="http://www.slackware.com/" target=_new rel=nofollow>http://www.slackware.com/</A> <BR><BR><STRONG>Knoppix</STRONG> <BR><IMG alt=http://www.noobu.com/img/linux_distro/knoppix.png src="http://www.noobu.com/img/linux_distro/knoppix.png"> <BR><BR>由德国的Klaus Knopper开发的Knoppix，是一个基于Debian的发行版。Knoppix严格算起来是一款LiveCD Linux，所谓的LiveCD就是整个操作系统都在一张光盘上，只要开机从光盘启动，就能拥有一个完整的Linux系统！无需安装！当然，Knoppix也能够非常轻松的安装到硬盘上。其强大的硬件检测能力、系统修复能力、即时压缩传输技术，都令人大加称赞。可以说，在LiveCD界，Knoppix是无人能及的！ <BR><BR>优点：无需安装可直接运行于CD上，优秀的硬件检测能力，可作为系统急救盘使用 <BR>缺点：LiveCD由于光盘的数据读取速度限制导致性能大幅下降 <BR>软件包管理系统：APT (DEB) <BR>免费下载：是 <BR>官方主页：<A href="http://www.knoppix.com/" target=_new rel=nofollow>http://www.knoppix.com/</A> <BR><BR><STRONG>MEPIS</STRONG> <BR><IMG alt=http://www.noobu.com/img/linux_distro/mepis.png src="http://www.noobu.com/img/linux_distro/mepis.png"> <BR><BR>MEPIS由Warren Woodford在2003年建立。MEPIS虽然刚建立不久，但是迅速的传播在Linux用户间。简单来说，MEPIS是一个集合了Debian Sid和Knoppix的产物。用户即能将之当作LiveCD使用，也能使用常规的图形界面进行安装。 <BR><BR>MEPIS默认集成安装了Java Runtime Environment、Flash插件、nVidia加速驱动等许多常用的程序。用户可以非常轻松的安装完系统后就直接开始使用，而不用到处寻找资料如何下载、如何安装、如何配置这些软件。这不仅给Linux新手带来了便捷，也给老手们节约了相当多的时间。 <BR><BR>优点：LiveCD与常规安装两用，优秀的硬件检测能力，预装了许多实用的软件 <BR>缺点：建立时间不长，默认的界面有些寒酸 <BR>软件包管理系统：APT (DEB) <BR>免费下载：是 <BR>官方主页：<A href="http://www.mepis.org/" target=_new rel=nofollow>http://www.mepis.org/</A> <BR><BR><STRONG>Xandros</STRONG> <BR><IMG alt=http://www.noobu.com/img/linux_distro/xandros.png src="http://www.noobu.com/img/linux_distro/xandros.png"> <BR><BR>Xandros建立在已经成为历史的Corel Linux之上。当初Corel Linux的公司由于财政上的困难，被迫终止了Corel Linux的开发，而Xandros适时的将Corel Linux部门买下，于2002年10月推出全新的Xandros Desktop。 <BR><BR>Xandros的卖点在于极其简单的安装和使用，所以它的市场定位是那些没有任何Linux使用经验的新手，或是习惯使用Windows的用户。Xandros的标准版和增强版都是商业软件，分别售价$40和$99美元。不过你仍然可以在<A href="http://www.xandros.com/products/home/desktopoc/dsk_oc_download.html" target=_new rel=nofollow>这里</A>下载到免费的公开发行版。 <BR><BR>优点：适合完全没有经验的新手，安装完以后就能立即投入使用，自带非常不错的工具 <BR>缺点：商业软件 <BR>软件包管理系统：Xandros Networks (DEB) 或 APT (DEB) （可选，但不提供技术支持） <BR>免费下载：<A href="http://www.xandros.com/products/home/desktopoc/dsk_oc_download.html" target=_new rel=nofollow>公开发行版</A> <BR>官方主页：<A href="http://www.xandros.com/" target=_new rel=nofollow>http://www.xandros.com/</A> <BR><BR><STRONG>FreeBSD</STRONG> <BR><IMG alt=http://www.noobu.com/img/linux_distro/freebsd.png src="http://www.noobu.com/img/linux_distro/freebsd.png"> <BR><BR>首先要强调的是：<STRONG>FreeBSD不是一个Linux系统！</STRONG> 可是，为什么笔者要介绍FreeBSD呢？因为FreeBSD的用户也相当多，其许多特性都与Linux相类似。事实上，Linux和BSD（Berkeley Software Distribution）均是UNIX的演化分支。并且，Linux中相当多的特性和功能（比如用于配置DNS的Bind软件）都是取自于BSD的。而FreeBSD便是BSD家族中最出名，用户数量最多的一个发行版。MEZOC之前所采用的便是FreeBSD系统。 <BR><BR>FreeBSD建立于1993年，拥有相当长的历史。FreeBSD拥有两个分支：stable和current。顾名思义，stable是稳定版，而current则是添加了新技术的测试版。另外，FreeBSD会不定期的发布新的版本，称为RELEASE，stable和current均有自己的RELEASE版本。比如4.11-RELEASE和5.3-RELEASE，请注意，这并不代表后者比前者的版本新。这仅仅代表前者（数字小的版本）是stable版本，后者（数字大的版本）是current版本。 <BR><BR>FreeBSD除了作为服务器系统外，也适合桌面用户。不过，考虑到软件方面的兼容性，一般用户选择FreeBSD作为桌面系统不是很明智。作为服务器而言，FreeBSD是相当优秀的。曾经有人说过，同样的服务器硬件配置，运行同样的一个vBulletin论坛，FreeBSD所用的资源要比Linux少。这也是为什么许多空间商极力推崇FreeBSD的原因。:) <BR><BR>优点：速度快，非常稳定，优秀的使用手册，Ports系统 <BR>缺点：比起Linux而言对硬件的支持较差，对于桌面系统而言软件的兼容性是个问题 <BR>软件包管理系统：Ports (TBZ) <BR>免费下载：是 <BR>官方主页：<A href="http://www.freebsd.org/" target=_new rel=nofollow>http://www.freebsd.org/</A> <BR><BR>以上介绍了目前较为流行的各Linux发行版本，希望对大家有所帮助。同时，笔者也希望越来越多的朋友投入到Linux的大家庭中！\^O^/ <img src ="http://www.blogjava.net/faintbear/aggbug/31868.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/faintbear/" target="_blank">小力力力</a> 2006-02-21 22:13 <a href="http://www.blogjava.net/faintbear/archive/2006/02/21/31868.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何执行shell</title><link>http://www.blogjava.net/faintbear/archive/2005/05/08/4095.html</link><dc:creator>小力力力</dc:creator><author>小力力力</author><pubDate>Sun, 08 May 2005 15:15:00 GMT</pubDate><guid>http://www.blogjava.net/faintbear/archive/2005/05/08/4095.html</guid><wfw:comment>http://www.blogjava.net/faintbear/comments/4095.html</wfw:comment><comments>http://www.blogjava.net/faintbear/archive/2005/05/08/4095.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/faintbear/comments/commentRss/4095.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/faintbear/services/trackbacks/4095.html</trackback:ping><description><![CDATA[<P>
<TABLE cellSpacing=0 cellPadding=4 width="95%" align=center border=0>
<TBODY>
<TR>
<TD class=small align=left><FONT size=2>&nbsp; </FONT></TD>
<TD class=small align=right><A href="http://www.linuxforum.net/forum/printthread.php?Cat=&amp;Board=vrml&amp;main=546709&amp;type=thread" target=_blank><FONT size=2>&nbsp;打印</FONT></A><FONT size=2> </FONT></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="95%" align=center border=0>
<TBODY>
<TR>
<TD class=tableborders>
<TABLE cellSpacing=1 cellPadding=3 width="100%" border=0>
<TBODY>
<TR>
<TD class=darktable vAlign=top width="17%" rowSpan=2><A name=Post546709></A><FONT size=2>yaogangNUPT</FONT><BR><SPAN class=small><FONT size=2>(stranger)<BR>05-03-13 21:26<BR></FONT></SPAN></TD>
<TD class=subjecttable width="83%">
<TABLE class=subjecttable width="100%" border=0>
<TBODY>
<TR>
<TD align=left width="70%"><FONT size=2><IMG height=15 src="http://www.linuxforum.net/forum/images/icons/question.gif" width=15> <B>如何直接执行shell脚本</B> </FONT></TD>
<TD align=right width="30%"><FONT size=2>&nbsp; </FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=lighttable width="83%"><BR>
<P class=post><FONT size=2>脚本文件点击后常常是会提示是在终端执行还是执行的对话框 <BR>在命令行中常常需要./filename 或者是sh filename <BR>消去对话框可以用起动器(也叫链接或者或者是快捷方式) <BR><BR><BR>请问 <BR>怎么样才能使得脚本文件直接在命令行中执行而不要sh 或者是./ ??? </FONT>
<P class=small><FONT size=2>文章选项： </FONT><A href="http://www.linuxforum.net/forum/printthread.php?Cat=&amp;Board=vrml&amp;main=546709&amp;type=post" target=_blank><FONT size=2><IMG alt=打印 src="http://www.linuxforum.net/forum/images/print.gif" align=absMiddle border=0></FONT></A><FONT size=2> </FONT></P></TD></TR>
<TR>
<TD class=darktable vAlign=top width="17%" rowSpan=2><A name=Post547009></A><FONT size=2>antzcn</FONT><BR><SPAN class=small><FONT size=2>(newbie)<BR>05-03-15 13:04<BR></FONT></SPAN></TD>
<TD class=subjecttable width="83%">
<TABLE class=subjecttable width="100%" border=0>
<TBODY>
<TR>
<TD align=left width="70%"><FONT size=2><IMG height=15 src="http://www.linuxforum.net/forum/images/newicons/book.gif" width=15> <B>Re: 如何直接执行shell脚本</B> <IMG alt=新 src="http://www.linuxforum.net/forum/images/new.gif"> </FONT></TD>
<TD align=right width="30%"><FONT size=2>&nbsp; </FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=lighttable width="83%"><BR>
<P class=post><FONT size=2>$ export PATH=$PATH:. <BR><BR><BR>--------------------<BR><BR>Freedom! </FONT>
<P class=small><FONT size=2>文章选项： </FONT><A href="http://www.linuxforum.net/forum/printthread.php?Cat=&amp;Board=vrml&amp;main=547009&amp;type=post" target=_blank><FONT size=2><IMG alt=打印 src="http://www.linuxforum.net/forum/images/print.gif" align=absMiddle border=0></FONT></A><FONT size=2> </FONT></P></TD></TR>
<TR>
<TD class=darktable vAlign=top width="17%" rowSpan=2><A name=Post547301></A><FONT size=2>yaogangNUPT</FONT><BR><SPAN class=small><FONT size=2>(stranger)<BR>05-03-16 16:24<BR></FONT></SPAN></TD>
<TD class=subjecttable width="83%">
<TABLE class=subjecttable width="100%" border=0>
<TBODY>
<TR>
<TD align=left width="70%"><FONT size=2><IMG height=15 src="http://www.linuxforum.net/forum/images/newicons/book.gif" width=15> <B>Re: 如何直接执行shell脚本</B> <IMG alt=新 src="http://www.linuxforum.net/forum/images/new.gif"> </FONT></TD>
<TD align=right width="30%"><FONT size=2>&nbsp; </FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=lighttable width="83%"><BR>
<P class=post><FONT size=2>谢谢 但是为什么会这样呢? <BR>非常谢谢 <BR><BR><BR>--------------------<BR>不知道也可以说 但是不能瞎说 <BR>实话实说 </FONT>
<P class=small><FONT size=2>文章选项： </FONT><A href="http://www.linuxforum.net/forum/printthread.php?Cat=&amp;Board=vrml&amp;main=547301&amp;type=post" target=_blank><FONT size=2><IMG alt=打印 src="http://www.linuxforum.net/forum/images/print.gif" align=absMiddle border=0></FONT></A><FONT size=2> </FONT></P></TD></TR>
<TR>
<TD class=darktable vAlign=top width="17%" rowSpan=2><A name=Post547313></A><FONT size=2>yaogangNUPT</FONT><BR><SPAN class=small><FONT size=2>(stranger)<BR>05-03-16 17:01<BR></FONT></SPAN></TD>
<TD class=subjecttable width="83%">
<TABLE class=subjecttable width="100%" border=0>
<TBODY>
<TR>
<TD align=left width="70%"><FONT size=2><IMG height=15 src="http://www.linuxforum.net/forum/images/newicons/book.gif" width=15> <B>Re: 如何直接执行shell脚本 请教 请教</B> <IMG alt=新 src="http://www.linuxforum.net/forum/images/new.gif"> </FONT></TD>
<TD align=right width="30%"><FONT size=2>&nbsp; </FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=lighttable width="83%"><BR>
<P class=post><FONT size=2>据我所知 <BR>你的那条已经在.bash_profile里面声明过 <BR>并且你所说的 只能对于当前的shell有用 <BR>换了shell后 又要export <BR>你看更好的解决方案是什么 <BR>.bashrc 里面行不行?? <BR>请教 <BR><BR><BR>--------------------<BR>不知道也可以说 但是不能瞎说 <BR>实话实说 </FONT>
<P class=small><FONT size=2>文章选项： </FONT><A href="http://www.linuxforum.net/forum/printthread.php?Cat=&amp;Board=vrml&amp;main=547313&amp;type=post" target=_blank><FONT size=2><IMG alt=打印 src="http://www.linuxforum.net/forum/images/print.gif" align=absMiddle border=0></FONT></A><FONT size=2> </FONT></P></TD></TR>
<TR>
<TD class=darktable vAlign=top width="17%" rowSpan=2><A name=Post547724></A><FONT size=2>yaogangNUPT</FONT><BR><SPAN class=small><FONT size=2>(stranger)<BR>05-03-18 12:55<BR></FONT></SPAN></TD>
<TD class=subjecttable width="83%">
<TABLE class=subjecttable width="100%" border=0>
<TBODY>
<TR>
<TD align=left width="70%"><FONT size=2><IMG height=15 src="http://www.linuxforum.net/forum/images/newicons/book.gif" width=15> <B>Re: 如何直接执行shell脚本</B> <IMG alt=新 src="http://www.linuxforum.net/forum/images/new.gif"> </FONT></TD>
<TD align=right width="30%"><FONT size=2>&nbsp; </FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=lighttable width="83%"><BR>
<P class=post><FONT size=2>我用了你提供的方法 感觉很好 于是我做了一下分析 <BR>你用的是export 将PATH地址导入子shell <BR><BR>但是具体的shell搜寻的地址是什么 我还是不清楚 <BR>我用$ echo $PATH 显示的是 <BR>/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin <BR>并没有将当前目录加入 <BR><BR>我们知道shell执行脚本的时候 从PATH的顺序搜下去如果有的话就执行 <BR>没有就找下去 并且可执行的程序要比sh脚本优先极高 <BR><BR>我们用的是sh 就是搜索\当前目录 <BR>./ 也是如此 "."指的是当前目录 就象".."指的是前一极目录一样 <BR><BR>我用 ln (-s) 要执行的sh脚本的路径 PATH可搜寻路径+文件名 <BR>可以完成同样的工作 <BR>当然cp \操作也能 <BR><BR>为什么会用export PATH=$PATH 就行我很想知道 <BR><BR><BR>--------------------<BR>不知道也可以说 但是不能瞎说 <BR>实话实说 </FONT>
<P class=small><FONT size=2>文章选项： </FONT><A href="http://www.linuxforum.net/forum/printthread.php?Cat=&amp;Board=vrml&amp;main=547724&amp;type=post" target=_blank><FONT size=2><IMG alt=打印 src="http://www.linuxforum.net/forum/images/print.gif" align=absMiddle border=0></FONT></A><FONT size=2> </FONT></P></TD></TR>
<TR>
<TD class=darktable vAlign=top width="17%" rowSpan=2><A name=Post547739></A><FONT size=2>passworld</FONT><BR><SPAN class=small><FONT size=2>(newbie)<BR>05-03-18 14:26<BR></FONT></SPAN></TD>
<TD class=subjecttable width="83%">
<TABLE class=subjecttable width="100%" border=0>
<TBODY>
<TR>
<TD align=left width="70%"><FONT size=2><IMG height=15 src="http://www.linuxforum.net/forum/images/newicons/book.gif" width=15> <B>Re: 如何直接执行shell脚本</B> <IMG alt=新 src="http://www.linuxforum.net/forum/images/new.gif"> </FONT></TD>
<TD align=right width="30%"><FONT size=2>&nbsp; </FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=lighttable width="83%"><BR>
<P class=post><FONT size=2>看回答仔细一点儿： <BR>export PATH=$PATH:. <BR>不是 <BR>export PATH=$PATH <BR><BR>那一个点就是当前目录，当你执行后再 printenv PATH 应该是: <BR>/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:. <BR>注意最后的点，一般建议如果要加当前目录，应该把它放在最后，以免系统被黑。 <BR><BR>你如果看man bash，他会告诉你： <BR>~/.bash_profile: The personal initialization file, executed for login shells <BR>~/.bashrc: The individual per-interactive-shell startup file <BR><BR>RTFM: Read The [censored] Manual 是很重要的。 <BR><BR></FONT>
<P class=small><FONT size=2>文章选项： </FONT><A href="http://www.linuxforum.net/forum/printthread.php?Cat=&amp;Board=vrml&amp;main=547739&amp;type=post" target=_blank><FONT size=2><IMG alt=打印 src="http://www.linuxforum.net/forum/images/print.gif" align=absMiddle border=0></FONT></A><FONT size=2> </FONT></P></TD></TR>
<TR>
<TD class=darktable vAlign=top width="17%" rowSpan=2><A name=Post549725></A><FONT size=2>yaogangNUPT</FONT><BR><SPAN class=small><FONT size=2>(stranger)<BR>05-03-29 19:35<BR></FONT></SPAN></TD>
<TD class=subjecttable width="83%">
<TABLE class=subjecttable width="100%" border=0>
<TBODY>
<TR>
<TD align=left width="70%"><FONT size=2><IMG height=15 src="http://www.linuxforum.net/forum/images/newicons/exclamation.gif" width=15> <B>Re: 如何直接执行shell脚本</B> <IMG alt=新 src="http://www.linuxforum.net/forum/images/new.gif"> </FONT></TD>
<TD align=right width="30%"><FONT size=2>&nbsp; </FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=lighttable width="83%"><BR>
<P class=post><FONT size=2>谢谢 <BR>佩服 佩服 <BR><BR><BR>--------------------<BR>不知道也可以说 但是不能瞎说 <BR>实话实说 </FONT>
<P class=small><FONT size=2>文章选项： </FONT><A href="http://www.linuxforum.net/forum/printthread.php?Cat=&amp;Board=vrml&amp;main=549725&amp;type=post" target=_blank><FONT size=2><IMG alt=打印 src="http://www.linuxforum.net/forum/images/print.gif" align=absMiddle border=0></FONT></A><FONT size=2> </FONT></P></TD></TR>
<TR>
<TD class=darktable vAlign=top width="17%" rowSpan=2><A name=Post551319></A><FONT size=2>bunengzaicai</FONT><BR><SPAN class=small><FONT size=2>(newbie)<BR>05-04-07 22:20<BR></FONT></SPAN></TD>
<TD class=subjecttable width="83%">
<TABLE class=subjecttable width="100%" border=0>
<TBODY>
<TR>
<TD align=left width="70%"><FONT size=2><IMG height=15 src="http://www.linuxforum.net/forum/images/newicons/book.gif" width=15> <B>Re: 如何直接执行shell脚本</B> <IMG alt=新 src="http://www.linuxforum.net/forum/images/new.gif"> </FONT></TD>
<TD align=right width="30%"><FONT size=2>&nbsp; </FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=lighttable width="83%"><BR>
<P class=post><FONT size=2>补充一点：依据版主所说，添加当前目录时切记将其置后，否则依照搜寻顺序，本地程序优先执行，本地黑客程序将会代替掉系统程序运行，造成系统被黑！！！ <BR>不太建议你添加本地目录！（有时会混淆） <BR><BR><BR>--------------------<BR>团结吧！中国人！我们不能再菜下去了! </FONT></P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></P><img src ="http://www.blogjava.net/faintbear/aggbug/4095.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/faintbear/" target="_blank">小力力力</a> 2005-05-08 23:15 <a href="http://www.blogjava.net/faintbear/archive/2005/05/08/4095.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>只ping得通网关，访问局域网的资源不能在浏览器里访问网页</title><link>http://www.blogjava.net/faintbear/archive/2005/04/30/3961.html</link><dc:creator>小力力力</dc:creator><author>小力力力</author><pubDate>Sat, 30 Apr 2005 03:44:00 GMT</pubDate><guid>http://www.blogjava.net/faintbear/archive/2005/04/30/3961.html</guid><wfw:comment>http://www.blogjava.net/faintbear/comments/3961.html</wfw:comment><comments>http://www.blogjava.net/faintbear/archive/2005/04/30/3961.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/faintbear/comments/commentRss/3961.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/faintbear/services/trackbacks/3961.html</trackback:ping><description><![CDATA[<STRONG><FONT face=Verdana color=#0000ff size=2>只ping得通网关，访问局域网的资源不能在浏览器里访问网页<BR></FONT></STRONG><FONT size=1><FONT face=Verdana><FONT class=smallfont color=#ff9900>2004-04-23 15:18 pm</FONT><BR></FONT></FONT><FONT class=normalfont><FONT face=Verdana size=2>作者：作者<BR>来自：Linux知识宝库<BR>现载：http://www.douzhe.com/docs/linuxtips/<BR>地址：无名<BR><BR>只ping得通网关，访问局域网的资源不能在浏览器里访问网页　<BR><BR>我使用是redhat7.2使用的是两块8139网卡，在配置网络的时候，只ping得通网关，访问局域网的资源。<BR>#insmod /lib/.../8139too.o<BR>#ifcoinfig eth1 xx.xxx.x.xxx netmask 255.255.255.192 up<BR>#ping ss.sss.ss.ss /ping网关是通了，但是不能在浏览器里访问网页,提示不知道的主机.<BR>再看k-contrl panel-network configrution 里的配置也没有问题。再使用ping www.163.com提示network is unreachable，已经有一个星期了难死我了。 <BR><BR>已经解决了，是网关的问题使用route命令就行了<BR>route add default gw xx.xxx.x.xx eth1<BR>就可以了</FONT><BR><BR><BR><BR><A href="http://www.douzhe.com/docs/linuxtips/index.html">http://www.douzhe.com/docs/linuxtips/index.html</A>&nbsp;&nbsp; linux知识宝库<BR></FONT><img src ="http://www.blogjava.net/faintbear/aggbug/3961.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/faintbear/" target="_blank">小力力力</a> 2005-04-30 11:44 <a href="http://www.blogjava.net/faintbear/archive/2005/04/30/3961.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何实现为一个网卡绑定多个IP地址？ (转)</title><link>http://www.blogjava.net/faintbear/archive/2005/04/25/3724.html</link><dc:creator>小力力力</dc:creator><author>小力力力</author><pubDate>Mon, 25 Apr 2005 08:55:00 GMT</pubDate><guid>http://www.blogjava.net/faintbear/archive/2005/04/25/3724.html</guid><wfw:comment>http://www.blogjava.net/faintbear/comments/3724.html</wfw:comment><comments>http://www.blogjava.net/faintbear/archive/2005/04/25/3724.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/faintbear/comments/commentRss/3724.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/faintbear/services/trackbacks/3724.html</trackback:ping><description><![CDATA[<FONT size=2>Linux的网络设备配置文件存放在/etc/sysconfig/network-scripts里面，对于以太网的第一个网络设备，配置文件名一般为 ifcfg-eth0 如果需要为第一个网络设备绑定多一个IP地址，只需要在/etc/sysconfig/network-scripts目录里面创建一个名为ifcfg-eth0:0的文件，内容样例为：<BR><BR>DEVICE="eth0:0"<BR>IPADDR="211.100.10.119"<BR>NETMASK="255.255.255.0"<BR>ONBOOT="yes"<BR><BR>　　其中的DEVICE为设备的名称，IPADDR为此设备的IP地址，NETMASK为子网掩码，ONBOOT表示在系统启动时自动启动。<BR>　　如果需要再绑定多一个IP地址，只需要把文件名和文件内的DEVICE中的eth0:x加一即可。LINUX最多可以支持255个IP别名。 <BR></FONT><img src ="http://www.blogjava.net/faintbear/aggbug/3724.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/faintbear/" target="_blank">小力力力</a> 2005-04-25 16:55 <a href="http://www.blogjava.net/faintbear/archive/2005/04/25/3724.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>操纵java数组(转)</title><link>http://www.blogjava.net/faintbear/archive/2005/03/21/2286.html</link><dc:creator>小力力力</dc:creator><author>小力力力</author><pubDate>Mon, 21 Mar 2005 09:07:00 GMT</pubDate><guid>http://www.blogjava.net/faintbear/archive/2005/03/21/2286.html</guid><wfw:comment>http://www.blogjava.net/faintbear/comments/2286.html</wfw:comment><comments>http://www.blogjava.net/faintbear/archive/2005/03/21/2286.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/faintbear/comments/commentRss/2286.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/faintbear/services/trackbacks/2286.html</trackback:ping><description><![CDATA[<TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=0>
<TBODY>
<TR>
<TD align=middle><FONT class=font14b><FONT size=2>操纵java数组</A></FONT></FONT></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=5 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top width="100%"><FONT class=f14 id=zoom><FONT size=2>如果你做过很多java程序，你可能对java集合类很熟悉，例如Vector和ArrayList。你可以创建一个集合并向其中增加元素：<BR></FONT><PRE><BR><FONT size=2> &nbsp; &nbsp;List lst = <B>new</B> ArrayList();<BR><BR> &nbsp; &nbsp;lst.add(<B>new</B> Integer(37));<BR></FONT></PRE><BR><FONT size=2>在这个特殊的范例中，一个整型值37用于构造一个Integer封装类对象，然后那个对象被加入到列表。<BR><BR>这个简单的范例展示集合的一个基础－他们用于操纵一列对象，其中的每个对象是一个类或者接口类型。因此，一个ArrayList可以包含Object,String,Float以及Runnable类型的对象。集合类不能用于原始数据类型的列表，例如整型数组。<BR><BR>如果你在你的程序中使用原始类型的数组，你如何操纵它们呢？这个技巧就给你展示几个你可以使用的技术。<BR><BR>第一个技术是排序。java.util.Arrays类包含一套排序和查找数组的类方法，例如：<BR></FONT><PRE><BR><FONT size=2> &nbsp; &nbsp;<B>import</B> java.util.Arrays;<BR><BR> &nbsp; &nbsp;<B>public</B> <B>class</B> ArrayDemo1 {<BR> &nbsp; &nbsp; &nbsp; &nbsp;<B>public</B> <B>static</B> <B>void</B> main(String args[]) {<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<B>int</B> vec[] = {37, 47, 23, -5, 19, 56};<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Arrays.sort(vec);<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<B>for</B> (<B>int</B> i = 0; i &lt; vec.length; i++) {<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println(vec[i]);<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<BR> &nbsp; &nbsp; &nbsp; &nbsp;}<BR> &nbsp; &nbsp;}<BR></FONT></PRE><BR><FONT size=2>这个演示程序初始化一个整数数组然后调用Arrays.sort升序排序那个数组。<BR><BR>类似的，你可以在排完序的数组上进行二分法查找：<BR></FONT><PRE><BR><FONT size=2> &nbsp; &nbsp;<B>import</B> java.util.Arrays;<BR><BR> &nbsp; &nbsp;<B>public</B> <B>class</B> ArrayDemo2 {<BR> &nbsp; &nbsp; &nbsp; &nbsp;<B>public</B> <B>static</B> <B>void</B> main(String args[]) {<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<B>int</B> vec[] = {-5, 19, 23, 37, 47, 56};<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<B>int</B> slot = Arrays.binarySearch(vec, 35);<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;slot = -(slot + 1);<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println(<FONT color=#000099>"insertion point = "</FONT> + slot);<BR> &nbsp; &nbsp; &nbsp; &nbsp;}<BR> &nbsp; &nbsp;}<BR></FONT></PRE><BR><FONT size=2>这个程序有个微妙的概念，如果二分法查找失败它将返回：<BR><BR>-(insertion point) - 1<BR><BR>这个演示程序以参数35调用查找方法，而那个参数在数组中不存在，方法返回值－4，如果这个值加一再取其负数就得到3，这就是35应该被插入到数组中的位置，换言之，值-5, 19和23在数组中占据的位置是0，1和2。因此值35应该在索引3的位置，而37, 47以及56顺延。搜索方法并不进行实际的插入操作而只是指出应该在何处插入。<BR><BR>除了排序和查找，我们还可以对原始类型数组做什么？另一个有用的技术是将一个原始数组转换为等价的对象类型数组。每个对应元素使用它们的封装器类，例如在封装数组中，37成为Integer(37)。<BR></FONT><PRE><BR><FONT size=2> &nbsp; &nbsp;<B>import</B> java.util.Arrays;<BR> &nbsp; &nbsp;<B>import</B> java.lang.reflect.Array;<BR> &nbsp; &nbsp;<BR> &nbsp; &nbsp;<B>public</B> <B>class</B> ArrayDemo3 {<BR> &nbsp; &nbsp;<BR> &nbsp; &nbsp; &nbsp; &nbsp;<FONT color=#006600><I>// if input is a single-dimension primitive array,</FONT></FONT></I><BR><FONT size=2> &nbsp; &nbsp; &nbsp; &nbsp;<FONT color=#006600><I>// return a new array consisting of wrapped elements,</FONT></FONT></I><BR><FONT size=2> &nbsp; &nbsp; &nbsp; &nbsp;<FONT color=#006600><I>// else just return input argument</FONT></FONT></I><BR><FONT size=2> &nbsp; &nbsp;<BR> &nbsp; &nbsp; &nbsp; &nbsp;<B>public</B> <B>static</B> Object toArray(Object vec) {<BR> &nbsp; &nbsp;<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<FONT color=#006600><I>// if null, return</FONT></FONT></I><BR><FONT size=2> &nbsp; &nbsp;<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<B>if</B> (vec == null) {<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<B>return</B> vec;<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<BR> &nbsp; &nbsp;<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<FONT color=#006600><I>// if not an array or elements not primitive, return</FONT></FONT></I><BR><FONT size=2> &nbsp; &nbsp;<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Class cls = vec.getClass();<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<B>if</B> (!cls.isArray()) {<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<B>return</B> vec;<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<B>if</B> (!cls.getComponentType().isPrimitive()) {<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<B>return</B> vec;<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<BR> &nbsp; &nbsp;<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<FONT color=#006600><I>// get array length and create Object output array</FONT></FONT></I><BR><FONT size=2> &nbsp; &nbsp;<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<B>int</B> length = Array.getLength(vec);<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Object <B>new</B>vec[] = <B>new</B> Object[length];<BR> &nbsp; &nbsp;<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<FONT color=#006600><I>// wrap and copy elements</FONT></FONT></I><BR><FONT size=2> &nbsp; &nbsp;<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<B>for</B> (<B>int</B> i = 0; i &lt; length; i++) {<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;newvec[i] = Array.get(vec, i);<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<BR> &nbsp; &nbsp;<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<B>return</B> newvec;<BR> &nbsp; &nbsp; &nbsp; &nbsp;}<BR> &nbsp; &nbsp;<BR> &nbsp; &nbsp; &nbsp; &nbsp;<B>public</B> <B>static</B> <B>void</B> main(String args[]) {<BR> &nbsp; &nbsp;<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<FONT color=#006600><I>// create a primitive array</FONT></FONT></I><BR><FONT size=2> &nbsp; &nbsp;<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<B>int</B> vec[] = <B>new</B> <B>int</B>[]{1, 2, 3};<BR> &nbsp; &nbsp;<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<FONT color=#006600><I>// wrap it</FONT></FONT></I><BR><FONT size=2> &nbsp; &nbsp;<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Object wrappedvec[] = (Object[])toArray(vec);<BR> &nbsp; &nbsp;<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<FONT color=#006600><I>// display result</FONT></FONT></I><BR><FONT size=2> &nbsp; &nbsp;<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<B>for</B> (<B>int</B> i = 0; i &lt; wrappedvec.length; i++) {<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println(wrappedvec[i]);<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<BR> &nbsp; &nbsp; &nbsp; &nbsp;}<BR> &nbsp; &nbsp;}<BR></FONT></PRE><BR><FONT size=2>方法"toArray"的参数是一个Object对象(数组可以被赋值给一个Object引用)。如果参数是null或者代表的不是原始类型数组那么这个方法简单的返回参数值。java.lang.Class工具类用于判断参数是否是一个数组并获取数组的底层元素的类型。<BR><BR>一旦做完这些检查，使用java.lang.reflect.Array工具类的反射工具方法就可以获取原始数组的长度并获得数组的单个元素。Array.get获得的每个元素被返回到封装器类中，例如Integer或者Double。<BR><BR>最终的范例基于前面的那个并向你展示如何在数组上使用集合特性。这假设你已经有一个对象数组。<BR></FONT><PRE><BR><FONT size=2> &nbsp; &nbsp;<B>import</B> java.util.Arrays;<BR> &nbsp; &nbsp;<B>import</B> java.util.List;<BR><BR> &nbsp; &nbsp;<B>public</B> <B>class</B> ArrayDemo4 {<BR> &nbsp; &nbsp; &nbsp; &nbsp;<B>public</B> <B>static</B> <B>void</B> main(String args[]) {<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Object vec[] = {<B>new</B> Integer(37), <B>new</B> Integer(47)};<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;List lst = Arrays.asList(vec);<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;lst.set(1, <B>new</B> Integer(57));<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<B>for</B> (<B>int</B> i = 0; i &lt; vec.length; i++) {<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println(vec[i]);<BR> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<BR> &nbsp; &nbsp; &nbsp; &nbsp;}<BR> &nbsp; &nbsp;}<BR></FONT></PRE>
<P><BR><FONT size=2>在这个程序中，vec是一个对象数组，包含Integer(37)和Integer(47)，然后Arrays.asList被调用。它返回一个集合(List接口类型)，使用数组作为集合的后台存储。换言之，ArrayList这样的集合类型在它内部有某种存储类型去存储集合元素。在这个例子中，使用的存储类型是作为参数传递到Arrays.asList的数组。这意味着集合方法所做的改变会被反射到底层的数组。<BR><BR>修改集合中的元素1导致底层的数组也改变，程序的输出是：<BR><BR>37<BR>57<BR><BR>因此如果你有一个对象数组，你可以在它上面使用集合特性，数组自身作为底层存储。<BR><BR>我们也可以将集合转换为一个对象数组，例如：<BR><BR>Object vec[] = lst.toArray();</FONT></P>
<P><FONT size=2>摘自:http://www.javaresearch.org/article/showarticle.jsp?column=1&amp;thread=2994</FONT></P></FONT></TD></TR></TBODY></TABLE><img src ="http://www.blogjava.net/faintbear/aggbug/2286.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/faintbear/" target="_blank">小力力力</a> 2005-03-21 17:07 <a href="http://www.blogjava.net/faintbear/archive/2005/03/21/2286.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>LINUX学习笔记—SAMBA使用篇 (转)</title><link>http://www.blogjava.net/faintbear/archive/2005/03/17/2185.html</link><dc:creator>小力力力</dc:creator><author>小力力力</author><pubDate>Thu, 17 Mar 2005 15:43:00 GMT</pubDate><guid>http://www.blogjava.net/faintbear/archive/2005/03/17/2185.html</guid><wfw:comment>http://www.blogjava.net/faintbear/comments/2185.html</wfw:comment><comments>http://www.blogjava.net/faintbear/archive/2005/03/17/2185.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/faintbear/comments/commentRss/2185.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/faintbear/services/trackbacks/2185.html</trackback:ping><description><![CDATA[<TABLE cellSpacing=2 cellPadding=0 width=550 border=0>
<TBODY>
<TR>
<TD align=middle><B><FONT class=BHEAD color=#333399 size=2>LINUX学习笔记—SAMBA使用篇</FONT></B></TD></TR>
<TR>
<TD bgColor=#bbbbbb height=1><FONT size=2></FONT></TD></TR>
<TR>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif" size=2><SPAN class=nava>2001-04-06· ·illiad··yesky<BR><BR></SPAN></FONT></TD></TR>
<TR>
<TD>
<P align=right><FONT color=red size=2>1 </FONT></P><SPAN class=txt><BR><FONT size=2>　　<B><FONT color=#0000ff>前言</FONT></B><FONT color=#0000ff>：</FONT>半个月前开始安装、学习REDHAT LINUX7.0。作为一个Linux新手，不可避免的遇上了一些问题，通过翻阅书籍资料，查看BBS，自己的摸索实践，也解决了一些问题。想到自己的经验教训可供他人借鉴，于是大胆写出来，一来可以当作学习笔记保存，二来希望对刚刚接触Linux的朋友有所帮助。由于本人能力所限，笔记中有所疏漏不足也在所难免，还请各位高手指正。<BR><BR><FONT color=#990000>一、SAMBA简介</FONT><BR><BR>　　NetBIOS 是一个为了便于开发基于局域网的资源共享应用程序而设计的API。之后，产生了基于NetBIOS的NetBEUI协议和NBT(NetBIOS OVER TCP/IP)协议。NBT协议进一步发展为SMB和CIFS协议。Windows的局域网默认采用的就是NetBEUI协议，而SAMBA软件包所使用的就是CIFS协议，结果就是，装有SAMBA软件包的机器能够和Windows网络的机器进行通信，让没有NetBEUI协议的UNIX、LINUX机器在SAMBA的帮助下和Windows网络共享资源。<BR><BR><FONT color=#990000>二、SAMBA的安装</FONT><BR><BR>　　RedHat Linux7.0的默认安装模式下已经安装好了SAMBA。可以用“rpm -q samba”命令查看系统是否安装了SAMBA以及安装版本。没有的话，你可以从安装光盘中找到SAMBA的rpm文件手动安装。<BR><BR><FONT color=#990000>三、SAMBA的启动</FONT><BR><BR>　　使用“<FONT color=#006600>ps -aux|grep smb”</FONT>查看SAMBA服务是否已经运行，默认是否。使用命令“<FONT color=#006600>/etc/init.d/smb start</FONT>”启动它；或是通过“<FONT color=#006600>linuxconf</FONT>”把SAMBA设定为系统启动时启动。具体步骤，运行“<FONT color=#006600>linuxconf</FONT>”，点击“<FONT color=#006600>control service activity</FONT>”，显示的画面如图，点击“sevice control”列表的“smb”，设置启动为“automatic”，“run level”为“5”。<BR><BR></FONT>
<DIV align=center><FONT size=2><IMG height=319 src="http://www.yesky.com/20010406/cjs0402linuxconf.gif" width=400></FONT></DIV></SPAN></TD></TR></TBODY></TABLE><BR><BR><FONT size=2><FONT color=#990000>四、访问Windows客户机<BR><BR></FONT>　　smb启动后，不用作任何设置你已经可以访问运行Windows的机器了。现在有两台机器，分别运行着Linux和Windows98,主机名称分别是redhat和lily。lily上有目录“<FONT color=#006600>download</FONT>”，有打印机“<FONT color=#006600>HP</FONT>”，目录设置为“完全访问”，密码是“abc”。<BR><BR>　　1、访问lily上的共享目录。<BR><BR>　　第一步，查看lily这台机器的的共享资源，“<FONT color=#006600>smbclient -L //lily</FONT>”，当提示时，输入密码后会列出lily上可用的资源。<BR>　　第二步，“<FONT color=#006600>mkdir /mnt/download</FONT>”,在“<FONT color=#006600>/mnt</FONT>”下建立一个目录。<BR>　　第三步，“<FONT color=#006600>mount -t smbfs -o username=abc,password=abc //lily/download /mnt/download</FONT>”，把lily上的共享目录挂接到redhat的“<FONT color=#006600>/mnt/download</FONT>”下面。接下来，你可以象使用本地硬盘那样访问该共享目录了。你也可以编辑“<FONT color=#006600>/etc/rc.d/rc.local</FONT>”，把“<FONT color=#006600>mount -t smbfs -o username=abc,password=abc //lily/download /mnt/download</FONT>”添加到文件的末一行，这样，系统一启动，该共享目录也就挂接好了。<BR><BR>　　2、使用lily上的打印机。<BR><BR>　　单击任务栏上的Gnome图标，单击“<FONT color=#006600>system</FONT>”,单击“<FONT color=#006600>control panel</FONT>”。在“<FONT color=#006600>control panel</FONT>”窗口中，单击打印机图标，选择“<FONT color=#006600>SMB/Window 95/98/NT Printer</FONT>”，如图。<BR><BR></FONT>
<DIV align=center><FONT size=2><IMG height=194 src="http://www.yesky.com/20010406/cjs0402entry.gif" width=231></FONT></DIV><BR><BR><FONT size=2>　　然后出现设置窗口，如图。<BR></FONT>
<DIV align=center><FONT size=2><IMG height=308 src="http://www.yesky.com/20010406/cjs0402printer.gif" width=333><BR><BR>其中“<FONT color=#006600>Hostname of Printer Server</FONT>”应该填上主机名，这里是“<FONT color=#006600>lily</FONT>”；“<FONT color=#006600>Printer name</FONT>”就是“smbclient -L //lily”显示出来的打印机名称，这里是“HP”；“input filter”是让你选择打印机型号的，如图<BR></FONT></DIV>
<DIV align=center><FONT size=2><IMG height=244 src="http://www.yesky.com/20010406/cjs0402inputfilter.gif" width=400></FONT></DIV>
<DIV align=center><BR><FONT size=2>　　可以用类似的型号代替，比如“<FONT color=#006600>lily</FONT>”上的打印机是HP deskjet1120c，这里就选择550c/560c/6xxc。这三项是一定要设置的。然后可以测试一下打印机了。<BR><BR><FONT color=#990000>五、让Windows的机器访问Linux</FONT><BR><BR>　　两种方式：<BR><BR>　　1、手工编辑“<FONT color=#006600>/etc/smb.conf</FONT>”文件；<BR>　　2、使用图形介面设置<FONT color=#006600>smb.conf</FONT>。这里介绍后者。<BR><BR>　　编辑“<FONT color=#006600>/etc/xinetd.d/swat</FONT>”,改“<FONT color=#006633>disable=yes</FONT>”为“<FONT color=#006600>disable=no</FONT>”,“<FONT color=#006600>only_from=localhost</FONT>”为“<FONT color=#006600>only_from=10.0.0.39</FONT>”。说明：该IP地址是我机器的网卡地址，如果不改，用“localhost:901”不能登录进SWAT管理介面。会提示你：“</FONT><FONT size=2><FONT color=#006600>A network ettor occured while Netsape was receiving data.<BR>(Network Error:Broken Pipe)Try Connecting again.</FONT>”<BR><BR>　　在浏览器中输入“10.0.0.39：901”，进入SWAT，如图<BR><BR></FONT></DIV>
<DIV align=center><FONT size=2><IMG height=154 src="http://www.yesky.com/20010406/cjs0402swat.gif" width=400></FONT></DIV>
<DIV align=center><BR><FONT size=2>　　第一步，设置“<FONT color=#006600>global</FONT>”,其中只要更改“<FONT color=#006600>security</FONT>”类型为“<FONT color=#006600>share</FONT>”，“<FONT color=#006600>workgroup</FONT>”是出现在网络邻居里的组名，“<FONT color=#006600>netbios name</FONT>”是该组中本机的名称，不设置则用主机名。如图。<BR><BR></FONT></DIV>
<DIV align=center><FONT size=2><IMG height=316 src="http://www.yesky.com/20010406/cjs0402global.gif" width=400></FONT></DIV>
<DIV align=center><BR><BR><FONT size=2>　　第二步，设置“<FONT color=#006600>shares</FONT>”,如图<BR><BR></FONT></DIV>
<DIV align=center><FONT size=2><IMG height=154 src="http://www.yesky.com/20010406/cjs0402share01.gif" width=400></FONT></DIV>
<DIV align=center><BR><FONT size=2>　　先建立一个新的共享名称，接着“<FONT color=#006600>choose share</FONT>”旁边的按钮，选择这个共享名称。设定“<FONT color=#006600>path</FONT>”为“<FONT color=#006600>/home/download</FONT>”,“<FONT color=#006600>guest ok</FONT>”为“<FONT color=#006600>yes</FONT>”,“<FONT color=#006600>writable</FONT>”为“<FONT color=#006600>yes</FONT>”,最后不要忘了单击“<FONT color=#006600>commit changes</FONT>”接受新的设置内容，如图。<BR><BR></FONT></DIV>
<DIV align=center><FONT size=2><IMG height=316 src="http://www.yesky.com/20010406/cjs0402share02.gif" width=400></FONT></DIV>
<DIV align=justify><BR><FONT size=2>　　在lily上打开网络邻居可以看到有一个“<FONT color=#006600>mygroup</FONT>”的组，里面有一台“<FONT color=#006600>redhat</FONT>”的电脑，共享目录是“<FONT color=#006600>download</FONT>”。<BR><BR>　　至此，一个简单的双向共享建立起来了。当然，SAMBA的功能远不至此，更复杂的功能，有兴趣的朋友可以参看各种资料。<BR><BR>参考以下：<BR><BR></FONT><A href="http://www.5ilinux.com/blog/archives/000007.html"><FONT size=2>http://www.5ilinux.com/blog/archives/000007.html</FONT></A><BR><BR><BR><BR><FONT size=2>随着Linux的普及和大众化，Linux下的文件共享成为用户关心的首要问题。其实几乎所有的Linux发行套件都提供了一个很好的工具Samba，可以轻松实现文件共享。 </FONT></DIV>
<DIV align=justify><FONT size=2>Samba是基于SMB协议的一个应用程序，目前的版本是2.3.x。Samba的功能很强大，但易用性也极差。究其原因是它的配置文件太大和不容易理解，新手和熟手都对其望而却步。其实仅仅实现文件共享这一单纯目的，配置Samba很简单，只需熟悉几个操作即可。下面我用一个例子说明这几个操作。 </FONT></DIV>
<DIV align=justify><FONT size=2>假设你已熟悉Linux的基本操作，例如VI编辑器的使用、基本的操作文件命令。<BR>现在我们有三台PC,一台安装了window2000，名字是test2000，其上有共享文件夹share；其余两台安装了Linux，一台名字是testsamba，其上有一目录/pub；另一台名字是testlinux，其上也有一目录/pub。我们要实现的目标是把testsamba上的/pub共享，供test2000和test_linux的使用。 </FONT></DIV>
<DIV align=justify><FONT size=2>对test_samba我们进行下面操作：</FONT></DIV>
<DIV align=justify><BR><FONT size=2>在/etc/下找到smb.conf，用VI编辑器打开，</FONT></DIV>
<DIV align=justify><FONT size=2># vi /etc/smb.conf或vi /etc/samba/smb.conf</FONT></DIV>
<DIV align=justify><FONT size=2>在【gobal】字段下，添加netbios记录，一般加在workgroup记录的下一行；</FONT></DIV>
<DIV align=justify><FONT size=2>netbios name = testsamba</FONT></DIV>
<DIV align=justify><FONT size=2>在【gobal】字段下，修改secrity记录;</FONT></DIV>
<DIV align=justify><FONT size=2>secrity = share</FONT></DIV>
<DIV align=justify><FONT size=2>在【public】字段下，修改path记录；</FONT></DIV>
<DIV align=justify><FONT size=2>path = /pub</FONT></DIV>
<DIV align=justify><FONT size=2>在【public】字段下，添加geuest ok记录；</FONT></DIV>
<DIV align=justify><FONT size=2>guest ok = yes</FONT></DIV>
<DIV align=justify><FONT size=2>删除【public】字段每行行首的“；”标示；</FONT></DIV>
<DIV align=justify><FONT size=2>保存退出。</FONT></DIV>
<DIV align=justify><FONT size=2>简单解释一下，添加的netbios name是可以在test2000网络邻居中看得见的机器名；添加的/pub是可以在网络邻居中看见的共享目录；添加guest ok是允许所有用户都可以guest帐户访问共享；删除“；”标示是要整个【public】字段成为可执行。 <BR>现在/pub就成为可以被test2000和testlinux两台机器共享的目录了。 </FONT></DIV>
<DIV align=justify><FONT size=2>试试看： </FONT></DIV>
<DIV align=justify><FONT size=2>在testsamba下，为使用test2000下的共享文件夹可以进行以下操作：<BR># smbclient –L //test2000 </FONT></DIV>
<DIV align=justify><FONT size=2>此命令为查看test2000下的共享情况，注意在系统要求输入password时，直接回车即可进入test2000，此时屏幕上列出test2000下的共享。 </FONT></DIV>
<DIV align=justify><FONT size=2>#smbclient </FONT><A><FONT size=2>\\\\test2000\\share</FONT></A><FONT size=2> –U share (或smbmount //test2000/share /pub) </FONT></DIV>
<DIV align=justify><FONT size=2>此命令可进入test2000的share目录，屏幕上出现MS-DOS的提示符：\时说明用户进入了share目录。此时可以在提示符后输入“？”查找你可使用的命令。 </FONT></DIV>
<DIV align=justify><FONT size=2>在test2000下，使用testsamba的共享目录/pub，可以进行以下操作： </FONT></DIV>
<DIV align=justify><FONT size=2>查找计算机testsamba，当testsamba目标出现时，双击图标pub，即进入共享文件夹pub了。 </FONT></DIV>
<DIV align=justify><FONT size=2>在testlinux下，使用testsamba的共享目录pub，可进行如下操作：（假设已知pub存在） </FONT></DIV>
<DIV align=justify><FONT size=2>#smbmount //testsamba/pub pub </FONT></DIV>
<DIV align=justify><FONT size=2>此命令可把testsamba下的pub挂到本机的pub上，同上在系统要求输入password时，直接回车，接着依次输入#cd /pub/pub、#ls，屏幕即列出testsamba的pub目录下的文件了。 </FONT></DIV>
<DIV align=justify><FONT size=2>Win2000和Linux实现文件共享了，简单吧！<BR><BR><BR><BR></FONT>
<TABLE width=680 align=center>
<TBODY>
<TR>
<TD align=middle>
<H2><FONT color=#0f3ccd size=2>Linux 系统中的Samba配置</FONT></H2><BR><FONT size=2><B>薛龙琴、王祖汉</B> </FONT></TD></TR>
<TR>
<TD align=right><FONT size=2>01-8-8 下午 01:09:04<BR>
<HR width=660 color=#f46240 SIZE=1>
</FONT></TD></TR></TBODY></TABLE><BR>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B><FONT size=2>前言：</FONT></B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>为了实现windows 和 Linux以及其他操作系统之间的资源共享，软件商推出nfs 和samba两种解决方式。由于市场上缺乏象pc-nfs那样的客户端工具，使得Linux和windows的资源共享变得复杂。Samba的出现解决了这一问题，它以其简洁、实用、灵活配置的特点受到越来越多人们的广泛关注。 </FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Windows利用SMB协议来实现操作系统间文件和打印机共享，而Samba本身具备SMB协议，它实现局域网内和Windows系列计算机的资源共享。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>本文就Samba在Linux系统下的配置为重点，讨论局域网内windows 与 Linux 的资源共享。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B><FONT size=2>一、Samba 介绍</FONT></B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B><FONT size=2>1、SMB协议</FONT></B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>SMB (Server Message Block，服务信息块) 协议，是局域网上的共享文件/打印机的一种协议，它可以为网络内部的其他windows和linux 机器提供文件系统、打印服务。SMB的工作原理是让NetBIOS和SMB运行在TCP/IP之上，且使用NetBIOS的nameserver让linux机器可以在windows 网络邻居里被浏览。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B><FONT size=2>2、Samba</FONT></B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Samba是用来实现SMB的一种软件，由澳大利亚的Andew Tridgell开发，是一种在Linux 环境里运行的自由软件。它可以完成如下功能：</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>文件服务和打印服务，实现Windows和Linux的资源共享。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>登录服务器，可以作为局域网的服务器。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>作为主域控制器。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>WINS服务器。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>支持SSL。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>支持SWAT。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B><FONT size=2>二、 Samba服务</FONT></B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B><FONT size=2>1、 核心进程</FONT></B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Samba 有两个守护进程：smbd 和nmbd，它们是Samba的核心进程。nmbd进程使其他计算机浏览Linux服务器，Smbd进程在SMB服务请求到达时对它们进行处理，并且为使用或共享的资源进行协调。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B><FONT size=2>2、 启动服务</FONT></B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Samba 有两种启动方式：Daemon形式和Inetd形式。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>（1）Daemon形式 建立启动脚本：rc.samba</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>smbd -D -d1</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>nmbd -D -d1</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>-D 表示以Daemon形式执行；-d1 表示除错记录级别</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>执行脚本文件rc.samba</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>（2）Inetd形式</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>设置文件：/etc/services</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>netbios -ssn 139/ tcp</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>netbios -ns 137/ udp</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>设置文件：/etc/inetd.conf</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>netbios -ssn stream tcp nowait root /usr/sbin/smbd smbd</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>netbios -ns dgram udp wait root /usr/sbin/nmbd nmbd</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>重启动Inetd daemon</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2># kill -HUP 1</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B><FONT size=2>3、 客户工具 smbclient</FONT></B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Smbclient命令用来存取远程Samba服务器上的资源。其命令形式与ftp相似。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>命令语法是：#smbclient <SERVICENAME>[password] [option]</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>(1) 解释：servicename是要连接的资源名称，资源名称的形式如下：</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>//server/service server 是远程服务器的NetBIOS名字，对于windows服务器而言，就是出现在网上邻居中的名字。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Service是各server所提供的资源的名字。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>pssword 是存取该资源所需的口令</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>option 各种命令选项，其中 -L 用于列出远程服务器提供的所有资源</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>-I 指定远程服务器的IP地址。此时，servicesname 中的NetBIOS名部分将被忽略。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>(2)多种smbclient命令：</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>执行smbclient命令成功后，进入smbclient环境，出现提示符： smb:\&gt;</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>这里有许多命令和ftp命令相似，如cd 、lcd、get、megt、put、mput等。通过这些命令，我们可以访问远程主机的共享资源。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B><FONT size=2>4、 Samba系统装载与卸载</FONT></B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>(1) 装载其他主机的资源</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>我们可以利用Samba提供的smbmount命令，装载其他主机的共享资源。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Smbmount的命令语法：# smbmount <SERVICENAME><MOUNT-POINT></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>其中 servicename 是资源名，mount-point是安装点。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>例如： # smbmount "\\server\tmp" -c ' mount /mnt' </FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>表示：把名字为“server”的计算机上的共享资源“tmp”的内容装载到本地的 /mnt</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>目录下。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>(2) 卸载资源</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>卸载一个已经装载的SMB文件系统，使用smbunmount命令，同时指定要卸载的装载点。 例如： # smbunmount / mnt</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B><FONT size=2>三、Samba配置</FONT></B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Samba组件的配置文件是 /etc/smb.conf ，该文件几乎包含了Samba系统程序运行时所需的所有配置信息。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B><FONT size=2>1、 配置选项</FONT></B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>配置文件中有比较重要的几个节：[gloabal]、[homes]、[printers]，下面分别给与说明。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>（1）[gloabal]节 在全局参数中，参数的设置直接影响samba系统。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>NetBIOS name：设置主机名称</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Workgroup：用来指定主机所在网络上所属的NT域名或者工作组名称。格式是</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Workgroup= Nt Domain-Name or workgroup-name</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Server string：用来设置本机描述，缺省是 Samba Server</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Host Allow：它允许设置哪些领域的机器可以访问它的Samba服务器</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Load printers：允许自动加载打印机列表，而不需要单独设置每一台打印机。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Interface：配置Samba使用多个网络界面。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Domain controller： 仅当网络中有一台在安装时设置为主域控制器时使用此选项。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Security： 设置安全参数，定义安全模式。Samba 的安全模式有四种</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Share、 user、 server 、domain </FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>encrypt passwords 、smb passwd file：用于适用加密口令。 </FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>下面是一段参数配置例子：</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>[global]</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>smb passwd file = /etc/smbpasswd</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>remote announce = 172.18.158.234 172.18.153.55 172.18.153.255</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>dns proxy = no </FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>security = user</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>encrypt passwords = yes</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>server string = Ftp Server</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>workgroup = turing</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>log file = /var/log/samba/log.%m</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>load printers = yes</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>guest account = dscan</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>remote browse sync = 172.18.158.234 172.18.153.55 172.18.153.255 </FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>printcap name = /etc/printcap</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>max log size = 50</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>hosts allow = 172.18.158. 172.18.153. 127.</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>... ...</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>（2）[homes]节 所有使用者的home目录</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>当任何一个客户访问Samba服务器时，在网络资源中都能出现自己的home目录共享。其配置如下：</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>[homes]</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>comment = Hnnw Directories</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>browseable = no </FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>writable = yes</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>（3）用户共享目录</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>用来指定某一特定用户组或者用户拥有访问权限的目录配置，下列参数配置仅有hnnw组的用户有权访问目录/home/samba。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>[public]</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>comment = Public Hnnw</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>path = /home/samba</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>public = yes</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>writable = yes</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>printable = no</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>write list = @hnnw</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B><FONT size=2>2、 用户映射</FONT></B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>全局参数“username map”用来控制用户映射，它允许管理员指定一个映射文件，该文件包含了在客户机和服务器之间进行用户映射的信息。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>如：username map= /etc/smbuser</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>用户映射经常在windows 和linux 主机间进行。 两个系统拥有不同的用户账号，用户映射的目的是将不同的用户映射成为一个用户，便于共享文件。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>下面是一个映射文件的例子：</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2># Map Windows admin to root</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>root=admin administrator</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>；Map the member of developer to studio</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>studio = @developer</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>等号左边是单独的Linux账号，等号右边是要映射的账号列表。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>服务器逐行分析映射文件，如果提供的账号和某行有右侧列表中的账号匹配，就把它</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>替换为等号左边的账号。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B><FONT size=2>3、 使用加密口令</FONT></B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>新版本的windows 95以及windows98、winnt(sp3以上版本)，在网络传输中仅传递加密口令作为用户认证的信息。这类客户机和不支持加密口令并且以user安全级运行的Samba服务器通讯时，会出现故障。为了正常的通讯，samba服务器使用加密口令。下面讨论如何在samba中使用加密口令。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>(1) 口令文件 /etc/smbpasswd</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>为了使用加密口令，samba 需要一份口令文件（/etc/smbpasswd），并且该文件应该和Linux的口令文件（/etc/passwd）保持同步。下面是生成文件命令：</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2># cat /etc/password | mksmbpasswd &gt; /etc/smbpasswd</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>smbpasswd 是需要的口令文件,其权限是0600，所有者是root</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>smbpasswd和passwd文件的记录对应，密码部分不同。密码有两部分组成，每部分</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>是32个"X"，前部分用于和Lanman通讯，后部分和Windows NT通讯。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Root用户可以使用smbpasswd命令为每个用户设定samba口令。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>(2) 修改配置文件 /etc/smb.conf</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>要使Samba使用加密口令，需要在配置文件smb.conf中加入如下参数。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Encrypt passwords=yes</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Smb passwd file= /etc/smbpasswd</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>第一行通知samba使用加密口令，第二行给出口令文件的位置。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>(3) 重启动samba 服务。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>修改完配置文件后，需要重新启动samba服务，可用如下命令：</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2># /usr/sbin/samba restart</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B><FONT size=2>4、windows系统中的明码口令使用</FONT></B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Samba系统中使用明码口令作为连接SMB的默认设置。当SMB服务器对协商协议做出响应时，响应信息包含了一位，以说明服务器是否支持询问或者响应加密。随着win95的网络重定向更新程序的发布，Microsoft修改了默认值，这样，windows客户就不会向不支持加密的服务器发送明码口令了。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>在这种情况下，有两种解决办法：</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>（1）设置Samba服务器使用加密口令</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>（2）让windows客户使用明码口令</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>这里选用第2种解决办法，通过修改注册表来实现。下面对win95/win98、winnt用户分别给与说明。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>（1）win98/win95系统用户</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>在注册表中加入下列注册字，并重新启动机器：</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>[HKLM\System\CurrentCntrolSet\Services\VxD\VNETSUP]</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>“EnablePlainTextPAssword”= dword:00000001</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>（2）Winnt系统用户</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>修改注册表，加入下列注册表项，并重新启动机器：</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>[HKLM\System\CurrentCntrolSet\Services\Rdr\Parameters]</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>“EnablePlainTextPAssword”= dword:00000001</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B><FONT size=2>四、Samba应用</FONT></B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B><FONT size=2>1、 windows资源共享与使用</FONT></B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>（1）windows资源共享</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>a. 使用TCP/IP协议作为网络默认通讯协议</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>b. 修改网络配置，设置文件和打印机共享。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>c. 设置好计算机名和所属工作组</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>d．共享系统资源</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>（2）在windows系统中使用Linux共享资源</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>a. 登录进入windows网络</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>b. 通过网上邻居查看、使用共享资源。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>c. 命令行下工具使用共享资源</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>使用命令行下的net.txt工具来查看、使用共享资源：</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>net use 命令的语法： c:&gt;net use X：\\servername\sharename</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>在这里，X：是共享的驱动器盘符，\\servername\sharename是到共享的UNC的网络路径。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>例如： c:\&gt;net use h:\\hey\myfile</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>表示：将hey机器上的myfile共享资源映射为本地的h盘</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B><FONT size=2>2、Linux资源共享与使用</FONT></B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>（1）将Linux 的资源共享</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>通过编辑Samba配置文件，添加需要共享的Linux资源。同时可以设定访问此资源的用户群及其访问权限。下面是一段例子，将本机的 /public/data 目录共享，所有人都有读写权限。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>[data]</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>comment = Public Data</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>path = /public/data</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>public = yes</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>writable = yes</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>printable = no</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>（2）在Linux中使用共享资源</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>可以使用smbclient命令，访问所有的Samba资源。具体使用方法见前述。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B><FONT size=2>五、Samba应用程序</FONT></B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>smbclient ：访问所有共享资源</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>smbstatus： 列出当前所有的samba连接状态</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>smbpasswd：修改samba用户口令、增加samba用户。</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Nmblookup：用于查询主机的NetBIOS名，并将其映射为IP地址</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Testparam： 用于检查配置文件中的参数设置是否正确</FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2></FONT></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><FONT size=2>Linux 系统中的Samba配置</FONT></TD></TR></TBODY></TABLE></DIV><img src ="http://www.blogjava.net/faintbear/aggbug/2185.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/faintbear/" target="_blank">小力力力</a> 2005-03-17 23:43 <a href="http://www.blogjava.net/faintbear/archive/2005/03/17/2185.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>