Shell也叫做命令行界面,它是*nix操作系統下用戶和計算機的交互界面。Shell這個詞是指操作系統中提供訪問內核服務的程序。
這篇文章向大家介紹Shell一些非廣為人知、但卻實用有趣的知識,權當品嘗shell主食后的甜點吧。
科普 先科普幾個你可能不知道的事實:
Shell幾乎是和Unix操作系統一起誕生,第一個Unix Shell是肯·湯普遜(Ken Thompson)以Multics上的Shell為模范在1971年改寫而成,并命名Thompson sh。即便是后來流行的bash(shell的一種變體),它的年齡實際上比當前流行的所有的Linux kernel都大,可謂在Linux系統上是先有Shell再有Kernel。 當前絕大部分*nix和MacOS操作系統里的默認的Shell都是bash,bash由Brian Fox在1987年創造,全稱Bourne Again shell ( bash)。 你或許聽說除了bash之外,還有Bourne shell ( sh),Korn shell ( ksh),C shell (包括 csh and tcsh),但是你知道這個星球上一共存在著大約50多種不同的shell么?想了解他們,請參考 http://www.freebsd.org/ports/shells.html。 每個月tiobe上都會給一個編程語言的排名,來顯示各種語言的流行度。排名指數綜合了全球范圍內使用該語言的工程師人數、教學的課程數和第三方供應商數。截止至2012年11月份,tiobe公布的編程語言排行榜里,bash的指數是0.56%排名22位。如果算上它旗下的awk 0.21%和tcl 0.146%,大概就能排到14名。注意這里還不包括bash的同源的兄弟姐妹csh、ksh等,算上它們,shell家族有望接近前十。值得一提的是一直以來shell的排名就很穩定,不像某些“暴發戶”語言,比如objective-c,這些語言的流行完全是因為當前Apple系的崛起,但這種熱潮極有可能來得快去得更快。


5.全球最大的源代碼倉庫Github里,shell相關的項目數占到了8%,躋身前5和Java相當,可見在實戰工程里,shell可謂寶刀不老。圖片來源,參見這里

一些強大的命令 再分享一些可能你不知道的shell用法和腳本,簡單&強大!
在閱讀以下部分前,強烈建議讀者打開一個shell實驗,這些都不是shell教科書里的大路貨哦:)
1、!$<!$是一個特殊的環境變量,它代表了上一個命令的最后一個字符串。如:你可能會這樣:
$mkdir mydir
$mv mydir yourdir
$cd yourdir
可以改成:
$mkdir mydir
$mv !$ yourdir
$cd !$
2、sudo !!以root的身份執行上一條命令 。