對於習慣Windows作業系統的使用者來說,應該很少有機會接觸DOS或Unix Shell指令,相較於友善的圖形化操作環境,這些命令式的交談介面漸漸受到忽略。其實命令式的指令所提供的功能,比圖形化介面豐富許多,而且很多令你意想不到的神奇功效,都可以從指令的方式中尋得滿意的答案。由於Shell都是Unix/Linux與生俱來,所以不需要額外安裝便可以體驗Shell的威力,在學習Unix/Linux作業系統的過程中,Shell Scripting是十分重要的一環。

筆者第一次邂逅本書約是在六、七年前(閱讀的是第二版),由於工作的關係需要撰寫大量的Shell Script程式,當時看到這本以範例為主要內容的Shell書籍真是覺得如獲至寶,因為以筆者當年菜菜的Unix經驗,要撰寫個像樣的Shell Script程式,真的有些吃力,而且當時以範例來介紹Unix Shell的書還真是少得可憐,更別說是中文版本的。

涵蓋所有Shell內容,一步到位

以作者Ellie Quigley廿餘年Shell Scripting的功力及教學經驗,由他來詮譯本書是再適合也不過的了,他將過去在課程中講授的最新內容及隨堂練習作業,將實務上常用的部份,整理成本書主要的範例內容。多達一千兩百頁的內容,範圍涵括各種常用的Shell(bourne、 bash、korn、C、 tcsh)指令說明及範例程式外,grep、 sed和 awk等功能強大的工具程式以專章說明,而妥善搭配正規表示式(Regular Expression)的威力,將會讓你的程式風格更趨極簡洗鍊。

全書分為十六個章節,開頭兩章先來個概括式的簡介,讓剛接觸的新手可以先熱身一下,從Unix/Linux Shell的了解起。第三章說明Shell搭配正規表示式的便利。接下來便分別針對grep、 sed和 awk三個工具程式專章介紹,這些工具各有其適用之處。grep是個使用率非常高的工具,可以針對檔案內容及畫面輸出結果進行快速搜尋;sed通常搭配Shell Script用在對文字檔案內容的再處理;而awk則方便於處理分欄式的資料內容。

接下來便分別針對常用的Shell(包括bourne、 csh、 tcsh、 korn、 bash)全面性的介紹。Shell的使用可以分交談式(Interactive)及程式編成(Programming)兩種主要方式:交談式的用法討論使用環境啟始方式、命命列模式、變數指定方式、函式定義、檔案及目錄的操作方式、行程控制(Job Control)、標準輸入輸出、轉向(Redirect)、管線(Pipe)等等;而程式撰寫上則說明了讀取輸入內容、數值運算、條件設定及流程控制、迴圈、函式、中斷處理(Interrupt Handling)等。所以每個Shell都對上述這兩種方式提供完整的說明,當然少不了豐富的範例程式及詳解,每個介紹Shell Programming的章節中,亦提供隨堂試題(Lab)的方式來幫助讀者加深印象。

程式撰寫時難免會遇到錯誤,除錯方式(Debugging)也有專章介紹,教你如何辨別錯誤的類別,找出可能的原因,搭配一些不同的參數使用來協助除錯。除了一般使用者以外,在系統管理者在平日作業上也有一些常用的Shell技巧,像是系統啟動程序(Boot Script),權限管理及使用者角色的轉換等。

本書附錄提供讀者快速查閱Shell指令的用法及功能說明,另外提供了各種Shell的特性比較,以及tcsh與csh、bash與sh之間功能的差異性,方便讀者在不同Shell間切換時亦能游刃有餘。

透過範例學習效果更佳

硬著頭皮逐字研讀man的說明是很辛苦的(筆者也曾經被前輩這般地指導),就像是小時候學英文被老師要求背字典的原理是一樣的,學習效果不佳,而且被搞得腦神經衰弱。本書中的範例程式針對不同的指令及使用時機,你幾乎可以找到任何狀況下所需要的Shell程式內容。而且在每個範例程式都逐行搭配作者詳細說明,讓讀者可以掌握每行程式的字裡行間作用為何。如同學習英文先從句型開始,才能了解其中單字的用法。本書無論是當成工具書或是自修教材都相當合適,不管是新手或是老鳥都會愛不釋手。都出到第四版,相信書的品質必定掛保證啦!

UNIX Shells by Example(4th Edition)
Ellie Quigley/著
Prentice Hall PTR出版
售價:49.99美元
推薦:Amazon四顆半星

《作者簡介》陳宏一

交通大學資訊管理研究所碩士,現任億訊國際資深顧問。曾任職於南亞科技資訊部工程師、資迅人網路研發副理、艾群科技產品研發部經理,專精於OOAD、J2EE 相關技術、Open Source、資料庫設計、軟體開發流程及專案管理等;取得SCJP、SCWCD、SCJD、SCEA、ITIL等認證。曾經歷大型社群及電子商務網站、WAP/3G行動加值服務、CTI/CRM客服系統架構規劃設計等。

熱門新聞

Advertisement