作者:sxsloin 来源:Linux论坛
曾几何时,win用户抱怨,linux命令行界面不容易接触。那时代linux不是没有图形界面,但是,仅仅外表的相似就会引发长达多年的法律指控。
现在,linux仍旧在发展,桌面已经相对成熟,虽然法律问题不是完全消除,但是受到影响少多了,很多linux初级玩家可以很快上手图形的linux。即使是老鸟也不会抵制,毕竟图形界面有不错的地方。
但是,是否要抛弃命令行?初级linuxer很多将矛头指向相对图形界面缺乏的unix的时候,多少人发出疑问:为何要死守命令行?!
我们说说一个很奇怪的逻辑:图形界面人机交互好,图形界面简单。
首先来说,图形界面在某些任务方面,确实是高效而且简单的,但是,某些任务方面,图形界面是无能的。
因为,UNIX-like的操作系统是一款文本式驱动的操作系统,这是他的优点所在,即使是win,处理复杂任务的时候,图形界面也只是一个摆设。
图形界面消耗的是物理实体的空间,你的屏幕上需要复杂的处理问题的时候,图形界面要密密麻麻的列出一堆列表,而它的作用不过是基于某个命令的图形外壳,这个时候,图形界面的直观作用和命令行没有区别。而命令行遵循的是逻辑原则,当你需要处理某个任务的时候,命令和参数的位置决定了你执行的逻辑,这个时候图形界面无法做到。
也许有人说,对于图形界面的执行逻辑可以决定命令行的位置依赖性,并且可以在合适的地方增加更多的更直观的元素。
但是,问题是图形界面一旦达到这个地步,它的定制性能迅速下降。
既然计算机逻辑精髓在于排序和查找,我们就拿一个邮件日期举例。
无论邮电部门还是个人,对于邮件的处理是不可或缺的,假定(注意是假定!)你的电脑某个文件夹有10个邮件,邮件尾端一行是固定格式的信件日期,我们要找出x月x日(或者更复杂逻辑的)邮件。由于系统升级或者文件读写,我们都不可能通过文件本身日期来决定,只能通过内容了。
以下是两者比较:
图形界面最优逻辑解决办法:首先获得输入,确定文件位置,可以弹出一个文件浏览器,然后指定文件。这点来说做的不错。然后,按一个按钮,接着完成,看,多简单,虽然直观,那个按钮十分神秘,按钮是god,做到了一切。
命令行:恩,使用ls或者其他什么获得文件列表,用tail 1找到他们文件最尾端,用grep和正则表达式匹配,高兴的话可以再用cat之类的看看什么内容,如果更开心可以用编辑器编辑一下,如果觉得麻烦你把一切放在vi中解决也不错。额,看起来确实不方便。不过如果确定的话把他做成一个脚本,那么这个脚本和按钮是一样的。
但是,我们继续看:
如果格式不规范,那么图形界面将会跳出一个错误提示(如果设计的话),命令行更糟糕,如果没有设计将什么都没有。恩,下面是分水岭:如果你不放弃,并且知道有错误了,通过设计命令行也会给出错误提示,然后你可以通过其他命令的组合来解决这个任务。而图形界面你就要加入新的设计,但是...但是....你觉着这个简单么?可能你要修改源码,编译,再运行,呵呵,或者,你可以选择放弃。
我已经很仁慈了,并没有等同条件下测试,已经假定有专门的软件去完成这个功能,如果没有的话,你可以选择一个个打开那10个文件,这个时候看你运气,好的话你第一次打开并且看文件底端就获得正确日期了,如果不好的话,你应该庆幸我只说了10个。当然,你的这个软件只能用来处理这次的信件,如果其他问题,比如找其他东西,同样要面对百数量级的东西的时候,你需要另外的软件,如果你有无数类似的任务,那么你有无数的类似的软件去做。
或者,你说你并不需要,恩,也许,只不过,从原理来说,计算机不用排序和检索的话,那么计算机学院真的很轻松了。一切不过如此,软件是只是打包了任务解决方案,但是一旦打包,那么你只能解决一个问题。所以,图形界面带来了庞杂。
图形界面的优点就是这里:对于简单,固定逻辑流程的东西,它处理起来简单,直观,高效,所以非常适合作为应用软件的交互界面
但是这也是图形界面的缺点:对于复杂变化逻辑的东西,它处理能力低下,定制和改变不行
用unix-like你是在用系统,虽然软件可以解决不少问题,但是本来系统能解决的东西不需要软件!
你的高效和稳定来自于你的命令行,而图形界面无法解决这一个矛盾。
死守命令行,不是要抛弃图形界面,但是使用图形界面,无法抛弃命令行!如果想要自己的系统,那么还是好好学习命令行吧,学会UNIX-like,不是让你去学软件说明书,软件说明书可以随着厂家,开发人员,版本而变更,但是命令相对稳定的多。
谁都不愿做容易逝去的东西的幽灵。