新聞中心
shell是一個抽象概念,shell的一切操作都在計算機內(nèi)部,負責處理人機交互,執(zhí)行腳本等,是操作系統(tǒng)能正常運行的重要組成部分bash,ash,zsh,tcsh等是shell這個抽象概念的一種具體的實現(xiàn),都是一個程序,都能生成一個進程對象。

bash
首先,我們回顧一下最為熟悉的一個。 GNU Bash,又名 Bourne Again Shell,它是我這些年使用過的眾多 Linux 發(fā)行版的默認選擇。它最初發(fā)布于 1989 年,并且輕松成長為 Linux 世界中使用最廣泛的 shell,甚至常見于其他一些類 Unix 系統(tǒng)當中。
Bash 是一個廣受贊譽的 shell,當你通過互聯(lián)網(wǎng)尋找各種事情解決方法所需的文檔時,總能夠無一例外的發(fā)現(xiàn)這些文檔都默認你使用的是 bash shell。但 bash 也有一些缺點存在,如果你寫過 Bash 腳本就會發(fā)現(xiàn)我們寫的代碼總是得比真正所需要的多那么幾行。這并不是說有什么事情是它做不到的,而是說它讀寫起來并不總是那么直觀,至少是不夠優(yōu)雅。
如上所述,基于其巨大的安裝量,并且考慮到各類專業(yè)和非專業(yè)系統(tǒng)管理員已經(jīng)適應了它的使用方式和獨特之處,至少在將來一段時間內(nèi),bash 或許會一直存在。
ksh
KornShell,或許你對這個名字并不熟悉,但是你一定知道它的調(diào)用命令 ksh。這個替代性的 shell 于 80 年代起源于貝爾實驗室,由 David Korn 所寫。雖然最初是一個專有軟件,但是后期版本是在 Eclipse Public 許可下發(fā)布的。
ksh 的擁躉們列出了他們覺得其優(yōu)越的諸多理由,包括更好的循環(huán)語法,清晰的管道退出代碼,處理重復命令和關聯(lián)數(shù)組的更簡單的方式。它能夠模擬 vi 和 emacs 的許多行為,所以如果你是一個重度文本編輯器患者,它值得你一試。最后,我發(fā)現(xiàn)它雖然在高級腳本方面擁有不同的體驗,但在基本輸入方面與 bash 如出一轍。
tcsh
tcsh 衍生于 csh(Berkely Unix C shell),并且可以追溯到早期的 Unix 和計算機時代開始。
tcsh 最大的賣點在于它的腳本語言,對于熟悉 C 語言編程的人來說,看起來會非常親切。tcsh 的腳本編寫有人喜歡,有人憎惡。但是它也有其他的技術特色,包括可以為 aliases 添加參數(shù),各種可能迎合你偏好的默認行為,包括 tab 自動完成和將 tab 完成的工作記錄下來以備后查。
tcsh 以 BSD 許可發(fā)布。
zsh
zsh 是另外一個與 bash 和 ksh 有著相似之處的 shell。誕生于 90 年代初,zsh 支持眾多有用的新技術,包括拼寫糾正、主題化、可命名的目錄快捷鍵,在多個終端中共享同一個命令歷史信息和各種相對于原來的 bash 的輕微調(diào)整。
雖然部分需要遵照 GPL 許可,但 zsh 的代碼和二進制文件可以在一個類似 MIT 許可證的許可下進行分發(fā); 你可以在 actual license 中查看細節(jié)。
fish
之前我訪問了 fish 的主頁,當看到 “好了,這是一個為 90 后而生的命令行 shell” 這條略帶調(diào)侃的介紹時(fish 完成于 2005 年),我就意識到我會愛上這個交互友好的 shell 的。
fish 的作者提供了若干切換過來的理由,這些理由有點小幽默并且能戳中笑點,不過還真是那么回事。這些特性包括自動建議(“注意, Netscape Navigator 4.0 來了”,LCTT 譯注:NN4 是一個重要版本。),支持“驚人”的 256 色 VGA 調(diào)色,不過也有真正有用的特性,包括根據(jù)你機器上的 man 頁面自動補全命令,清除腳本和基于 web 界面的配置方式。
fish 的許可主要基于 GPLv2,但有些部分是在其他許可下的。你可以查看資源庫來了解完整信息。
網(wǎng)站標題:Linux系統(tǒng)中最受歡迎的命令行Shell
地址分享:http://m.fisionsoft.com.cn/article/cohdohg.html


咨詢
建站咨詢
