第 1 场 柔道的黑腰带
自从上一幕“传奇的开始”在一些论坛得到发表以后,笔者的确收到一些朋友的来信,希望笔者能够更加详细的说说关于Linux 的一切,当然也不仅限于Linux本身。是的,笔者在这里要坦率的告诉大家,在笔者的脑海里和笔者的电脑硬盘里的确“埋藏”着太多的Linux 的故事,而且这些故事都是动人且惊人的。其中就有自由软件之父Richard Stallman,Linux 之父Linus Torvalds,自由软件头号理论家Eric S.Raymond,Linux 最大分销商红帽子公司的CEO Robert Young,自由软件书籍最大出版商的创始人Tim O'Reilly,还有Web 服务器市场占有率最高的Apache社团的共同创始人及核心人员Brian Behlendorf等等等等。
毋庸置疑,以上所列的每一个人,每一个名字都带着精彩的故事和夹带着少许传奇色彩,但是笔者更要坦率的告诉大家,如果笔者把上面这些人的故事都放在《Linux 探索》此系列文章中来讲述的话,那么就连笔者也不知道何时才能进入《Linux 探索》系列文章的真正主题——学习Linux 的技术了。
也许会在将来的某一天(或许就在明天),笔者会另开一系列文章,专门来讲述这些让人振奋的精彩故事,这里就请大家“稍安勿躁”啦。
好了,闲话少叙,现在开始切入正题。本系列文章的主角就是Linux ,那么什么是Linux 呢?相信大家经过前一幕3 场的故事应该已经知道问题的答案了吧?只是如果您要向别人(他或者是她可能一点都不了解Linux )来介绍什么是Linux的话,就没有必要给他来讲述那么冗长的故事了,只需要一句话:Linux 是一种操作系统。什么?还是不太明白?那么再详细一点:Linux 是一种和Windows 一样的操作系统,可以帮助你完成工作的一个平台。(哦,如果他或者是她连Windows都不知道的话,那就不管你的事了^_^ )
我知道接下来肯定会有人问:那么是Linux 好呢,还是Windows 更棒呢?MyGod ,这是不是能够算是一个经典问题呢?笔者想是的,因为要给出完整的答案可不是一件容易的事情!所以笔者在这里也只能这样回答您:Linux 和Windows哪个更棒,目前取决于您要干什么和您问的人是谁。
当然,笔者知道这更像是一句“外交性质”的回答,也就是说了等于没有说。呵呵,别着急,在第二幕的结束时笔者还会给您一个更准确的答案,以满足您的好奇心。
让我们正式来认识一下Linux 吧:Linux 是一个免费,开放源代码,协作开发的类UNIX操作系统,它可以运行在大多数的硬件平台上。它提供了广泛的网络支持,同其他系统交换所必需的许多特性和大量本身拥有以及从其他系统引入的应用程序。
哦?开放源代码?对于我们技术人员来说,看到这样的单词可是非常兴奋哦。是真的吗?在我们这个已经被自私,贪婪,欲望所缠绕的都市里面还会有人把一个完整的操作系统的源代码公开?是的!这就是GNU 计划!伟大的理想计划,许多人的终生梦想!GNU 的意思是“GNU 不是UNIX”(GNU's Not Unix)的单词字头缩写。——这种递归方式的取名方法是计算机老手们的一种幽默。如果您理解不到这有什么可笑之处,也没有什么关系,这只能证明您还是属于大多数人的那一类。
化两分钟时间来认识一下GNU 计划吧,虽然它在我们这个国度似乎根本没有生存的空间!GNU 是自由软件基金会(Free Software Foundation)的一个工程。该工程始于1984年,目标是创建一种免费的,类似于UNIX的操作系统。多年以后,他们编写出许多GNU 工具,这些工具被许多商业UNIX供应商广泛使用,当然,系统管理员也使用这些工具来完成任务。Linus Torvalds的Linux 内核最终使GNU的梦想(创建完全免费的,类似于UNIX的操作系统)变成了现实!
当然,就像有上帝就会有撒旦一样,这个世界上总有人喜欢黑暗,他们享受着GNU 所带来的好处,但是他们自己本身却不肯(准确的说是不敢)实施GNU 计划,这样的人就存在于我们这个国度!而且如今还生存的非常“成功”。语所何指,就请读者诸君自己去琢磨了。
现在笔者可以向您来解释本场的标题“柔道的黑腰带”的含义了。回想一下DOS 吧,还记得这个操作系统吗?笔者是在1993年认识这个操作系统的。现在想想,大陆的资讯和教育的确落后,那个时候Windows 3.1 操作系统也已经投放市场一年多了,而我们还刚刚认识Dos ,不过这是我们的国情所致,可以理解和谅解。让笔者印象最深的就是当时的Dos+WPS 让中国多少人多了就业的机会!还有风靡数十年的“五笔字型”,以至于让很多人产生这样的一种错觉:学电脑就是学打字。似乎在WPS 之前还有一种很流行的编辑工具,和四通有点关系,但是限于记忆,笔者在这里已经难以回忆起来了(又懒得查资料,呵呵)。
DOS 的特色就是命令行方式操作。dir ,cd,md……这是笔者刚接触Dos 时学的3 个命令的顺序,你的呢?
亲爱的读者,这里是您需要了解的事是:在本系列文章中,我会在命令行方式上投入比较多的精力。当然,我知道很多人喜欢那些美好的事物,比如梦幻般的界面之类的东西。但是从系统管理的角度来看,命令行实际上就是规则。它总是有效的,同时也是灵活的。即使是通过一条缓慢的跳制解调器线路,它也能操纵几千公里以外地远程系统。让我们面对这样的现实吧:所有的图形都是减慢网络连接速度的杀手。
另一个原因是:漂亮的前端GUI 和图形化桌面的确不赖,它可以让一个新管理员,也可以在经过少量培训之后完成任务。但应该真正理解的是:实际上,力量是来自于表层下(即友好的菜单和图形化界面之下)所发生的事情!
学会运用命令行就像类似于获得了柔道中的黑腰带或者说获得了急救证书。但是这并不是说在遇到障碍(或对手)时突然拥有了解决方法,而是说将拥有自信和知识,这样就可以保护自己,或是在有紧急情况发生时加以处理。记住吧:命令行是强大的!可随时使用!
当然,这并不是说我们不要那些图形化的东西,毕竟漂亮的东西人人喜欢,不是吗?尤其是当您面对那些胆小的用户的时候,把舒服的图形化工具放在他的面前是再好也不过的了。同样的,这些用户经常做的一件事情就是喜欢把梦幻般的窗口界面看成是对操作系统性能的一种测试。(“我要打魔兽争霸或者是打CS”)出于这方面的考虑,笔者也将介绍图形化方式的操作。
但是笔者是一个诚实的人,可不想隐瞒什么事实。还是要告诉大家命令行操作是第一位,GUI 是第二位。毕竟,许多GUI 接口实际上只是命令行漂亮的前端或者说是包装而已罢了。而且对于经验丰富的系统管理员来说,他们会发现GUI工具很难提供全部的可选参数。而要想提供完备的参数的话,一般又会使GUI 操作界面变得与其对应的命令行程序同样复杂。本来GUI 的设计就是要简化操作。因此有经验的用户基本都回返回到命令行灵活的能力上面去。
好了,笔者可不想在这里引起一场争论,毕竟无论是命令行方式还是GUI 方式,它们共同的目的就是为了完成工作罢了。每一种都有它各自的优点和缺点。
再让我们回到DOS 的回忆中吧。是的,笔者承认在初次接触Linux 的时候,的确让笔者遥想到1993年学DOS 时的情景。而今,现在,笔者再次回忆起DOS ,并将和大家一起通过DOS 来认识Linux 的命令行操作方式,却是一转眼已是十年了。时间过得可真是飞快啊……
第二幕 进入 Linux 的世界吧
第 2 场命令行的开始
如果您认为自己已经足够了解Linux 的基本命令的话,已经觉得没有必要再谈论这些日常使用的命令,您可以完全不看这一场。毕竟,笔者的文章不是“矩阵革命”,非看不可。^_^ 当然,那些希望了解Linux 的读者可能仍然希望回顾一下这些内容。毕竟,万一错过了某些内容呢?要知道,在系统管理员的世界里面,有些“错过”就是意味着“过错”!(其实在人生的长河里,又何尝不是这样呢?错过了,就意味着失去。时过境迁,一切都难寻旧梦。而所谓弥补,常常是一厢情愿的强求。)笔者仍将延续一个“不良”习惯:从基本的内容开始介绍,那么会深入到何种程度呢?那就要视情况而定了。
本场要讨论的内容都是一些最基本的命令,他们将贯穿本系列文章的全部,也将会和读者您一起度过使用Linux 的美妙时光。笔者希望让您能够知道这些命令是何等的强大与灵活,也希望您能在学习了这些基本命令之后,能够继续去探索这些命令其它“隐秘”的功能。轻微的探索渴望回向您揭开日常命令的真正潜力!因为在Linux 的环境下,命令行永远是系统管理员生活中一种永恒的需要!
提到命令行,就意味着我们要接触shell.现在我们先不要管shell 来自何方,又将走向哪里。我们现在只要知道shell 能够解释我们输入的命令即可。在您的脑海里面还有没有DOS 的痕迹?如果有的话,当您看到shell 的时候,是不是也能像笔者一样遥想起过去的光景?是的,您可以把shell 看成当初的DOS 提示符。(如果您忘记了DOS 提示符的样子,也没有关系。在您的Windows 系统里面,点击“开始”,然后点击“运行”,在打开一栏里面输入“cmd ”,ok,DOS 重现了。当然,严格的说在Windows 2000以后的操作系统里面已经不能称为DOS 了,而应该叫做“命令控制台”,增强了许多了DOS 命令,您将在接下来会看到的。其实shell 更像是DOS 时代的command.com 程序。)
shell 有很多种,我们经常用的就是BASH shell(Bourne Again)。注意这个Again 单词,聪明的读者如您一定已经猜到在这个shell 之前应该还有一个shell,哈哈,您猜对了!再让我们来回顾一下历史吧:第一个真正的 Unix shell ——“sh”,亦称为‘Bourne shell’,诞生于 1975 年,作者是 Steve Bourne .很快,出现了其他 shell,如基于原始‘Bourne shell’的“ksh ”、“zsh ”,后者常用作专属 Unix 系统中的标准 shell;也有一些从 C语言中衍生出来的 shell ,如“csh ”或“tcsh”。