Linux 中的 shell 有很多类型,其中最常用的几种是:Bourne shell (sh)、C shell (csh) 和 Korn shell (ksh),它们各有优缺点,用户则萝卜青菜,各有所爱。

Bourne shell 是 UNIX 最初使用的 shell,并且在每种 UNIX 上都可以使用,虽然在编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种 shell。

说到底,shell这个物种,不仅要功能强大,而且还需要容易上手,毕竟shell是“人-机”交互的接口,不同于其他的编程语言,它们侧重于后台批处理任务,与人的交互不是首要考虑的问题。而shell要做到“通机器,懂人性”,这样才能有更多的受众人群。

后来,创始人 Bourne 决定赋予 Bourne shell 新的生命,使其更适合于交互式使用,因此开创了新的项目并命名为 “Bourne again shell”,简称 “Bash”,也有好事者称 Bash 为 “重生shell(born again shell)”。

Bash 是 Bourne shell 的扩展,与 Bourne shell 完全向后兼容,并且在Bourne shell 的基础上增加和增强了很多特性。可以提供如命令补全、命令编辑和命令历史表等功能,它还包含了很多 C shell 和 Korn shell 中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。所以,Linux 操作系统缺省的 shell 是 Bash。

要想赢得用户占领市场就得有抓住人们的内心需求,得民心者得天下,这个道理在shell上如此,在python shell领域同样又上演了一次,python自带的shell功能不强大,交互性不强,从而给了ipython shell上位的机会,后来ipython shell越做越大,直至发展成ipython notebooks,它的另外一个大名是“Jupyter Notebooks”。这可是一个大名鼎鼎的科学利器。如果说有什么每个数据科学家都应该使用或必须了解的工具,那非Jupyter Notebooks莫属了。

后记:

除了bash以外,国外的大神都喜欢用自己的名字来给软件起名,虽然这种做法有点自负,易招人怨,但是也体现了自信,甚至有点霸气侧漏。例如,下面的这些大神的名字都与软件绑定到一起了:

(1)Linux 因其发明者 Linus Torvalds 的名字命名的;
(2)Debian Linux 是其创始人 Ian Murdock 和 他当时的女友 Debra Lynn 的名字的混成词;
(3)awk 代表着 Aho、Weinberger、Kernighan三位作者;

标签: none

添加新评论