《Linux Shell指令碼攻略(第2版)》書評
凡是以Linux作業系統作為平臺進行開發的人,對Linux Shell都不會陌生。顧名思義,Shell就是使用者跟OS打交道的介面程式,“殼”。我在Windows和Linux平臺上,都有比較長時間的開發經驗。若要進行對比的話,Windows的命令列處理功能,跟Linux的Shell系統相比,簡直是弱爆了。微軟後來推出的PowerShell有所增強,但那是基於.Net的,有額外的依賴性,已經不是純粹的薄殼程式了。
Linux的Shell有幾種實現,大部分預設的都是bash軟體。如果你想用更強大的實現,可以試試zsh(Oh My zsh),它與bash相容,擴充套件功能更加強大。市場上的圖書,絕大部分也是以bash為基準進行講述的。
不知道有多少開發者和我類似,很早就知道shell指令碼的強大功能,也能臨時抱佛腳的抓來一些程式碼片段,跌跌撞撞的完成想要的功能,但是還是更多的把它看成運維的利器,並沒有真正的花時間,專門去研究它。
前段時間因為工作需求,需要用shell完成比較複雜的功能。原本的零零碎碎的知識就不夠用了,就買來一些書籍專門看。其中這本《Linux Shell指令碼攻略》給我留下很好的印象。市場上講shell指令碼的書不少,甚至有磚頭一樣的大部頭。可這本書有比較獨到的地方。
它聚焦於常用。bash的知識還是很龐雜的。可能是因為歷史原因,shell指令碼語言的設計,坑比較多。一些設計和規定,甚至讓你感覺這是二貨程式猿的作品,明顯缺乏嚴謹的思考和技術美感,像是補丁摞補丁。這本書不講那些很少用的、犄角旮旯裡面的奇淫技巧,而是根據使用者使用環境,分了幾大環境,對這幾大環境下的常見處理任務,進行了簡明扼要的講述。Shell功能的靈活多變是出了名的,其它的你可以舉一反三嘛!
開頭,它說明了shell的概念和關聯的變數設定、函式引數,除錯操作。一下你就有了總體觀念,可以入門了。接著,它對指令碼里面最常用的處理命令進行了細緻的講述。Linux的命令是很多的,安裝好一些工具包,系統裡面有時會多達一千多個命令。這其實跟Linux/Unix的設計思想息息相關。參見《UNIX程式設計藝術》。Linux/Unix系統,推崇處理專業化、功能正交化,鼓勵小程式,通過小程式的組合,來完成各種處理功能。這帶來了非常重要的各種優點,比如耦合低,靈活度極高。但也帶來了不少麻煩:你得學習每個命令列和常用引數,知識點會比較零散,容易遺忘。這些大量的處理命令裡面,很多是“業務”相關的,只有在具體業務操作的時候才呼叫。而另外一些則不同,是通用、指令碼相關的。甚至可以說,它們是為Shell指令碼而生的,在指令碼里面使用就會如虎添翼。比如檔案搜尋find、內容過濾查詢grep、引數處理xargs,排序分割等等。
在後面,根據任務場景,本書內容分為檔案處理、文字處理、網路結合、歸檔備份、系統監控等幾大塊知識區域。基本上涵蓋了shell的常見工作任務。有了這些作為基礎,想必更復雜一些的任務,也不在話下。當然,我個人覺得,過於複雜的任務,還是交給更專業的語言、系統好了,比如Python。限於語言設計的目標和能力,shell最好還是聚焦於常用、短小精悍的任務。而這正好是這本書所能覆蓋的。大部頭圖書內容全面,可以用來深化知識點,但是要簡單快速的學習以完成工作任務,我還是推薦這本書。
相關文章
- 《Linux Shell 指令碼攻略》書評:條分縷晰,入門經典Linux指令碼
- linux shell 指令碼攻略筆記Linux指令碼筆記
- [圖靈贈書]《Linux命令列與shell指令碼程式設計大全(第2版)》點評贈書圖靈Linux命令列指令碼程式設計
- 【連結】LINUX SHELL指令碼攻略筆記[速查]Linux指令碼筆記
- linux shell 指令碼攻略學習6-xargs詳解Linux指令碼
- Linux Shell指令碼Linux指令碼
- Linux shell 指令碼Linux指令碼
- shell指令碼攻略--DNS正向解析一鍵部署指令碼DNS
- Linux shell 指令碼分享Linux指令碼
- linux shell小指令碼分享Linux指令碼
- linux常用的shell指令碼Linux指令碼
- Linux/Unix shell 指令碼中呼叫SQL,RMAN指令碼Linux指令碼SQL
- Linux基礎五(shell指令碼)Linux指令碼
- Linux 【Shell指令碼經典案例】Linux指令碼
- 【Linux】【Shell】主控指令碼實現Linux指令碼
- Linux Shell指令碼系列之二Linux指令碼
- Linux Shell指令碼系列之一Linux指令碼
- Linux Shell 指令碼面試 25 問Linux指令碼面試
- Linux Shell指令碼面試25問Linux指令碼面試
- linux shell指令碼中 =~ 的作用Linux指令碼
- Linux shell:執行shell指令碼的幾種方式Linux指令碼
- Linux Shell程式設計(3)——執行shell指令碼Linux程式設計指令碼
- shell指令碼指令碼
- Linux shell 指令碼基礎介紹Linux指令碼
- Linux命令和shell指令碼學習Linux指令碼
- Linux Shell指令碼時間排程Linux指令碼
- Linux 使用 shell 指令碼處理字串Linux指令碼字串
- linux 下RMAN備份shell指令碼Linux指令碼
- Linux shell指令碼的字串擷取Linux指令碼字串
- Linux下如何執行Shell指令碼Linux指令碼
- 有點用的linux shell 指令碼Linux指令碼
- 什麼是Shell指令碼?Shell指令碼在Linux運維工作中的地位!指令碼Linux運維
- 《Linux命令列與shell指令碼程式設計大全 第3版》Linux命令列---46Linux命令列指令碼程式設計
- 【圖靈贈書】《精通Linux(第2版)》點評贈書圖靈Linux
- [Shell] Shell 生成 HTML指令碼HTML指令碼
- 一份認真的總結筆記--再讀《Linux Shell指令碼攻略(第二版)》筆記Linux指令碼
- shell指令碼(二)指令碼
- shell指令碼心得指令碼