2019年7月7日 星期日

Unix 传统和Unix联机手册

在Unix世界中,有许多不同的文档资料系统,每一种系统都拥有自己的特点。其中一些文档资料系统被广泛使用,而另一些系统只服务于特定的领域。通常,所有这些系统都拥有两个共同的目标:使程序员易于存档他们的工作;使用户易于学习如何使用程序员创建的工具。
在本篇内容中,将讲授如何使用两个最重要的Unix文档资料系统:Unix联机手册(每个Unix系统都提供的一项功能)和Info(GNU项目的官方文档资料系统)。
这两个工具都要在Unix CLI(命令行界面)中使用。原因在于图形化程序都是自文档化的,在某种意义上它们几乎都拥有自己的内置帮助功能。因此,当需要基于GUI的程序的帮助功能时,不需要使用联机手册或Info。在程序本身中就可以找到帮助内容——通常是打开Help菜单。

1. Unix传统与自学
正如在前面内容所讨论的, Unix于20世纪70年代初期在新泽西州的贝尔实验室(那时属于AT&T公司)开发。在Unix创建后不久,它就在程序员和研究人员中流行起来,首先是在贝尔实验室,然后扩展到许多大学的计算机系。
随着Unix的日益流行,越来越多的人需要学习如何使用该系统。但是,贝尔实验室的程序员都是大忙人,他们没有时间,也没有这种意向去教新用户如何使用Unix。此外,Unix的流行文化鼓励任何人都去创建新工具,并与其他用户共享。因此,随着时间的推移,以及新用户的增加,人们需要学习的内容也快速递增。
为了响应这些需求,Unix开发人员采纳了两种解决方案。首先,他们创建了一种联机手册,并内置在Unix中,该手册中包含每个Unix工具的信息。因为Unix手册本身就是Unix的一部分,所以用户可以随时使用它。这意味着,当一名位于偏远位置的用户在深夜碰到问题时,他可以求助于该手册寻求帮助。
解决方案的第二部分就是鼓励建立一个工作环境,在这个工作环境中所有用户——不管是新用户还是有经验的用户——都需要在请求帮助之前尽自己最大的努力解决自己的问题。更准确的说,我们所谓的Unix传统就是要求您自己学习,尽力自己解决问题。但是如果您尽力最大的努力,而问题依然存在,那么其他Unix用户将乐意帮助您。反过来说,一旦您成为一名有经验的用户,那么就要求您帮助他人。
Unix这一传统之所以重要的原因有两方面。首先,它提供了一种有效扩散Unix的方式。因为只有在真正需要时人们才请求帮助,所以有经验的Unix用户就不必在没有必要提供帮助的用户身上浪费时间。其次,通过使人们自学Unix。可以鼓励Unix开发人员的独立思考和个人创新。从而使Unix更加繁荣。实际上,Unix传统培养了一代聪明、独立并且乐于助人(当需要时)的用户,他们在一个协作创新的氛围中工作。
例如,如果一名程序员需要一个新工具,Unix文化将鼓励他自己创建这个新工具。一旦这个程序完成,这个新程序就可以添加到普通Unix系统中。然后程序员编写相关的文档资料,并添加到联机手册中。在任何希望学习如何使用这个新工具的用户将阅读联机手册、体验并自学的前提下,这个新工具通过普通Unix社区发布出去。如果用户发现了bug或者严重问题,那么该用户可以自由的与该程序的作者联系。
因此,可以基于下面两个主要思想理解Unix传统:在请求帮助之前尽最大努力解决问题;当他人请求您的帮助时,心甘情愿的帮助他人。事实证明这些思想非常重要,最终它被抽象为一个单独的非常古怪的单词:RTFM
名称含义
联机/在线
以前,单词联机/在线(online)用来描述连接到一个特定的计算机系统上这一情形。例如,当您登录到系统以后,我们就可以说您联机了。
当讨论Unix联机手册时,我们正是以这种方式使用该单词的。手册是联机的,这是因为它对Unix系统的所有用户可用。
现在,我们还使用术语联机,在线表示资料或人连接到Internet上,而不再是一台具体的计算机系统。例如,一旦您连接到网络上,就可以使用在线银行、在线支付,甚至还可以进行在线联系。
因此,作为一名Unix用户,您以两种不同的方式联机:登录到一台特定的Unix系统上,或者连接到Internet上。


2. Unix传统中的RTFM
单词RTFM由于下述几个方面而非常独特。首先,它是英语中没有元音的最长动词。其次,它通常全部按照大写字母拼写。最后,因为RTEM没有元音,所以这个单词发音成4个不同的字母(“R-T-F-M”),虽然这个单词并不是一个只取首字母的缩写词。
正如前面所述,RTFM是一个动词。我们使用它来体现这样的一种思想,即在请求帮助或者信息前,必须尝试自己解决问题或者寻找信息。
单词RTFM有两种使用方式。首先,您可以告诉他人不要打扰您,除非他自己已经尽力了。例如,如果有人说:“您可以向我示范如何使用whatis命令吗?”您可以回答:“RTFM”。在这种情况下,RTFM意味着“除非您查看了Unix联机手册,否则不要请求帮助。”
其次,您可以使用RTFM表示在请求帮助之前,您已经自己试图解决这个问题了?例如,您可以向一位朋友发送一封电子邮件:“您能帮我设置Linux系统与Windows PC共享文件吗?我已经RTFM两天了,仍然没有办法实现这个目的,只能每隔几小时重新启动一下Windows。”
从一开始,RTFM思想就是UnixC传统和文化的一部分。现在,它的应用已经扩展到internet上,特别是在Usenet上和开放源代码社区中。随着RTFM应用的日益扩大,它的含义也在不断扩大。现在,RTFM意味着不仅要求在Unix联机手册中,而且还要求在Internet上查找信息
因此,除非至少使用了一个搜索引擎(例如google)查找了相关网站,否则最好不要请求帮助。至于Usenet,如果您是讨论组的一名新手,那么在发送第一个帖之前希望您阅读一下改组的FAQ(frequently asked question list,常见问题解答。RTFM就是这样考虑的。
提示
当查找Unix问题的解决方法时,不要忘记了使用Usenet,这是一个世界范围内的论组系统。
搜索Usenet最简单的方法就是使用GoogleUsenet存档,称为Google Groups
如果在进行了所有搜索之后,还找不到希望的答案,那么您就可以在合适的讨论组中提交一个请求。如果您这样做,请一定要提及您已经RTFM了。


名称含义
RTFMRTFM'd
RTFM是一个动词,表示这样的思想,即当您需要信息或者在解决问题时,在请求他人帮助之前,应该花一些时间尝试自己去寻找所需的东西。
当谈及已经执行过这样的动作时,我们使用RTFM的过去分词,并拼写成RTFM'd,而不是RTFMed。因此,您可以说:“I have RTFM'd for the last two hours, and I can't figure out how to connect my cat to the Internet(我已经RTFM了两个小时,可是我还是无法知道如何将猫连接到Internet上。
和许多技术单词一样,RTFM刚开始是一个只取首字母的缩写词,在Unix的早起时代,RTFM代表“Read the fucking manual(阅读该死的手册。但是,现在RTFM已经不是一个取首字母的缩写词,而是凭自己资格成为一个合法的单词。
这并不稀奇。许多技术术语都是这样,例如radar(radio detection and ranging) laser(light amplification by stimulated emission of radiation) scuba (self-contained underwater breathing apparatus),还有各种专有名词,例如Nato(North Atlantic Treaty Organization),以及集合名词,例如yuppie(young urban professional).
RTFM和其他这类单词之间最大的区别是RTFM通常都拼写成大写字母。这只能这样解释。即在我们的文化中RTFM要比radarlaser. scubaNatoyuppie都更加重要。


3. Unix 手册:man
Unix 手册通常称为联机手册,或者更简单一些,称为手册,它是一个文件集,其中每个文件都包含一个具体Unix命令或者主题的相关文档资料。每个Unix用户都可以在任何时间使用它。要使用该手册,只需输入一个简单的命令。
以前(大型计算机时代),大多数系统都提供有大量打印高薪技术的文档资料,不利于更新和携带,所以不利于方便使用。
Unix就不同。从一开始,文档资料就实在联机,这意味着,所有的用户在自己的终端都可以比较方便地阅读任何方面饿内容。此外,因为联机手册存储为一组磁盘中,所以添加新文件就可以添加新的资料,修改文件就可以更新已有的资料,这都相当简单。
Unix联机手册访问相当容易。您所需的全部动作就是输入单词man,后面跟着您希望了解的命令名称。Unix将显示这个命令的文档资料。
例如,要显示,cp(复制文件)命令的文档资料,可以输入:

man cp

假如希望了解 man 命令本身,则可以输入:

man man


提示:

man命令是一个重要的Unix命令,因为使用它可以学习其他任何命令。
如果希望学习多条命令,可以在同一行上输入希望学习命令的名称。例如:

man cp mv rm
Unix将分别显示每条命令的文档资料。这个3个命令分别是:复制,重命名和删除文件。
名称含义
联机手册
Unix手册一向以来都是比较重要的。
尽管有关Unix方面的书籍和参考资料有许多,但是当人们指手册时,您可以假定他所指的就是那个唯一的Unix联机手册。
对于Unix用户来说,毫无疑问所谓的Unix手册就是Unix联机手册。

沒有留言:

張貼留言