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