出版時間:2010-8 出版社:人民郵電出版社 作者:彼得 頁數:222
Tag標簽:無
前言
我在讀書期間學到了編程的基本知識,學會了如何根據例子寫shell腳本。我曾經認識許多系統(tǒng)管理員或其他NIX系統(tǒng)相關人員并和他們合作過,說到管理系統(tǒng)、與環(huán)境交互或是編寫腳本幾方面,他們每個人都有自己的一些技巧。和這些人交談、互動是很有益的,因為你總是能學到一些東西,可以充實自己的技巧儲備。我決定把這些年來學到的所有有用的shell腳本編程和交互技術集中起來,匯編成一本好的參考手冊。實際上,我在寫這本書時也加入了自己對這些技術的一些觀點。因為我不可能記住本書中包含的所有內容,我在寫到各方面技術時會不時地查些資料。我希望這本書會成為一系列高級參考手冊的第一本,這個系列可以不斷增長壯大。讀者可能看到過大量的shell腳本編程圖書和網絡資源,它們可以幫助掌握shell腳本編程技術。許多shell編程書都寫得很好,涵蓋的內容很廣。本書的主要目的是把一部分最基本的工具、代碼片段和高于基本水平的腳本組織起來。我的設想是編一本菜譜,里面是一些并不廣為人知的菜肴(技術),以及對我而言很有用的、較高級的算法。本書包含讀者可以直接使用的腳本,以及用于演示某個特定算法的腳本示例。本書也演示了幾個在命令行環(huán)境下可能很有用的復雜命令,并試圖對腳本進行裁剪,使它們可以應用于多個層次。但在大多數情況下都幾乎或完全沒有錯誤檢查,因為這不一定是這個特定腳本的重點。讀者必須準備好進行某些修改,以適應所在的本地環(huán)境。本書的成因我的朋友Brian Culp和我作為UNIX系統(tǒng)管理員,曾共事多年。我們每過一段時間就會在寫某個腳本的時候遇到問題。這時,我們當中的一個就會停下工作,走到另一個身邊說:“你那有完成某某工作的代碼嗎?”回答可能是否定的,這時我們就開始討論怎樣解決這個問題,或者提出幾種不同的解決方案。但更多時候可能是說:“晤,是,我記得在一個腳本里做過這樣的事,在某某系統(tǒng)上做了某某工作。我找找看?!比缓蠹毿牟僮鲙状蝕rep命令,答案就到手了。
內容概要
本書旨在為Linux、Unix以及OS X系統(tǒng)管理員提供短小精悍且功能強大的shell實現解決方案,教會讀者如何使用現有調試器調試shell腳本。 全書分為3個部分:腳本技術基礎、系統(tǒng)交互和高級技術、有用的腳本實例。主要內容包括如何使小到中型的系統(tǒng)管理任務自動化,分析系統(tǒng)數據并編輯配置文件,使用bash和ksh等編寫Linux、Unix和OS X應用程序的腳本文件等。 本書面向中高級的shell程序員,以及需要解決日常問題的系統(tǒng)管理員,但假定讀者能夠讀懂一般的shell代碼。
作者簡介
Ron Peters在過去的15年中大部分時間都在做系統(tǒng)管理員的工作。他曾是Intel公司的高級管理員,在那些日子里,他總是每周7天、每天24小時不停地工作,他也曾是一個專用于設計工作的大型計算機集群的首席管理員。他現在是Columbia運動服裝公司的Linux/UNIX系統(tǒng)管理員。他喜歡和家人在一起,喜歡修理他的道奇Challenger汽車,還喜歡玩美式壁球。
書籍目錄
第1部分 基本腳本編程技術 第1章 shell腳本的錯誤檢測 1.1 shell跟蹤選項 1.2 簡單輸出語句 1.3 根據調試層次控制輸出 1.4 用函數簡化錯誤檢查 1.5 手動單步執(zhí)行 第2章 標準函數庫 第3章 日期和時間操作 第4章 比較和測試 第5章 接受命令行選項、開關和參數 第6章 測試變量和設置默認值 第7章 非直接引用變量 第8章 shell進程樹 第9章 數據重定向 第10章 管道輸入讀第2部分 系統(tǒng)交互與高級技術 第11章 shell中的數學 第12章 cron 第13章 自鏈接腳本 第14章 對并行進程的數量控制 第15章 命令行編輯和歷史命令 第16章 從命令行編寫腳本 第17章 用expect實現用戶輸出自動化 第18章 用戶輸入超時 第19章 即時鍵盤響應 第20章 目錄的復制 第21章 X顯示環(huán)境概述 第22章 X導航窗口 第23章 命令行電子郵件附件 第24章 單行文本處理 第25章 在適當的位置編輯文件 第26章 平面文件中的變量賦值 第27章 讀取管道輸入 第28章 使用cat的自由格式輸出 第29章 自動交互處理第3部分 有用的腳本實例 第30章 使用procmail自動處理郵件 第31章 進程管理監(jiān)視器 第32章 管理文件的計數 第33章 從inittab執(zhí)行進程 第34章 自動RCS 第35章 帶顏色的/proc報告 第36章 口令老化通知 第37章 偽shadow文件 第38章 搭建Linux金系統(tǒng) 第39章 系統(tǒng)快照 第40章 刪除大文件和日志滾動 第41章 核心探測器 第42章 網絡適配器故障轉移附錄A 測試開關附錄B 特殊參數附錄C shell腳本編程的其他資源
章節(jié)摘錄
有時可能需要輸入一些數據或者執(zhí)行一個行為而不使用回車鍵。不久前,當我需要查看彈道方程的數字輸出時,就遇到了這個問題。當時希望僅僅按一個鍵就能遞增或者遞減一個輸入值,并重新計算結果。我用一個腳本完成了這個任務,顯示已經改變的輸入值和從它計算而來的新結果。這個有趣的腳本是如何處理立即響應。該腳本能相當好地完成任務。下面的腳本為發(fā)射體軌道計算和顯示值的簡化版本。用戶能按照描述的方式設置發(fā)射角度和開火速度。腳本將顯示發(fā)射體的距離、最大高度和飛行時間。為了處理按鍵操作,必須首先使用stty建立終端。然后像本章隨后將要描述的那樣,用head(或者dd)命令獲得所按鍵值。這里使用.icanon開關設置stty,使終端操作的標準模式失效,讀輸入數據的模式改變?yōu)榛谧止?jié)輸入的細粒度模式。-icanon開關的前兩個特性(erase和kill)的特殊字符分別擦除最后輸入的字符和擦除當前行。最后兩個特性(werase和rpmt)的應用不是非常普遍。werase特性的特殊字符擦除最后輸入字,rpmt的特殊字符在屏幕上重畫當前行。更多詳細信息參閱stty聯機資料。
編輯推薦
《Shell腳本專家指南》是我多年從事系統(tǒng)管理員一職所積累的非常有用的腳本和技術集合。盡管這些腳本是從一名系統(tǒng)管理員的角度進行編寫的。但你幾乎可以為任何你能想得到的目的而重用它們?!禨hell腳本專家指南》中的所有代碼或者是非常有用,或者是非常地獨特(甚至可能會有一點與眾不同)。不過其中有些解決方案所用到的技術可能是你自己很難想出來的。當我還在學習shell腳本編程的時候,我會經常參考一些由別人編寫出來的實例,以進一步地擴展自己的視野。而結果往往是我發(fā)現一些正在困擾著自己的問題,我的同事和朋友們卻早已發(fā)明了又酷又聰明的解決方案。因此,我便萌生了寫這《Shell腳本專家指南》的念頭,以易于理解的形式,介紹所有這些關鍵技術。我寫此書的目的。不是為了創(chuàng)作出一本shelI腳本編程的入門書。而是希望能夠提供一些更具深度的內容。它的作用不僅僅是解釋sheIl代碼的內容,更在于講述在大多數情況下如何以及為何使用某種特定的編程邏輯。這些腳本將幫助你大大提高編程技能。并提高你解決問題和選擇解決方案的能力?!禨hell腳本專家指南》中的大部分腳本已經在以可靠性為關鍵因素的生產環(huán)境下,經歷了多年的不斷錘煉和改進。因此,《Shell腳本專家指南》對于那些希望在案頭放一本案例精選的讀者來說,將會是最佳的參考資料。這里囊括了所有你迫切希望解決、卻又無處發(fā)問的Shell腳本問題。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載