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