shell的重生歷史:從sh到bash

shell 門派之爭

Linux 中的 shell 有很多類型,其中最常用的幾種是:Bourne shell (sh)、C shell (csh) 和 Korn shell (ksh),它們各有優缺點,用戶則蘿蔔青菜,各有所愛。

Bourne shell 出師不利

shell的重生歷史:從sh到bash

Bash:Bourne again shell

Bourne shell 是 Unix 最初使用的 shell,並且在每種 Unix 上都可以使用,雖然它在編程方面相當優秀,但在處理與用戶的交互方面做得不如其他幾種shell。

說到底,shell這個物種,不僅要功能強大,而且還需要容易上手,畢竟shell是“人---機”交互的接口,不同於其他的編程語言,它們側重於後臺批處理任務,與人的交互不是首要考慮的問題。而shell要做到“通機器,懂人性”,這樣才能有更多的受眾人群。

sh的重生之路

後來,創始人 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三位作者;

備註:本文源自《趣談shell》,用非線性思維學習shell,讓天下沒有難學的shell。


分享到:


相關文章: