图:简单高效的Shell
在本文中,我将反复提到shell,最常见的shell有bash和Zsh,我使用的是后者,而且我强烈推荐。
纯文本的力量
你可能在想:为什么要使用基于文本的Shell?
基于文本的Shell下有丰富的应用程序。即便没有完全满足需要的工具,也可以很轻松地开发一个shell工具,无需设计最上层的GUI。
可以为最终用户提供许多可选的功能,让最终用户完全按照自己的意愿选择。你不可能在一个图形界面中塞入20个按钮吧?但是,基于命令行的应用程序可以有20个选项。
Unix的思想允许你使用特定的工具来满足特定的需求。通过管道将一种工具的输出作为输入传递到另一种工具,这可以提供无穷无尽的可能性。
你可以利用Shell非常轻松地自动化常见的乏味任务。自动化是提高生产力并节省精力的关键。
通常命令行的执行速度非常快。没有沉重的图形界面,也没有3D菜单,来拖慢计算机的速度。
命令行不会占用大量内存。相比起Chrome来说,命令行可以节省80%的RAM。
“命令行工具比Hadoop集群快235倍。”
—— Adam Drake
我鼓励你尽可能使用Shell。虽然刚开始的时候,你可能会不适应,但Shell可以让你受益良多。
CLI应用程序之上的图形界面又如何呢?在我看来,它有严重的缺点:
隐藏了许多可以通过CLI轻松使用的功能。
无法解决(甚至无法理解)来自CLI层的任何错误。
遇到以下情况,你会感到很困惑:
在没有图形界面的情况下,在远程服务器上使用这类工具。
向经验不足的开发人员介绍该工具的实际工作原理。你可以解释GUI,但不能解释应用程序本身,尤其是当GUI和CLI采用了不同技术的时候,而且不幸的是这种情况非常普遍。
我有一段使用sourcetree的亲身经历,sourcetree是git的图形界面。当时我在和一名初级开发人员一起工作,而他不懂得git是如何工作的。每当出现问题时,他都搞不明白GUI在后台调用了什么命令。这比直接在Shell使用CLI git更令人沮丧。
无鼠标方式使用Shell的时候,你主要依赖键盘。可能你会觉得有点吃惊,但我会尽量避免使用鼠标。因为这是提高效率的关键之一:双手放在键盘上可以加快你的速度,而且更重要的是,可以让你更加快乐。
以下是无鼠标方式的一些优点:
将手从键盘移到鼠标很累。试试看不用移动手,你就明白了。
双手一直放在键盘上会让你倍感轻松。你无需在敲键盘和移动光标之间不断切换。
即便只是编写购物清单,也有一种黑客的感觉!很酷,是不是?