面向Linux的五大開(kāi)源外殼,哪個(gè)是你從沒(méi)用過(guò)的呢
譯文Linux用戶分為兩大類:謹(jǐn)慎的和大膽的。***類用戶找到喜歡的東西后就堅(jiān)持使用,不會(huì)朝三暮四。他們往往喜歡發(fā)行版的默認(rèn)值。如果他們鐘情于某個(gè)文本編輯器,這肯定是他們先熟練掌握的那個(gè)。另一類是幾乎條件反射般地想嘗試剛出現(xiàn)的新選項(xiàng)的用戶。他們?cè)囘^(guò)所能找到的不少窗口管理器、幾十個(gè)發(fā)行版以及幾乎每一個(gè)新的桌面窗口組件。
作為有15年使用資歷的Linux用戶(無(wú)論服務(wù)器端還是桌面端),我絕對(duì)屬于***類用戶,而不是第二類。我往往不太喜歡新奇的東西,這意味著我通常能找到全面的說(shuō)明文檔以及幾乎任何用例的例子。如果我使用另類的東西,會(huì)認(rèn)真研究要不要改用,而且常常取決于我信賴的人地竭力說(shuō)服。
但是,這并不是說(shuō)我不喜歡有時(shí)候嘗試,看看我缺少什么。所以最近,在不假思索地使用多年的bash外殼后,我決定試一試另外四種外殼:ksh、tcsh、zsh和fish。這四種外殼都很容易從我Fedora中的默認(rèn)軟件庫(kù)來(lái)安裝,它們可能已經(jīng)針對(duì)你選擇的發(fā)行版進(jìn)行了包裝。
下面介紹了每一種外殼,以及為什么應(yīng)選擇它作為你的下一個(gè)Linux命令行解釋器。
1.bash
首先,我們不妨看一下熟悉的外殼。GNU Bash(Bourne Again Shell)是這些年來(lái)我用過(guò)的幾乎每個(gè)Linux發(fā)行版的默認(rèn)外殼。bash***發(fā)布是在1989年,后來(lái)輕松成為了Linux界使用最廣泛的外殼,還經(jīng)常出現(xiàn)在其他類似Unix的操作系統(tǒng)中。
bash是一種備受推崇的外殼;如果你在網(wǎng)上尋找關(guān)于如何執(zhí)行各種操作的說(shuō)明文檔,幾乎免不了會(huì)找到假設(shè)你在使用bash外殼的操作說(shuō)明。但是bash也有一些缺點(diǎn),只要寫(xiě)過(guò)不止幾行腳本的人都可以證明這一點(diǎn)。倒不是說(shuō)你無(wú)法執(zhí)行某個(gè)操作,而是閱讀和編寫(xiě)起來(lái)并不總是來(lái)得特別直觀(或者至少優(yōu)雅)。想了解幾個(gè)例子,只要看看這份常見(jiàn)bash陷阱列表。
話雖如此,bash可能早已得到了人們的接受,至少在不遠(yuǎn)的將來(lái)是這樣,它有龐大的用戶群,還有眾多普通和專業(yè)的系統(tǒng)管理員已經(jīng)習(xí)慣于其用法和小毛病。bash項(xiàng)目使用了GPLv3許可證。
2.ksh
KornShell(簡(jiǎn)稱ksh)是一種替代的外殼,上世紀(jì)80年代從貝爾實(shí)驗(yàn)室發(fā)展而來(lái),由David Korn編寫(xiě)。雖然起初是專有軟件,但后來(lái)的版本采用Eclipse公共許可證發(fā)布。
ksh的支持者列出了他們認(rèn)為它很出色的許多方面,包括擁有更好的循環(huán)語(yǔ)法、來(lái)自管道的更整潔的退出代碼,更容易重復(fù)命令的方法以及關(guān)聯(lián)陣列。它還能夠模擬vi和emacs的許多行為,所以如果你非常偏愛(ài)文本編輯器,它可能值得一試。總的來(lái)說(shuō),我覺(jué)得它在基本輸入方面非常類似bash,不過(guò)針對(duì)高級(jí)腳本,它肯定是不一樣的體驗(yàn)。
3.tcsh
tcsh是csh即Berkely Unix C外殼的衍生版,它具有非常悠久的歷史,可以追溯到Unix和計(jì)算機(jī)本身的早期階段。
tcsh的一大賣(mài)點(diǎn)是其腳本語(yǔ)言,這種語(yǔ)言對(duì)用C編程的人來(lái)說(shuō)看起來(lái)非常熟悉。有些人喜歡tcsh的腳本,而有些人討厭tcsh的腳本。不過(guò)它還有其他功能,包括給別名添加變量以及可能符合你偏好的各種默認(rèn)設(shè)置,包括帶標(biāo)簽的自動(dòng)完成和歷史標(biāo)簽完成的工作方式。
你可以找到采用BSD許可證的tcsh。
4.zsh
zsh是另一種與bash和ksh都有相似之處的外殼。zsh起源于上世紀(jì)90年代初,它有許多實(shí)用功能,包括拼寫(xiě)糾正、主題、可命名目錄快捷方式、跨多個(gè)終端共享命令歷史,以及對(duì)早期的Bourne外殼所作的其他眾多細(xì)微改進(jìn)。
zsh的代碼和二進(jìn)制文件可使用類似MIT許可證的許可證來(lái)發(fā)行,不過(guò)有些部分使用GPL許可證。查看實(shí)際許可證,了解詳情。
5.fish
我知道,如果我訪問(wèn)官方網(wǎng)站,看到它用半開(kāi)玩笑的話來(lái)描述:“終于有了一種為90年代而生的命令行外殼”――fish是在2005年編寫(xiě)的,我會(huì)喜歡互動(dòng)性良好的外殼fish。
fish的開(kāi)發(fā)人員給出了改用fish的諸多理由,處處用調(diào)侃的語(yǔ)氣來(lái)笑話并不是完全實(shí)至名歸的外殼。功能包括:自動(dòng)建議、支持VGA“驚人”的256色調(diào)色板,不過(guò)也有一些確實(shí)很有幫助的功能,包括根據(jù)你機(jī)器上的參考手冊(cè)頁(yè)完成命令、干凈的腳本和基于Web的配置。
fish主要采用GPL版本2許可證,但是有些部分采用了其他許可證;查看軟件庫(kù),即可了解完整信息。
原文標(biāo)題:Top 5 open source command shells for Linux,作者:Jason Baker
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】