![]() |
《Internet资源访问大全》 | ![]() |
第十三章 用Archie检索匿名FTP文件 如十二章所解释的那样,匿名FTP 能够取用人类积累的大量的公共信 息,因为Internet上的任何人均可免费得到匿名FTP文件, 象上一章末尾 所讨论的那样,任何人只要具备Internet邮件通道,均可得到匿名FTP 文 件。 为了下传匿名FTP的文件,你必须知道文件放在什么地方。 实际上, 你需要知道的是匿名FTP主机的地址和包含文件的目录名称。否则, 在匿 名FTP这个广阔 世界里检索,路在何方? 路是有的,就是使用Archie——世界上最大的图书馆的卡片目录。 Archie是什么 在整个Internet,有一些称为Archie服务器的计算机,这些服务器提 供很重要的服务——帮助你找到有特殊文件或目录的匿名FTP主机的名字。 为什么使用Archie这个名字?是因为它听起来象“archive(文件、档案)这 个单词。我们倾向于将Archie说成是一个人,至少是一个智能化的机器人。 当你想要检索一个匿名 FTP 文件或目录时, 你所要做的事情是告诉 Archie你要检索什么。Archie将进行检索,然后显示每一个包含有那份文 件或目录的匿名FTP主机的名字。Archie还将详细地告诉你目录路径。 这 样,你就可以轻易地从相应的FTP主机中取得你所需要的FTP文件。 使用Archie服务器有三种方法,本章将给予全部讨论。首先,你可以 远程登录到Archie服务器,用Archie用户标识登录( 我们在第七章已解释 过如何对远程主机登录)。 一旦登录,一个Archie程序将自动启动。你可每一次录入一个命令, 告诉Archie你要检索什么,Archie就将检索其数据库然后显示结果。如果 你不能确定要检索什么,Archie将提供另外一种称为“ whatis 的服务, whatis对上千个不同的程序、数据文件和档案资料进行了描述。 使用Archie的第二种方法是使用一个称为Archie客户机的程序,你告 诉Archie 客户机程序你检索什么,客户机将自动连接一个Archie服务器, 要求它完成检索,根据你的指示输出,并显示结果。一旦你懂得如何使用 Archie,使用Archie客户机就很容易并且很快。你不必象第一种方法那样 进行远程通讯,也没必要记住该用什么Archie命令。 最后一种方法,你可以给任一个 Archie 服务器发送一个电子邮件, Archie将执行你的请求,并将结果邮回来。 Archie如何工作 从概念上讲,Archie的工作十分简单,每隔一段时间,特殊的程序连 到每一个已知的匿名FTP 主机,然后下传所有公共文件完整的目录表。这 些表存贮于称为Internet Archives Database(Internet档案数据库)中。 当你要求Archie检索一个文件时,所要进行的全部工作就是对该数据库进 行检索。 世界各地的各种Archie服务器都各自保持着对Internet上各匿名FTP 主机的跟踪。例如,Australian(澳大利亚)的Archie服务器就保持着对澳 大利亚的匿名FTP 主机的跟踪。由于信息是共享的,所有Archie服务器都 将尽可能保持最多数据。平均说来,大约一周检查一次各个匿名FTP主 机。 在我们撰写本章的时候,Archie服务器将在1500个不同的匿名FTP 主 机上跟踪两百多万个文件。这些文件数据量将达到几百个GB(gigabytes千 兆) Archie原先是作为加拿大蒙特利尔的McGill大学计算机学院的学生和 教师自愿者开发的项目,软件是Alan Emtage和 Bill Heelan 在 Peter Deutsch的帮助下编写的。今天,Archie由加拿大蒙特利尔的 Bunyip Information System 公司经营。你可以发邮件到[email protected] 与他 们取得联系。 Archie服务器的使用 为了使用某个 Archie 服务器, 先对它进行远程登录, 然后使用“ Archie”用户标识登录(不需口令)。表13—1列出了Internet 用户所能得 到的公众Archie服务器目录。例如,下面的命令 将对位于Rutgers大学的服务器进行远程登录: telnet archie.rutgers.edu 你可以使用任何一个Archie服务器,但显然使用最靠近你的一个 服务器会更快一些。 通常,对一个Archie服务器而言,能够对其同时进行远程登录的人数 是有限的。如果最近的一个Archie服务器正繁忙,可以用远的一个,或等 一会再试。 一旦用"archie"登录到服务器,你会看到一些欢迎使用方面的信息, 然后出现下面的提示: archie> 这时Archie服务器就为接受命令作好了准备。要停用Archie,可录入 quit命令。用help命令可显示帮助信息(后面将详细讨论有关 help命令的 内容,因为有些细微差别。) 使用Archie工具时分三步:首先按你喜欢的方式把问题提出来,然后 进行实际的工作,最后退出。 下面是一些Archie服务器的地址: 位置Internet地址IP 地址 Austriaarchie.edvz.unilinz.ac.at140.78.3.8 Austriaarchie.univie.ac.at131.130.1.23 Australiaarchie.au139.130.4.6 Canadaarchie.uqam.ca132.208.250.10 Englandarchie.doc.ic.ac.uk146.169.11.3 Finlandarchie.funet.fi128.214.6.102 Germanyarchie.thdarmstadt.de130.83.22.60 Israelarchie.cs.huji.ac.il132.65.6.15 Japanarchie.wide.ad.jp133.4.3.6 South Koreaarchie.sogang.ac.kr163.239.1.11 Spainarchie.rediris.es130.206.1.2 Swedenarchie.luth.se130.240.18.4 Switzerlandarchie.switch.ch130.59.1.40 Taiwanarchie.ncu.edu.tw140.115.19.24 USA:Marylandarchie.sura.net128.167.254.179 USA:Nebraskaarchie.unl.edu129.93.1.14 USA:New Jerseyarchie.internic.net198.49.45.10 USA:New Jerseyarchie.rutgers.edu128.6.18.15 USA:New Yorkarchie.ans.net147.225.1.10 表13—1Archie公共服务 用Archie服务器设定变量 为了控制你的工作环境,你可以改变称作variables (变量)的值。每 一个变量有一个 名字和一定的值。 你可以通过改变某个特定变量的值以 告诉Archie想让某件事如何进行。 例如,通过设定sortby变量,可以指定将检索结果按要求进行分类。 录入 show命令,可检查所有变量当前的值: show 如果只想显示某单个变量的设置,可在show后面指定变量名字, 例如: show sortby 图13—1显示了来自show命令的典型输出结果(现在,不必担心所有变 量的含义,过一会我们就将解释几个最重要的变量)。 #‘autologaut'(type numeric)has the value `15'. `compress'(type string)has the value `none'. `encode'(type string)has the value `none'. `language'(type string)has the value `english'. `mailto'(type string)is not set. `maxhits'(gype numeric)has the value `100'. `output-format(gype string)has the value `verbos'. `pager'(type booleam)is set. `search'(type string)has the value `exact'. `sortby'(type string)has the value `time'. `status'(type boolean)is set. `tmpdir'(type string)has the volue ` ltmp' `term'(type string)has the value`vt100 24 80' `max split size'(type numertic)has the value`51200'. `server'(type string)has dthe value`archie.rcltgers.edu'. 图13—1由Archie的Show命令产生的典型输出 开始Archie对话最好的途径是用show命令,先花点时间检查一下几个 重要的变量,查看它们的设置是否满足要求,如果不满足,就用set 命令 将其改变(稍后描述)。一旦按自己的想法准备好了一切,就可以录入命令 告诉Archie检索你想要的文件。 在用Archie进行检索之前,先确认几个最重要的变量是按自己要求的 方式设置的。这些变量(下面将具体讨论)是:maxhits, output- format ,pager,search,sortby和status。对search命令要特别加以注意。此外, 如果你打算让Archie的检索结果以邮件的方式发回,请设置好mailto变量。 从图13—1中可以看出,有三种类型的变量,它们是:布尔型, 数 字型和字符串型。 布尔变量(boolean variable)是用作为on/off 的触发开关 ( 单词“ boolean”是为纪念19世纪英国数学家George Boole而得名的)。为使布尔 变量为on,用set命令,使布尔变量为off,则使用unset命令。 Archie仅有两个布尔变量:pager和status。pager决定Archie以何种 形式显示其输出结果。当设置pager时, 检索结果将送到一个指定的称为 paging的程序,该程序将结果一次一整屏显示。当不设置pager时, 所有 结果将连续不断地显示在屏幕上。在大多数情况下,这种显示的结果将只 留下最后的一部分信息,先前的信息将退出屏幕。因此一般情况下都应对 pager给予设置。如果以前没有设置好,你可用下面的命令自己设置: set pager 在Unix中有三个常见的paging程序,它们是more,pg和less。Archie 服务器用less程序显示输出结果,因此less是你要掌握的分页程序。象很 多Unix程序一样,关于less有众多的命令,幸运的是你仅需知道其中的两 个命令就可以使用它:按SPACE键显示下页屏幕信息,按q( quit) 键返回 Archie状态。为便于参考,在本章末尾有一个关于最有用的less命令的速 查表。 关于more程序其名字来源于这样的事实,即在输出的每一屏幕下面, 程序都显示一个“more”字样。less程序更新一些,它是为替换more而开 发出的,命名为less是个荒谬的评语。因为less程序实际比more程序提供 了更多的功能,换句话说,"less才是更多" 另一个布尔变量status其内容就简单多了。当Archie完成一次检索, 在屏幕的底部可以显示一状态行。当对status进行了设置时,Archie就显 示这一行。如果对status没有设置,Archie就不显示这一行,通常你应当 设置status,如果没有设置,可用下面的命令完成设置: set status 变量的第二种类型是数字变量。就如名字暗示的那样,使用 set 命令可以给数字变量一个值。 对数字型变量你只需理解其中的两个:autologout和maxhits。 autologout变量是用来控制等待接受命令的最长时间,超过这个时间 Archie就将你自动注销。在我们的例子中,autologout(自动注销)的值是 15,它意味着如果过了15分钟你还没有录入一个命令,Archie就将注销并 断开连接。用下面的命令可以将autologout设定为另一个值: set autologout 25 可允许的时间范围是1——300分钟。 当使用Archie检索一个文件时,你常常会发现有许多,大概数百个匿 名FTP主机包含有这个文件, 为了加快速度, 你可设置 maxhits 以缩小 Archie检索的范围。Archie一旦检索达到该数,就自动停止检索。例如: set maxhits 10 设置maxhits也许是你应该做的事情,因为大多数Archie 服务器 的缺省值是一个大的数目(例如100),而你实际上, 只需要一个较好的主 机名。 为节约时间,可将maxhits设置成10就开始检索,如果没有找到, 将 maxhits提高一点再试一次。 第三种变量是字符串变量(string variable), 这个名字意味着这些 变量以一串字符的形式保存其变量值。 对于字符串变量你只需了解: mailto,output-format,search和sortby,其中最重要的是search。 mailto变量用来存贮一个邮件的地址,如后面所解释的那样,你可以 用mail命令告诉Archie将检索结果以邮件方式发回。如果在发出mail命令 之前设定好了mailto变量,那么Archie就知道将检索结果向什么地方发送。 否则,在每次使用mail命令时,你都必须指定你的回信地址。 用set命令设置mailto变量,指定其地址,例如: set mailto harley@fuzzball,uesb,edu output-format变量是告诉Archie你喜欢用什么格式输出结果。 有三种格式可以选择: verbose,terse和machine。使用带变量名的set命令,后跟你的选择。 注意在变量名中一定不要忘了加上“_”符号(下划线) set output_format verbose set output_format terse set output_format machine 通常情况下你应选择verbose或terse格式( 稍后解释这两个格式的含 义)。通过试用和选择你喜欢的一个。machine格式用于希望把检索结果发 回自己,然后用Unix命令或程序处理原始结果。在本章的末尾将给出一个 例子。 下面是关于某项检索结果分别经三种输出格式例子。 该结果是利用 Archie检索一个名为shoo-fly-pie的文件而获得的。用verbose 格式的输 出格式如下: Host mthvax.cs.miami.edu(129.171.32.5) Last updated 09:32.17 Jun 1993 Location:/recipes/ovo FILE-rw-r--r-- 1095 bytes 01:00 4 Dec 1991 shoo-fly-pie 用terse格式的输出结果如下: mthvax. cs. miami. edu 01: 00 4 Dec 1991 1095 bytes/recipes/ovo/shoo-fly-pie 最后,以machine格式输出的结果如下: 19920103010000Z mthvax.cs.miami.edu 1095 bytes- rw- r- - r- -/recipes/lacto/shoo-fly-pie 下一个变量search用以告诉Archie在检索时如何进行模式比较。 下一节将单独讨论该变量 sortby变量用以告诉Archie你希望以什么顺序显示检索结果,关于排序 有如下几项选择: set sortby none不排 set sortby filename以文件名按字母顺序 set sortby hostname以主机名按字母顺序 set sortby size按文件从大到小 set sortby time按时间从新到旧 在选项变量前面加一个字母r,则是告诉Archie以倒序排序。 set sortby rfilename按文件名字母倒序 set sortby rhostname按主机名字母倒序 set sortby rsize按文件从小到大 set sortby rtime按时间从旧到新 举例来说,每个文件或目录在最后一次被修改后都要记下修改的 时间和日期。如果告诉Archie按时间从最新修改项开始输出并显示结果, 则录入命令: set sortby time 设定检索变量(search variable) Archie具备的主要功能是按照所指定的模式对 Internet Archives Database(Internet档案数据库)进行检索。为了告诉Archie 开始一次检 索,可以使用find或prog命令(本章后面讨论这两个命令)。在开始进行检 索之前,应设置search变量以控制Archie按什么匹配形式进行检索。 有七种可能的设置,它们是:etact,sub,subcase,regex, exact -sub,exact-subcase exact-regex。用set命令后面跟search 再加选 择项可设置search变量。例如: set search exact 设置成exact选项是完成一次基本的、直接了当的检索。 它告诉 Archie按完全 一致方式检索你确定的名字,包括大写和小写字母。例如,如果要求 Archie按IBM-PC模式检索,则只匹配IBM-PC,而不匹配IBM-pc或ibm-pc。 你如果确实知道自己想要的是什么,那么这种形式的检索将是最快的 且能得到最好的结果。 sub选项则是告诉Archie检索这样一种模式, 它把你的要求作为子字 符串包括进去。例如,要求Archie检索PC和它的匹配IBM-PC,PC或PC-dos。 这种设置也不区分大写或小写。因此PC也将匹配IBM-PC,PC-dos。 subcase设置除要区分大写和小写外,与Sub相同。选择这种设置时,PC 将匹配IBM-PC而不匹配IBM-pc。 regex选项允许你用一种称为regular expression 标准表达式的方式 告诉Archie检索怎样的文件。在Unix中,regular etpression是作为一种 简洁的方法来指定一般模式。例如,用regex选项告诉Archie 检索标准表 达式PC$,,则它将去检索那些以PC字母结尾的名字。 标准表达式可以是复杂的,这里不打算讨论细节,如果想获得更多的 信息,可用help set search命令查看(help命令将在本章后面作详细解释) 。 最后三种设置选项是exact-sub,exact-subcase和excct-regex, 其意思是告诉Archie首先进行exact检索,如果没有发现, 再用第二项设 置检索一次。例如: set search exact-sub 这个命令是告诉Archie先精确地按照确定模式检索,如果失败, 再把它当作子字符串检索一遍。 进行检索 为准备一次Archie检索,先用show命令检查设置,改变那些不能满足要 求的设置,如果不能肯定要设置些什么,则用下面的命令: set mailto your-mail-address(你的邮箱地址) set maxhits 10 set output-format varbose set pagerset search eact-sub set sortby time set status 用find命令可以完成一次检索,在find后面加上你要Archie定位 的模式。例如: find shoo-fly-pie find rfc1325.txt find recipes.tar.z 另一个可能需要了解的命令是prog,它是find的同义词,在Archie初 创时,其数据库原本用于保存计算机程序一类的信息。由于这个原因,进 行检索的开始命令便叫作prog。 如今,Archie数据库中的信息包含各种各样的匿名FTP资源, 不仅有 程序,更多的是各种文件、电子杂志、Usenet档案等你能想象到的各种信 息。这样,开始检索的命令就由prog改为find。 然而,如果你所使用的Archie服务器采用的是旧版本的Archie软件,完 成检索的命令可能不是find,在这种情况下,你将不得不代之以prog。 用CTRL-C可结束一次正在进行中的检索。 邮寄Archie检索结果: 一旦Archie完成一次检索,你会发现将检索结果发回给自己或某个别 的人是非常有用的。为此,你必须录入mail命令: mail 如果已经设置mailto变量,Archie就会知道将结果向什么地方发送。 否则,在mail命令中还必须指定地址: mail [email protected] 如果要邮寄一个以上的Archie检索结果,则在检索之前,先设定 mailto是明智之举。 读取Archie服务器输出时所使用的命令 前面解释过,对pagr变量的设定是想告诉Archie用一个称为less的分 页程序显示其输出。当用less显示输出时,一次显示一整屏,然后暂停, 以等待下一个命令。 在这个时候,你可以按一下SPACE键以显示更多的信息。或按q键退出 less回到Archie例如,表13—2列出了在观看Archie 输出时可以使用的命 令。对大多数命令来说,仅按一下命令键而不需按回车键。然而对/和?命 令必须按回车键。 命令含义 SPACE向前走一整屏 q程序退出 RETURN向前进一行 nRETURN向前进n行 b向后退一整屏 y向后退一行 ny向后退n行 d向前(下)走半屏 u向后(上)走半屏 g走到第一行 ng走到第n行 G走到最后一行 P走到整个输出的n%行 /pattern向前按指定模式检索 ?pattern向后按指定模式检索 n重复前面的检索命令 表13—2用less观看输出时可用的命令 使用Whatis数据库 如果你知道文件或目录的名字( 或一部分 ) , 就可用 find 命令对 Internet档案数据库进行Archie检索。然而,当你只知道想要什么而不知 道单词时该如何办呢? 为了帮助这种情况,Archie具备第二种称为Software Description Database(软件描述库)的信息集。在这个库中包含有可以在匿名FTP档案 库中找到数以千计的程序,文件和数据文件的简短描述(实际上, 比软件 多得多)。 为在该库中进行检索,须使用whatis命令。在命令后面录入一个你想 要的单词,Archie将对软件描述库进行检索,显示所有包含指定单词的条 目。对每一个条目提供描述及文件名字。如果该描述看起来象自己想要找 的,就可确切知道将要检索哪个文件。 这些条目从何而来的呢?每当一个人编写了一个匿名FTP文件时,他 就向Archie的系统管理员发送一简短描述,Archie系统管理员就将这些描 述放在软件描述库中。 因而,有一个潜在的因素限制了whatis命令的有效性,如果对方 没有提供这种描述(许多文件是这样的),那么你在软件描述库中就找不到 它,而且,与Internet Archives Database库不同,这个库不是定期更新, 这样一来你可能会找到一个简短描述但在匿名FTP中不存在相应的文件。 尽管如此,当我们检索所要求的文件时,whatis仍是一个有力的工具, 它为我们在黑暗中摸索节省了不少时间。(顺便说一下,whatis 这个名字 来自Unix whatis命令,它也完成了联机Unix手册中whatis 命令相同的功 能)。 这里有个使用whatis的例子,从中你会喜欢发现一些使用电话的有趣 的东西,录入: whatis phone 部分输出如下: dialup Maintain a database of phone service and use cu( 1) to call them phone Multiuser real-time“talk”/program phone-k/phone another user.typing screen to screen phoneme Translate English words into their phonetic spellings ringback Implements a ring-back system that allows a phone line that is mormally used as a voice line and a dial-out dat a line to be used as a limited dial-in date and voice line. sys5-phone VAX-like Phone Utility for SysV telewords Telephone number to word conversion telno A telephone numbet permutation progrorn 如果你想试一下telewords程序,录入这样的命令find telewords 便可 显示相应的匿名FTP所在的位置。 在这个例子中有几点需要说明,首先,注意到whatis命令是进行逐字 母的检索。忽略大写和小写之区别。其次,你常会发现条目看似相象但实 际上跟你要找的没什么关系。例如Pphoname程序即如此( 虽然看起来很有 趣)。 最后,记住whatis命令并不对整个Internet档案库进行彻底的检索, 它仅知道那些列入软件描述库中的条目。例如,在几个匿名FTP 主机中都 有包含有用信息的名为telephone的目录,由于它们没有在软件库中描述, 因而whatis不能够发现它们。 显示帮助信息 有几种方法可以让Archie显示帮助信息。首先,你可以用help命令显 示其它有关命令的信息,具体做法是在help后面录入命令的名字。例如: help find help set 显示包含所有命令的一个表,录入: help? 如果对pager变量进行了设置,Archie将用less程序显示信息, 要结束 显示可按q,一旦退出了less,会看到一个新的提示: help> 这时你可以一个接一个地录入命令的名字以获得更多的帮助,如 果不再需要帮助,简单地按一下回车键就会回到通常情况下的提示符: archie> 该提示符接受一般Archie命令。 如果希望得到有关变量设置方面的帮助,可在help set后面录入变量的 名字。例如: help set search help set pager 之后,信息将再一次用lsee程序显示。如果在这时退出,会看到如下 的提示符: help set> 这时可以一个接一个地录入变量的名字以获得更多的帮助。如果 按回车键将回到help>提示符。 再按一次回车键会回到通常情况下的提示 符。 archie> 在读完帮助信息后为了回到archie>提示符,你必须先按q(退出less), 然后按回车键(也许按两次)。 学习Archie的另一个方法是阅读Archie 原正式文件。 下面说明 Archie文档是如何组成的。 所有Unix系统都带有包含每一个命令条目的联机手册。在任何时候都 可以用man命令阅读某个摘要命令的档案。 通常将联机手册中的每一摘要 条目当作一个page(页)(尽管很多条目远远超一页)。对编制软件的人而言, 在一个手册页中解释软件是如何工作的是一件很平常的事。 Archie本身也包含有解释如何使用Archie服务器的文件,当然这个文 件从你本地的计算机上是得不到的,但可以在使用 Archie 服务器时录入 manpage命令以获得这种信息。 manpage 这时Archie将显示出手册中页的内容,在使用help或mampage 命令之 后,你可以将输出结果用mail命令邮回来。这是一个得到属于自己的正式 Archie服务器文件拷贝的好方法。 最后,我要提及另外三个信息命令。 每当你登录到Archie服务器时,会看到一些欢迎信息。事实上,很多公 共Internet主机,例如匿名FTP主机,在登录时只显示一些一般的信息。 用户往往会检索象measage of the day(今天的信息)这样的内容,利 用Archie服务器,只要录入motd命令,就可在任何时候重显这样的信息。 如果你还想找出其它的Archie服务器,录入server命令可得到一个服 务器名录 最后, 你可以用 version 命令显示出你当前使用的服务器所使用的 Archie软件版本。 Archie服务器命令概要 为便于参考,图13—2列出了所有重要的Archie服务器的命令的概要 停止Archie对话 quit停止Archie操作并脱开连接 执行检索 find(模式)对主要匿名FTP数据库进行检索 prog(模式)老的检索程序 whatis(模式)检索软件描述数据库 显示信息 help?显示命令清单 help(命令)显示指定命令的帮助信息 help set(变量)显示指定变量的帮助信息 manpage显示Archie手册页 motd重显当日信息 servers显示Archie服务器名录 version显示当前Archie的版本 邮递信息 set mail to(地址)指明邮件地址 mail[地址]发出邮件 显示变量设置 show显示所有变量的值 show(变量)显示指定变量的值 设置普通变量 set auologout (分钟数)设置最大的自动关闭登录的等待时间 set maxhits(数字)设置要检索的最大条目数 set pager用paging程序显示输出 unset pager不用paging显示输出 set status检索时显示状态行 unset status检索时不显示状态行 设置输出参数 set output-format verbose用长格式显示输 set output-format terse用短格式显示输 set output-format machine用机器格式显示输 set sortby none不排序输出 set sortby filename按文件名字母排序 set sortby hostname按主机名字母排序 set sortby size按文件字节从大到小的排 set sortby time按时间从新到旧排序 set sortby rfilename按文件名字母倒序排 set sortby rhostname按主机名字母倒序 set sortby rsize按文件从小到大排序 set sortby rtime按时间从旧到新排序 设置检索参数 set search exact完全一致模式检索 set search sub按部分一致检索 set search subcase与sub相同,但要区分情况 set search regex按常规表达检索 set search exact-sub按exact,后按sub方式搜 set search exact-subcase先按exact方式,后按subcase方式检索 set search exact-regex按exact,后按regex检索 图13—2重要的Archie服务器命令概要 应用Archie的童话故事 那是一个风雨交加漆黑的晚上,外面刺耳的风呼呼地刮着,如注的雨 象击鼓一样打在玻璃窗上。我们坐在 桌边,拉低的帽缘盖在脸上,抓 住这片刻时间打盹,我们累极了,好象弹簧被压缩到了极限。 我们向后仰靠着,一个古老的钟正指向十二点,桌上面压着足以处理 一个月的文书业务,半瓶苏格兰威士忌散发着刺鼻的气味,在房间的一角, 计算机屏幕发着荧光…… 我们不知道她是何时进来的,但是我们的鼻子地闻到了她身上浓烈的 香水味。我们说道:“请走开,我们关门检修了。” “好吧,但你们今天一定得开门,我需要帮助,我会付给你们钱的”。 一个急躁的、带着土音的声音说。我们抬起头,惊愕地眨了两下眼睛: 她有五英尺三英寸高,一双碧兰的眼睛,长长的金发垂落在两肩上,就 象从高山岩石上飞下的瀑布,身穿一件紧身的外套,显现出玲珑的曲线。 她天真无邪地看着我们,太天真无邪了!使这儿一切都失去了光彩,当 然不包括指她的香水。 “听着”,她说道,“我需要帮助,只有你们能帮助我,我现在承受着 很大的压力。 “发生了什么事?” “我只有7小时的时间了,不然的话……” “到底什么事?小姐,我们已经告诉过你,我们不想为你火中取栗。现在 是什么时间了?恫吓还是谋杀?” 她看着我们,眼睛瞪得圆圆的。 “微积分。”她说道。 我们闭上眼睛,又睁开,“好吧,小姐,请讲讲。” 于是,我们听着她讲一个不算美妙的童话,一个古老的故事。一个天 真无邪的女孩从乡下来到这个大城市,内心充满了金色的希望和幻想,想 碰碰运气,但很快就掉进了漩窝,遇到了麻烦。 事情开始是顺利的,先是一个人带她参加一个聚会,这些人在一间黑 屋子里解着他们的方程。后来,她被邀请参加一个私人聚会,在那里一些 聪明的小伙子向她介绍了基础代数。开始,她对圆规感到入迷,随身带着 它。不久,她又同时对方程式,园锥曲线和幂发生兴趣。直到有一天,她 发现自己跑到一个商店去偷了一块半园规——她对此已入迷了。 “你们必须帮助我,”她抗争道,“你们是我最后的希望,我的第一 节微积分课明天早上开始,而我现在还没有作好准备,你们知道那个博士 会如何对待一个没有作好准备的人吗?” 我们又打量了她一下。 “好吧,”我们说道,“我们愿意帮助你,但你将预付一百元。” “作个交易怎么样?”她说道, “我知道从什么地方可以拿到一个分 析文件的复杂拷贝。” “非常感谢。我们冒着被警察扭断脖子的危险,这是该得的。”我们 说道。“好吧。”她噘着嘴,从外衣口袋里掏出两张五十元的钞票。 就这样我们把她拉到了计算机旁坐下, 这台计算机已经登录到了 Internet上。 “你有自己的PC机吗?” 她点了点头。 “好吧,我们将使用Archie工具为你找到一个有用的程序。” 先对一个Archie服务器进行远程登录,花了点时间对变量进行了设置 后就开始了进行对“微积分”的检索。最后我们在华盛顿大学的匿名 FTP 主机中找到了这个程序。我们退出Archie,通过FTP到匿名主机, 进入“ 微积分”目录列表。 “在这儿,”我们说道。“这是你要找的,一个名叫rurcl.zip 的文 件,你知道如何调出全文吗?” 她轻蔑地看着我们反驳道:“你祖母知道如何用嘴吸蛋吗?” “好吧,你现在对这个文件解压缩后,会发现一个称为“ Are You Ready for Caculus?”(为微积分作好准备了吗?)的文件,是由 Arizona 大学的David Lovelock编写的,它将向你指出,为了准备学习微积分,要 复习些什么内容。” 她睁大眼睛望着我们,惊奇地问道:“你们是如何知道这些的? ”我 们也瞪着眼睛道:“这就是你付钱给我们的原因,小姐。” “我想我明白了。” 我们将程序下传到我们的计算机,然后为她拷贝到一张软盘上,她拿 起软盘,放进口袋然后就向门外走去。 走到门边,她回过头来,大大的、碧兰的、纯真的眼睛看着我们。 “我喜欢你们的做事风格,也许你们会到我那儿去对文件解压缩呢,” 她停了一下又说道:“你们真的知道如何解压缩吗? 把手指放在键盘上, 然后就解开了。” 她走了,象小鸟一样飞出了门外。 我们望着外面,还是一个风雨交加的黑夜。 图13—3是一个典型的Archie和匿名FTP检索对话。 % telnet archie.rutgers.edu Trying 128.6.18.15-Connected to dorm、Rutgers.EDU Escape character is ‘T]’ Sun OS UNIX (dorm.rutgers.edu)(ttyqo) login: archie Last login:Wed Jun 23 16∶33∶38 from fuzzball.ucsb.edu Sun OS Release 4.1.3 (TDSEERVER-SUN4C-DORM) #1: Sat May 1 16∶46∶07 EDT 1993 Welcome to the Rutgers University Archie Servev! …message of the day deleted.(当日信息略) archie>show #autologout(type numeric)has the value15 #compress(teype string)has the valuenone. #encode(type string)has the valuenone. #language(type string)has the valueenglish. #mailto(type string)is not set. #maxhits(type numeric)has the value100. #output-format(type string)has the volueverbose. #pager(type boolean)is not set. #search(type string)has the valuesub. #sortby(type string)has the valuenone. #status(type boolean)is set. #tmpdir(type string)has the value/tmp. #term (type string)has the valuevt100 24 80. #max-split-size(type numeric)has the value51200. #server(type string)has the valuearchie.rutgers.edu. archie> set maxhits 10 archie> set pager archie> set search exact-Sub archie> set sortby time archie> find calculus ……some responses deleted ……(反馈信息略) Host wuarchive.wustl.edu (128.252.135.4) Last updated 05∶03∶23 May 1993 Location:/ edu/math/msdos DIRECTORY rwxr-xr-x 1024 Mar 9 18∶02 caculus archie>quit #Bye. Connection closed by foreign host. % ftp wuarchive. wustl.edu Connected to wuarchive.wustl.edu 220 wuarchive.wustl.edu FTP server (Version 2.1 WU(2) Wed May 19 07∶29∶30 CDT 1993) ready. Name (wuarchive.wustl.edu:harley):anonymous 331 Guest login ok.send your complete e- mail address as password Password: …当日消息略 230 Guest login ok. access restrictions apply. ftp>cd/edu/math/msdos/calculus 250 CWD command successful. ftp>dir 200 PORT command successful. 150 Opening ASCII mode date connection for/bin/ls. total 2344 …忽略一些行 -rw-r--r-- I husch234171950 Jan 10 18∶07 rurc1.zip -rw-r--r-- I husch234 99621 Jan 10 18∶08 rurc2.zip -rw-r--r-- I husch234108018 Jan 11 07∶47 rurc3.zip 226 Transfer complete 2657 bytes received in 5.8 seeonds (0.45 kbyfes/s) ftp>get rurc1.zip 200 PORT command successful. 150 Opening ASSCII mode data connection for rurcl.zip( 171950 bytes). 226 Transfer complete. local:rurcl.zip remote:rurc1.zip. 172885 bytes received in 1.4e+02 seconds (1.2kbytes/s) ftp>quit 221 Goodbye. 图13—3典型的Archie和匿名FTP的对话 Archie客户机 直到现在,我们所讨论的都是使用Archie服务器进行直接的检索,即 先远程登录,以Archie登录,然后录入命令。然而,一旦你知道了Archie 是如何工作的,一种很好的的方法是通过Archie客户机方式。 Archie 客户机是一个在你的计算机中运行的程序, 你告诉这个程序 你想要什么,然后它就为你连接一个Archie服务器,发出请求,接收输出, 接着将结果显示在你的计算机屏幕上: 使用Archie客户机不但容易,而且速度也惊人的快,我们常常会发现 利用客户机在几秒钟之内就会得到结果(当然,如果服务器正忙着, 得到 结果的时间就会长一些。) 另一种因素是大多数Archie服务器对能同时登录的客户都有严格限制, 并不是你想什么时候连接都可以,客户机是在你自己的计算机上运行的程 序,你任何时候都可使用它。 有各种类型的Archie客户机, 使用最普遍的两个是 archie( 对普通 Unix终端)和xarchie(对X Window终端,见第二章)。也有针对其它计算机 的客户机,如运行DOS的PC机,运行VMS的VAX机。 x archie程序用一种基于图形用户界面的 X Window , 一旦你会用 Archie,就会用x archie而无需我们帮助。因此, 本节我们将集中精力讨 论archie程序。 为了使用archie,必须将它先安装在你的计算机中。为了弄清是否完 成了安装,可以录入archie命令,后跟上要找的东西,试着进行一次检索, 例如: archie rfc1325.txt 如果 archie 程序存在, 则上述命令会返回某种类型的结果, 如果 archie程序不存在,则会显示如下之信息: archie:Command not found 如果的确如此,那么要访问Archie就不得不对一个Archie服务器进行 远程登录或者通过邮件发送请求的方式( 本章后面再解释 ) 。 由于使用 Archie客户机程序是非常之方便,你可以礼貌地请求你的系统管理员为你 装上archie。该程序可以从匿名FTP中获得(用Archie对archie这个单词进 行检索)。 若如果系统中有archie程序,你可以用man 命令在联机手册中阅读正 式文档: man archie 在阅读有关Archie资料时,你可能见到对Prospero的介绍, Prospero 是一个工具,可以用它来访问遍布整个Internet的信息。利用Prospero, 你可以使用一个存于远程计算机上的文件就象使用存于自己的计算机中的 文件一样。由Prospero所创建的文件分布式系统是基于虚拟系统模型这样 一种思想,且在Internet上得到了广泛应用。任何人只要在自己的计算机 中安装了Prospero客户机,均可使用Prospero工具。Archie客户机和服务 器使用Prospero技术来沟通他们之间的关系,尽管其细节隐而不见。 Prospero是由Cliff Neuman创建的,Cliff Neuman属于南加利福尼亚 大学的信息科学学院。为了获得更详细的说明,你FTP到 prospero. isi .edu。也可以向prospero-request @ isi.edu发送一个信息参加一个普通 的Prospero的专题讨论组(我们在第十二章中讨论如何使用FTP,在第十八 章中讨论mailing lists。) 使用Archie客户机 要了解如何使用Archie客户机程序,须先明白Archie以及它是如何工 作的。如果没太弄明白可再读一下本章前面几节。 使用archie最容易的方法是指定你要检索的文件或目录的名字,例如: archie rfc1325.txt 用上面的命令时,Archie客户机将连接一个Archie服务器,让它完成 一次检索,再把结果返回给你 使用Archie客户机的好处之一,是你可以用标准的Unix工具对输出结果 进行处理。例如,下面的命令将完成一次检索并且把结果存于名为rfc 的 文件中: archie rfc 1325.txt>rfc 如果rfc文件不存在,则Unix将建立该文件。如果文件存在, 则该文 件中原来的内容将由新的内容所代替,因此应加注意。 在Unix中,你可以在一个命令后面用>(大于)符号后跟一个文件名的 方式,使命令产生的结果存于该文件中。这种做法称为“重新定向标准输 出”。为了看到更详细的内容,我们为你推荐几本好的Unix书籍。 跟其它Unix命令一样,关于archie也有不少的选项来改变它的工作方 式。做法是把所说的开关或选项加在命令后面。 例如, - t 选项是告诉 Archie将结果以文件最后一次被修改的时间和日期进行从新到老的排序。 archie-t rfc1325.txt 就象在Archie服务器上用set sortby time一样。 表13—3 包含了一些最重要的选项。其中很多与Archie服务器命令相 一致。 选项-e,-s,-c和-V与在Archie服务器中使用set search命令有相同的效 果。例如,要进行一次sub检索你可以用-s选项。 archie -s rfc1325 选项-e将完成一项exact检索,后者是隐含的。 因此下面两个命令是 等效的: archie rfc1325.txt archie -e rfc1325.txt 如果要完成一次组合检索,比如exact-sub可以用-e 和另一个检索选 项,例如: archie -e -s rfc1325 这个命令是告诉Archie先以exact方式检索,如果失败,再以sub 方式检索。 同样,可以用-t和-l选项 控制输出的 格式。-t选项将结果按时间排 序(象set sortby time一样),-l 选项将输出送到另一个程序或形成适合 于Unix命令再处理的形式(象set output-format machine): archie -l rfc1325.txt 选项含义 -c子字符串检索区分大小写(set search sub case) -e精确匹配检索[缺省](set search exact) -r用正规表达式方式检索(set search regex) -s子字符串检索(set search sub) -o文件名将结果发送到指定文件 -l每行列一项(set output-format machine) -t将输出的时间和日期排序(set sortby time) -m数字置最大检索条目项(set maxhits) -h地址将Archie服务器请求发给指定主机 -L将程序所知道的Archie服务器列表显示 -V(冗长的)在较长的检索期间作注解 表13—3重要的archie选项概况 下面是前面命令的输出样本,注意Archie已经将输出形成一行行的 形式: 19920515000000Z918850esel.cosy.sbg.ac.at/pub/mirror/rfc/rfc1325.txt 19920515000000Z91885 swdsrv.edvz.univie.c. at/doc/rfc/rfc1325.txt 19920514000000Z91884 plaza.aarnet.edu.au/rfc/rfc1325.txt 19920601000000Z91884 sunb.ocs.mq.edu.au/Documents/RFC/rfc1325.txt 19920817000000Z91885 sifon. cc. mcgill. ca/pub/ftp-inc/doc/rfc/rfc1325.txt 如果你知道如何使用Unix,你可以将这种类型的输出发 给另外的命令, 例如,下面的一系列命令将显示贮于澳大利亚的计算机中的所有条目( 地 址以.au结尾的计算机)。 archie-l rfc1325.txt|grep'.au' 关于grep命令如何工作的详细内容,请参阅Unix书籍。 选项 - m 与 Archie服务器中的set maxhits命令有相同的效果,例如, 要设置最大检 索条目数为10,可用下面的命令: archie-m10 rfc1325.txt 为了加速检索进程,用-m选 项以限制输出的数量(我们推荐用-m10)。 如果没有找到你所要的,则用较大的值再发一次命令。 如上所述,你可以用Unix重新定向工具将输出送给一个文件。相应的, 你也可以用-o选 项完成同样的事情。因而, 下面的两个命令是完全等价 的: archie rfc1325.txt-orfc archie rfc1325.txt〉rfc 当使用archie程序时,它所连接的是你的系统管理员在安装该程序时 所指定的Archie服务器,如果想看一下这个服务器的名字,可录入下面的 命令: archie-L 这个命令还将显出其它Archie 服务器的名字。 如果想对某个指定的 archie服务器发送一个请求;你可以使用-h(主机)命令并指定你要的服务。 例如下面的命令将请求发给地址为archie.au的archie服务器: archie-harchie.au rfc1325.txt 最后,我们将讨论的最后的选项,它将对你的检索很有用。使用 -V命令(冗长的)是让archie客户机在检索过程中随着进程作些说明: archie-V rfc1325.txt 每当检索时间似乎较长时,就会看到如下的信息: Searching…… 用这种方法使你估计到目前正在干什么事,使你的情绪保持在一个很 好的状态。 通过发邮件方式使用Archie 前面我们已经讨论了两种使用archie的方法。最好的方法是使用能向 你的Archie服务器发请求的Archie客户机程序(archie或xarchie)。 如果 不能这样做。就对一个Archie服务器进行远程登录,用Archie标识登录后 再录入命令。这一节我们将叙述第三种访问Archie服务器的方法:通过电 子邮件发送命令。 如果你不能使用 Archie 客户机程序, 或由于某种原因不能直接对 Archie服务器进行远程登录,那么通过邮件方式使用Archie服务器一样是 方便的。它也适宜于不急于要检索结果或一次要进行多项检索的时候。你 可以通过邮件发出请求,然后在自己的邮箱中获取检索结果。 要通过邮件方式使用archie,就向某个Archie服务器的用户标识发一 条信息(表13-1中列有服务器)。在所发的消息中使标题一行空白,在信件 的正文写上你想发出去的所有命令,每一条命令占一行。 Archie将执行你的命令,而后将结果返馈回来。使用的大多数命令是 以前所讨论的关于Archie服务器的命令(见图13-2的概要),唯一的例外是 你不能使用那些在邮件请求中没有意义的命令(例如set pager)。 必须使用的第一条命令是set mailto。这个命令保证Archie将结果发 向正确返回的地址。如果漏掉了这条命令,Archie就找你邮件中信头上你 的地址。大多数情况下,这也不会发生差错,但最好是把地址明确。为了 方便,可使用老版本中的path命令。下面二条命令是等价的。 set mailto harley @ fuzzball.ucb.edu path harley @ fuzzball.ucb.edu 最后一个你必须使用的命令是quit,这个命令告诉Archie你准备结束 并略去后面的各行。这个命令之所以重要还在于有些邮寄程序允许你定义 一签名并将其自动地附在你的所有邮件的后面。利用quit命令保证Archie 省略该邮件尾部的附加行。 在你第一次通过发邮件使用某个指定的Archie服务器之前,你应当先 向它发一条请求以获得一些帮助信息。这些帮助信息将向你说明该服务器 对哪些命令无效。 下面是发出这样的请求的一个简单对话,发送对象是一个称为archie. rutgers.edu的Archie服务器: %mail [email protected] Subject: set mailto [email protected] help quit CTRL-D EOT 得到答复后, 仔细阅读它, 如果你的 Archie 服务器使用的是旧的 Archie软件版本,则就不能使用图13-2中列出的所有命令。特别是不能使 用set mailto,要代之以path;不能使用find,要代之以prog。在下面的 简单对话中,我们向Archie发出请求检索有名的rfc1325.txt文件: % mail [email protected] Subject: set mailto [email protected] set maxhits 25 set output-format verbose set search exact set sortby time find rfc1325.txt quit CTRL-D EOT 一旦从Archie服务器中收到答复,就可以给匿名FTP 服务器发送 信息,以找到真正需要的文件(见第十二章)。