专家专访:Linux命令行的点点滴滴

虽然很多系统管理员对于Linux操作系统已经很熟悉了,但是他们可能不会在熟悉的图形用户界面(GUI)之外的领域冒险。而William E. Shotts Jr.认为这一行为是错误的,他是《Linux命令行:完整介绍》一书的作者。

作为一名超过15年使用年龄的Linux热心用户,Shotts希望更多的用户发现命令行的潜在价值,而不只是局限在GUI下方。在这一次的专家问答中,Shotts解释说,在命令行中敲击几次键盘将会进入Linux的高级功能,让管理员可以在更少的时间内更有效地完成复杂的任务。

记者:那么对于那些对命令行还不熟悉的人来说,什么时候才该使用它呢?

William E. Shotts Jr.:一般来说,命令行是一门很深的学问。一般的Linux安装将拥有一千或者更多个用户可以运用的命令行程序。另外,shell有大量的功能,这个程序从用户那里接收命令。要学会所有这些有些难度,尤其是对于那些外来的Windows用户来说。

我写这本书的目的就是解决这个问题。经过调查在线学习资源的可用性,不管是设想的先备知识数量还是以我叫做“系统”方式对待材料的书籍或网站数量都让我深受打击。我的意思是说这本书的编写是以其性能的列表为基础。以这种方式编写的文件只涵盖一个系统奖参与钱的所有程序性能,而不是以一个用户真实体验它的方式为基础。

bash手动页可能是这一类的最极端例子。虽然它以有逻辑和有组织的方式涵盖了shell的每个特性,它对于一个新用户来说就是完全不知所云。我通过按照先备知识尝试显现新用户带到桌面上的内容并且基于此以一小串步骤提高来着手处理这个问题,一次显示一个特性并解释它和大局的关系,有时候是与起源和历史的关系。

另一个问题是完整性。其它的书和资源往往只关注于一个程序或一组程序。我想要告诉用户如何在命令行中“生存”,讲解关键特性工作的方式并阐释你可以用它执行的多种多样的任务。

如果我说命令行的学习很容易,那我一定是在撒谎。它并不容易。命令行界面的有些部分极其晦涩。但是学习它所花费的精力会是一段美好时光。它让Linux环境更加强大实用。学习命令行的另一个好处:它是一个持久的技巧。不像其它很多其它几个月就发生变化的计算机技巧,命令行具有持久力。很可能你今天学的内容10年后仍然是相关的。

记者:在当今世界,似乎更强调流线型的GUI。那么使用命令行的好处是什么呢?

William E. Shotts Jr.:有句老话这么说,“图形用户界面让简单的任务容易执行。命令行界面则让艰难的任务可能执行。”我对GUI并没有异议。我这本书是使用雷鸟邮件客户端(Mozilla Thunderbird)在Ubuntu桌面上编写的。

但是这产生了一个GUI方面的问题。你会受限于设计者的想像。如果设计者没有预见到你正设法解决的问题,那么很有可能这个图形程序可能会不适合你。以和Linux行事相反的方式完成它。Linux作为一个类Unix的操作系统,它沿袭了Unix的理念:你会得到一个小工具的集锦,你可以用有趣且实用的方式连接它们来解决你的问题。用命令行解决问题通常不会很轻松,但是通常来说,这至少是可行的。

有时候你还会遇到的另一个必须处理的问题就是问题规模。我曾经开玩笑说,当今的计算机似乎不是由电力提供能源了,看上去它们是由鼠标的“晃动”行为(所有的指向和点击)供能。GUI程序通常擅长于执行小任务,比如从一个位置复制一个文件到另一个位置。但是如果说你的问题更大,比如“复制属于特定用户的所有HTML文件,但是更新该文件到另一个文件夹,哦,并且单独压缩每个文件”。你可能会愿意用GUI来处理少量的文件,但是如果有上百个或都上千个文件又怎么办呢?这一类问题就是命令行真正擅长解决的。

记者:对于那些承担管理Linux服务器任务的人来说,有没有一些被忽略的强大命令呢?

William E. Shotts Jr.:在我的书中,我设法找到Unix“可移植性”论证。这个论点是说,每个脚本都应该能在任意类Unix系统上运行。这已经让一些管理员编写所有内容就像仍然仿佛仍在90年初使用shell一样,而不是完全利用bash的完整功能,bash是大部分Linux发行版中可见的默认shell。我认为很多Linux命令行用户,甚至是经验丰富的用户也不知道shell支持数组,可以基于正则表达式执行测试,并且可以完成多种整数数学操作。

记者:在网络化的商业环境中,Linux相比于其它操作系统有什么优势?

William E. Shotts Jr.:Linux的技术优势众所周知,已经成为谈资很多年了。

如Linux和免费开源软件(FOSS)倡导的,我是因为哲学原因受到Linux的吸引。这也是我早期接触计算机的结果。我在70年代中期第一次进行计算机工作,当时我还是雪城大学设计系的学生。我在穿孔卡上写程序,让一台IBM System/370大型机在绘图仪上产生图画。大学毕业后,我拥有了一台微型计算机,然后开始在家里做相同的事情,只是不需要穿孔卡了。在我所成长的时代,世界上所有的计算机都由大型企业和政府控制,所以“个人”计算机的发展确实非常了不起。当然,现在计算机随处可见,我们把这看成是理所当然的。

但是对我来说,拥有计算机的一大好处是能够控制它。你可以编写你自己的软件,如果你愿意,且你的计算机没有秘密或者不可告人的安排。如果你留意,那么你可以了解它的一切。这样的自由对于个人是实用的,对于企业也是有益的。如果你想要对你的命运有所控制,至少是在你的计算机工作的领域,那么你会想要使用一款你可以控制的操作系统,比如Linux。

记者:商务环境中基于Linux的系统有什么好处?

William E. Shotts Jr.:Linux中你能获得的控制权带来了很多有力的优势。比如,你可以编译定制内核,按照你的特定性能需要调节它们。你还可以在多个厂商中自由选择支持来源,或者如果你有足够的能力,你也可以内部完成。如果某个具体的软件不合你意,你也可以更改它或都请别人来做这项工作。

自由选择权还在成本上。在Linux世界中,用户不只是被动消费者而是参与者,而参与者常常涉及到时间和精力。

记者:在较新版本的Linux中,哪些新命令可能还没有出现在一般管理员的工作中?

William E. Shotts Jr.:这个问题很难回答。一直都有新东西出现。如果你经常去Sourceforge逛逛,你会看到每天都会产生很多关于现在程序的新软件和更新。

除了正在开发的新程序,我希望用户学习并探索他们已经熟悉的程序。正如我之前谈到的bash,很多你已经使用过的普通程序可能会有新的或者还没被发现的功能,聪明的管理员会利用它们来解决日常的任务。

  网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)