Linux Shell編程藝術 ( 簡體 字) |
作者:張澤 | 類別:1. -> 作業系統 -> Linux |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 37569 詢問書籍請說出此書號!【有庫存】 NT售價: 440 元 |
出版日:1/1/2014 |
頁數:476 |
光碟數:1 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121221019 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:Shell是Unix/Linux操作系統與用戶進行交互的重要接口,是Unix/Linux系統中最重要的軟件之一。一直以來,Shell編程都是系統管理員必備的高級技能,通過學習Shell編程,可以讓計算機系統去完成那些繁重并且瑣碎的管理任務,從而可以節省大量的工作時間。本書通過大量的實例,以循序漸進的方式,由淺入深地逐步介紹Shell編程的各個知識點,從而引領讀者輕松跨越Shell程序設計的門檻,最終擺脫繁忙而且低效率的工作狀態,達到輕松管理系統的目的。 如果你已經是一個Unix/Linux系統的使用者,或者希望將來能夠從事Unix/Linux系統方面的工作,那么本書一定是你所需要的。本書并不要求你有多少系統管理方面的經驗,如果你已經能夠在命令行使用簡單的命令,那么馬上就可以上手編寫腳本程序;如果你沒有這方面的經驗也不必擔心,在本書的開始會給出這方面的介紹,一步一步帶你進入精彩的腳本世界。 本書內容 本書結合大量的實例,系統、全面地介紹了Shell腳本編程語言的語法格式,常用命令的使用,面對問題的分析方法,以及整個系統背后的運行原理等內容,力求使讀者掌握從問題分析到代碼實現,再到調試腳本、優化腳本的整個流程。閱讀完本書以后,讀者能夠具備較強的Shell程序設計能力,并對系統背后的運行原理有深入的理解。本書適合系統管理員、網絡管理員、Unix/Linux系統愛好者學習參考。 本書的主要內容如下。 (1)第1章Shell介紹和腳本基礎:討論了有關Shell編程的一些重要概念,以及Shell編程所使用的基本工具和基本方法。 (2)第2章操作文件和目錄:介紹了在Unix/Linux系統中操作文件和目錄所使用的各種命令工具,如對文件和目錄的復制、移動等,同時還講述了文件和目錄訪問權限的有關知識。 (3)第 3 章輸入/輸出重定向和管道:講述了系統中所有命令的共同點,即每一個命令都會有標準輸入、標準輸出和標準錯誤輸出,同時還講述了如何通過管道來改變這些輸入/輸出。 (4)第4章進程:講述了如何啟動和終止一個進程,以及前臺進程與后臺進程的區別。 (5)第 5 章文本處理和字符串操作:介紹了文本處理的相關工具和方法,這些工具與管道結合在一起使用可以構成強大而復雜的功能。 (6)第6章變量:講解了變量在Shell腳本程序中的作用及相關的使用方法,如如何創建和刪除變量,此外還介紹了有關環境變量的知識。 (7)第7章流程控制:介紹了在Shell編程中所使用的各種流程控制語句,包括各種分支結構和循環結構。 (8)第8章替換:介紹了 4 種類型的替換及它們在腳本程序中所發揮的作用,它們分別是文件名替換、變量替換、命令替換及算術替換。 (9)第9章引用:講解了引用的概念和各種引用的使用方法,以及它們之間的區別,同時還講述了引用對于各種替換的效果。 (10)第10章函數:討論了有關腳本中函數的用法。通過使用函數可以使腳本程序更加結構化,更加模塊化,同時可以大大地提高腳本程序的開發效率。 (11)第11章其他常用工具:介紹了在系統管理及開發腳本過程中經常用到的一些工具,如find命令,xargs命令,下載工具和數據文件的壓縮備份工具。 (12)第12章處理信號:闡述了系統中信號的概念,同時講解了如何發送信號及如何使用trap命令處理各種信號。 (13)第13章使用sed處理文本:講述了正則表達式的基本知識,同時還結合正則表達式講解了強大的流編輯器sed。 (14)第14章使用awk處理文本:講解了另外一個強大的文本過濾工具awk,并且對awk與流編輯器sed進行了比較。 (15)第15章grep和高級正則表達式:介紹了文本內容搜索工具grep命令,并通過grep命令繼續介紹了正則表達式的很多高級使用方法。 (16)第16章debug Shell腳本:講解了在Shell腳本的開發過程中經常會犯的一些錯誤,以及如何利用Shell所產生的錯誤信息來確定問題的位置,同時還討論了Shell內建的各種debug工具,以及在debug過程中經常使用的一些方法。 如何閱讀本書 本書試圖通過實際案例和現場解答的方式,講述Shell腳本編程過程中的各個知識點。讀者在遇到每一個實際的需求案例時,可以先不直接查看解決方案,而是通過自己已有的知識結構看是否可以解決所面臨的問題;也可以先查詢系統中的手冊,看是否能夠找到解決問題的方法,然后再與作者給出的解決方案進行對比,這樣做的好處是不僅加深了對知識點的理解,還可以鍛煉讀者分析問題、解決問題的能力。在計算機的世界里,你隨時都可能遇到各種各樣的問題,并不是所有的問題都可以在書本中找到答案,因此我們需要的是能夠分析問題,對已有知識靈活運用并舉一反三的能力,這也是本書作者最為看重的一點。因此,在每一個實際案例的分析中,本書都會從開發者面對當時問題的思考過程的角度來進行描述,一步步引領讀者學會這種開發過程中的思維過程。 此外,由于Shell編程中的各部分知識是相互交織纏繞在一起的,本書中各章節的前后順序只是作者認為相對比較合理的一條學習路徑,所以難免會出現前面的知識要用到后面知識的情況,此時讀者可以適當地“囫圇吞棗”,只要能夠理解一段代碼所實現的大體功能即可,而不必在第一次閱讀時就搞懂每一個細節,可以在后面專門介紹這個知識點的章節中再深入地學習。總之,如果眼前有不懂或想不明白的問題,可以暫時先忽略它,等到一段時間以后,這些問題自然會得到解決。 在本書中,讀者可能會覺得有些很“簡單”的問題都被列了出來,甚至顯得有些?嗦。這是因為對有些讀者來說某一個問題可能很簡單,但是另外一些讀者可能對這部分知識比較生疏,從而對這個問題怎么也想不通,因此筆者寧可讓內容寫得?嗦點,也不讓一些重要的細節被遺漏。但是如果涉及的細節在前面的章節已經講過,便會有意地略過。 本書的代碼示例力求簡單易懂,目的是為了盡可能地講清楚每一個知識點,因此有些實例程序在現實腳本世界中是不會存在的,它們僅僅是為了學習之用,暫時并不考慮實際的用途。當然,如果讀者有更好的實例程序,也很歡迎與作者進行溝通。 實例程序的獲得和使用 本書中的實例代碼可以通過登錄華信教育資源網(www.hexdu.com.cn)免費注冊后下載獲得,下載以后得到的是一個源代碼程序的zip壓縮包,在Linux系統中使用解壓工具解開以后,可以看到所有的程序實例都按章節進行了分類。讀者在學習某一章時,可以進入相應的章節目錄,閱讀并執行實例程序。同時,在本書中引用源代碼實例的地方,也都用[filename.sh]的形式標識了對應的程序文件名,以方便讀者測試使用。對于那些在Shell命令行輸入的命令,并沒有對應的源代碼,需要讀者自己在Linux系統中輸入這些命令來進行驗證。 致謝 本書由張澤編著,在本書完成之際,感謝我的朋友和家人的支持和鼓勵,是他們讓我一直堅持下來,并最終完成這部著作。 參加本書編寫和審定工作的還有王堅寧、李龍、魏勇、張玉蘭、高克臻、張秀梅、張云霞、周興國、李輝、劉峰、徐浩、馬建軍、朱麗云、許小榮等。在此,編者對以上人員致以誠摯的謝意! 勘誤和支持 由于作者的水平有限,加上寫作時間倉促,書中難免會出現一些錯誤或不準確的地方,懇請讀者批評和指正。如果有任何疑問或錯誤,可以通過Email與筆者共同討論。筆者的聯系郵箱:zhangze.linux@gmail.com。
編 者 2013年3月 |
內容簡介:Shell是Unix/Linux操作系統與用戶進行交互的重要接口,是Unix/Linux系統中最重要的軟件之一。一直以來,Shell編程都是系統管理員必備的高級技能,通過學習Shell編程,可以讓計算機系統去完成那些繁重并且瑣碎的管理任務,從而可以節省大量的工作時間。本書通過大量的實例,以循序漸進的方式,由淺入深地逐步介紹Shell編程的各個知識點,從而引領讀者輕松跨越Shell程序設計的門檻,最終擺脫繁忙而且低效率的工作狀態,達到輕松管理系統的目的。 本書結合大量的實例,系統、全面地介紹了Shell腳本編程語言的語法格式,常用命令的使用,面對問題的分析方法,以及整個系統背后的運行原理等內容,力求使讀者掌握從問題分析到代碼實現,再到調試腳本、優化腳本的整個流程。閱讀完本書以后,讀者能夠具備較強的Shell程序設計能力,并對系統背后的運行原理有深入的理解。 |
目錄:第1章 Shell介紹和腳本基礎 1 1.1 登錄到系統 2 1.2 交互地執行命令 8 1.3 自定義Shell 15 1.4 獲取幫助 21 1.5 一個簡單的Shell腳本 24 1.6 遠程操作 33 1.7 小結 35 第2章 操作文件和目錄 37 2.1 列出文件 38 2.2 查看并改變當前目錄 42 2.3 查看文件內容 54 2.4 統計文件行數和字數 60 2.5 創建文件和目錄 61 2.6 刪除文件和目錄 64 2.7 重命名文件和目錄 68 2.8 移動文件和目錄 69 2.9 建立文件和目錄的符號鏈接 72 2.10 復制文件和目錄 74 2.11 文件所有者與訪問權限 78 2.12 小結 90 第3章 輸入/輸出重定向和管道 91 3.1 標準輸出 92 3.2 標準輸入 99 3.3 標準錯誤輸出 101 3.4 管道 105 3.5 塊語句的輸出和重定向 110 3.6 Here Document 114 3.7 文件描述符 115 3.8 小結 120 第4章 進程 121 4.1 查看進程 122 4.2 前臺進程和后臺進程 130 4.3 終止進程運行 142 4.4 /proc/文件系統 146 4.5 小結 150 第5章 文本處理和字符串操作 152 5.1 常用的文本操作 153 5.2 其他操作 165 5.3 小結 169 第6章 變量 171 6.1 普通變量 172 6.2 數組變量 178 6.3 環境變量 184 6.4 Shell變量 188 6.5 特殊變量 192 6.6 小結 201 第7章 流程控制 203 7.1 if/else語句 204 7.2 case語句 210 7.3 while循環 214 7.4 until循環 216 7.5 for循環 219 7.6 select循環 222 7.7 循環嵌套 227 7.8 break語句 230 7.9 continue語句 232 7.10 小結 235 第8章 替換 236 8.1 變量替換的高級形式 237 8.2 文件名替換 243 8.3 命令替換 246 8.4 算術運算替換 249 8.5 小結 251 第9章 引用 252 9.1 使用反斜杠 253 9.2 使用單引號 259 9.3 使用雙引號 263 9.4 引用的其他應用 267 9.5 小結 273 第10章 函數 274 10.1 定義和使用函數 275 10.2 檢查函數定義和取消函數定義 277 10.3 參數和返回數據 279 10.4 變量的作用域 288 10.5 遞歸調用 292 10.6 函數庫 295 10.7 小結 297 第11章 其他常用工具 299 11.1 使用find查找文件 300 11.2 xargs 309 11.3 其他查找文件的方法 311 11.4 判斷文件的類型 313 11.5 數據備份 315 11.6 壓縮文件 318 11.7 文件備份 326 11.8 下載工具 331 11.9 小結 333 第12章 處理信號 335 12.1 如何表達信號 336 12.2 如何處理信號 338 12.3 忽略信號 346 12.4 定時器 349 12.5 小結 354 第13章 使用sed處理文本 355 13.1 sed如何工作 356 13.2 選擇要操作的行 366 13.3 重用匹配到的字符串 376 13.4 小結 378 第14章 使用awk處理文本 379 14.1 awk如何工作 380 14.2 使用變量 392 14.3 控制語句 405 14.4 使用函數 413 14.5 小結 418 第15章 grep和高級正則表達式 419 15.1 grep的基本用法 420 15.2 高級正則表達式 425 15.3 小結 441 第16章 Debug Shell腳本 442 16.1 分析報錯信息 443 16.2 進入debug模式 445 16.3 在腳本中添加debug功能 454 16.4 使用trap命令 460 16.5 小結 463 參考文獻 464 |
序: |