[shell]:為什么要學(xué)習(xí)shell

shell:what? why?how?

編程思想

shell編程遵從UNIX哲學(xué):把復(fù)雜問題分解成簡單的小問題,然后再把各個部分功能組合起來解決復(fù)雜問題站叼。

在學(xué)習(xí)任何一門知識嘲碱,我們都需要思考清楚

  • Why:為什么隘世? 即原因揽碘。

  • What:是什么浦徊? 即本質(zhì)。

  • How: 如何做掀宋? 即方法深纲。

    大Why羞反,小What,和一帶而過的How囤萤。結(jié)論先行。

好了是趴,那我們開始思考為什么要學(xué)shell,shell到底是什么涛舍,和到底如何去學(xué)shell呢!

為什么要用shell

對于我們自己唆途,學(xué)習(xí)shell是為了自動化富雅,而自動化則是為了提高工作效率,提高產(chǎn)出肛搬,更進一步則是提高公司的收入 没佑。

Shell腳本語言是實現(xiàn)Linux/UNIX系統(tǒng)管理及自動化運維所必備的重要工具,Linux/UNIX系統(tǒng)的底層及基礎(chǔ)應(yīng)用軟件的核心大都涉及Shell腳本的內(nèi)容温赔。每一個合格的Linux系統(tǒng)管理員或運維工程師蛤奢,都需要能夠熟練地編寫Shell腳本語言,并能夠閱讀系統(tǒng)及各類軟件附帶的Shell腳本內(nèi)容陶贼。只有這樣才能提升運維人員的工作效率啤贩,適應(yīng)日益復(fù)雜的工作環(huán)境,減少不必要的重復(fù)工作拜秧,從而為個人的職場發(fā)展奠定較好的基礎(chǔ)痹屹。

目前Linux系統(tǒng)下最流行的運維自動化語言就是shell和Python了。

兩者之間枉氮,shell幾乎是IT企業(yè)必須使用的運維自動化編程語言志衍,特別是在運維工作中的服務(wù)監(jiān)控、業(yè)務(wù)快速部署聊替、服務(wù)啟動停止楼肪、數(shù)據(jù)備份及處理、日制分析等環(huán)節(jié)里佃牛,shell是不可缺的淹辞。當(dāng)然Python也是一門更適合處理復(fù)雜的業(yè)務(wù)邏輯,以及開發(fā)復(fù)雜的運維軟件工具俘侠,實現(xiàn)通過web訪問等象缀。Shell是一個命令解釋器,解釋執(zhí)行用戶所輸入的命令和程序爷速。一輸入命令央星,就立即回應(yīng)的交互的對話方式。

其實PHP惫东、Python 都屬于高級編程語言莉给,他們也可以用來做腳本編程毙石,因為他們都用對應(yīng)的執(zhí)行腳本的解析器。

主要考慮以下幾個原因

  • 環(huán)境兼容性颓遏,Win7專業(yè)版和旗艦版默認(rèn)安裝PowerShell徐矩,標(biāo)準(zhǔn)版和家庭版中就沒有安裝的,其他主流的操作系統(tǒng)都預(yù)制了Shell解釋器叁幢,所以使用sh滤灯、bash編寫,提供給其他人使用是非常方便的曼玩,但是PHP鳞骤、Python 等等需要安裝相應(yīng)的環(huán)境
  • 服務(wù)器Linux使用的是sh、bash黍判;比如做一下自動備份豫尽,自動部署環(huán)境,服務(wù)器之間數(shù)據(jù)同步... ...對于日常反復(fù)性的處理工作避免了使用那些結(jié)構(gòu)過于復(fù)雜的程序語言顷帖。

什么時候不適合使用shell

  • 資源緊張的項目美旧,特別是那些速度是重要因素的地方(排序,散序贬墩,等等)

  • 程序要進行很復(fù)雜的數(shù)學(xué)計算陈症,特別是浮點計算,任意精度的計算震糖,或者是復(fù)數(shù)計算(應(yīng)該用C++或是FORTRAN代替)

  • 要求交叉編譯平臺的可移植性(使用C或者是Java代替)

  • 需要結(jié)構(gòu)化編程的復(fù)雜應(yīng)用(需要變量類型檢查和函數(shù)原型等等)

  • 對于影響系統(tǒng)全局性的關(guān)鍵任務(wù)應(yīng)用录肯。

  • 安全非常重要。你必須保證系統(tǒng)完整性和抵抗入侵吊说,攻擊和惡意破壞论咏。

  • 項目由連串的依賴的各個部分組成。

  • 多種文件操作要求(Bash被限制成文件順序存取颁井,并且是以相當(dāng)笨拙厅贪,效率低下的逐行的存取方式)

  • 需要良好的多維數(shù)組支持。

  • 需要類似鏈表或樹這樣的數(shù)據(jù)結(jié)構(gòu)雅宾。

  • 需要產(chǎn)生或操作圖象或圖形用戶界面养涮。

  • 需要直接存取系統(tǒng)硬件。

  • 需要端口號或是socket I/O眉抬。

  • 需要使用可重用的函數(shù)庫或接口贯吓。

  • 所有的私有的不開源的應(yīng)用程序(Shell腳本的源代碼是直接可讀,能被所有人看到的)

如果你需要有上面的任意一種應(yīng)用蜀变,請考慮其他的更強大的腳本語言――Perl,Tcl,Python,Ruby匹颤,或者可能是其他更高級的編譯型語言嗦明,例如C更米,C++或者是Java。盡管如此们陆,使用Shell腳本來構(gòu)造應(yīng)用原型仍然是一個有用的開發(fā)步驟。

我們將會使用Bash,它是 "Bourne-Again shell" 的首字母縮寫情屹,并且是Setphen Bourne寫的經(jīng)典的Bourne shell的同義詞坪仇。Bash已經(jīng)變成了所有令人喜歡的UNIX上shell編程 事實的上的 這本書的大多數(shù)腳本技術(shù)能很好的應(yīng)用到其他的Shell當(dāng)中,比如說Korn Shell垃你,Bash借用了它的一些特性烟很, [2] 還有C Shell和他的不同之處。(注意:C shell編程不是交付一定的內(nèi)在問題蜡镶,這點已由Tom Christiansen在1993年10月在 Usenet post 被指出了)

? --摘自《第一章:為什么要有Shell編程?》

什么是shell

我們都知道在計算機中,計算機只能識別ASCII恤筛,即二進制官还,而程序中的編程語言或者用戶輸入的信息等,并不是ASCII,計算機根本就不能直接讀懂毒坛。所以這時候就需要一個“翻譯”望伦。shell其實就是一個“翻譯”。一個命令解釋器煎殷。shell是在操作系統(tǒng)內(nèi)核與用戶之間進行翻譯屯伞,同時也是一種功能相當(dāng)強大的編程語言

shell必須是建立在UNIX或者Linux之上才有意義豪直。所以在正式學(xué)習(xí)shell之前劣摇,我們需要掌握Linux或者UNIX知識。

shell腳本是什么弓乙?

shell腳本就是指令的集合末融。

如何來用shell

當(dāng)然是把shell的基本語法熟練掌握,實戰(zhàn)起來啦暇韧。
后續(xù)我會整理出shell學(xué)習(xí)實戰(zhàn)總結(jié)勾习。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市懈玻,隨后出現(xiàn)的幾起案子巧婶,更是在濱河造成了極大的恐慌,老刑警劉巖涂乌,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艺栈,死亡現(xiàn)場離奇詭異,居然都是意外死亡湾盒,警方通過查閱死者的電腦和手機眼滤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來历涝,“玉大人诅需,你說我怎么就攤上這事漾唉。” “怎么了堰塌?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵赵刑,是天一觀的道長。 經(jīng)常有香客問我场刑,道長般此,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任牵现,我火速辦了婚禮铐懊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瞎疼。我一直安慰自己科乎,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布贼急。 她就那樣靜靜地躺著茅茂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪太抓。 梳的紋絲不亂的頭發(fā)上空闲,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天,我揣著相機與錄音走敌,去河邊找鬼碴倾。 笑死,一個胖子當(dāng)著我的面吹牛掉丽,可吹牛的內(nèi)容都是我干的影斑。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼机打,長吁一口氣:“原來是場噩夢啊……” “哼矫户!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起残邀,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤皆辽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后芥挣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驱闷,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年空免,在試婚紗的時候發(fā)現(xiàn)自己被綠了空另。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蹋砚,死狀恐怖扼菠,靈堂內(nèi)的尸體忽然破棺而出摄杂,到底是詐尸還是另有隱情,我是刑警寧澤循榆,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布析恢,位于F島的核電站,受9級特大地震影響秧饮,放射性物質(zhì)發(fā)生泄漏映挂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一盗尸、第九天 我趴在偏房一處隱蔽的房頂上張望柑船。 院中可真熱鬧,春花似錦泼各、人聲如沸鞍时。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至专筷,卻和暖如春弱贼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背磷蛹。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工吮旅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人味咳。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓庇勃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親槽驶。 傳聞我的和親對象是個殘疾皇子责嚷,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容