UNIX Linux OS X中的Shell編程 第4版 UNIX/Linux/OS X中的Shell编程(第4版)

斯蒂芬·G.寇肯 (Stephen G.Kochan), 帕特裡克·伍德 (Patrick Wood)

買這商品的人也買了...

商品描述

《UNIX Linux OS X中的Shell編程 第4版》是經典圖書Unix Shell Programming時隔15年之後的全新升級版本,全面講解瞭如何在POSIX標準Shell環境中開發程序,以充分發揮UNIX和類UNIX操作系統的潛在功能。
《UNIX Linux OS X中的Shell編程 第4版》共分為14章,其內容涵蓋了Linux/UNIX的基礎知識,Shell的概念、工作原理和運行機制,編寫Shell程序時使用的一些工具,Shell中的腳本與變量,在Shell中如何解釋引用,傳遞參數,條件語句,循環,數據的讀取及打印,Shell環境,交互式以及非標準Shell的特性等。《UNIX Linux OS X中的Shell編程 第4版》後面的兩個附錄還提供了POSIX標準Shell的特性匯總信息,以及有助於進一步學習掌握Shell編程的資源。
《UNIX Linux OS X中的Shell編程 第4版》堅持以“實例教學”為理念,旨在鼓勵讀者動手實踐,從而徹底掌握Shell編程。本書實例豐富,內容易懂,特別適合有志於掌握Shell編程的Linux/UNIX初級用戶閱讀。

作者簡介

作者:[美]斯蒂芬G.寇肯(Stephen G. Kochan)、帕特里克伍德(Patrick Wood)譯者:門佳
Stephen Kochan是多本UNIX和C語言暢銷書的作者與合著者,其中包括Programming in C 、Programming in Objective-C、Topics in C Programming和Exploring the Unix System。他之前是AT&T貝爾實驗室的軟件顧問,負責開發和講授UNIX和C語言編程相關的課程。

Patrick Wood是Electronics for Imaging公司(坐落於新澤西)的CTO(首席技術官)。他之前曾經是貝爾實驗室的一名技術人員,並在1985年遇到了Kochan先生。隨後他們倆共同創建了Pipeline Associates, Inc.公司,提供UNIX諮詢服務,當時他是公司的副總裁。他們共同寫作了Exploring the Unix System、Unix System Security、Topics in C Programming和Unix Shell Programming等圖書。

目錄大綱

第1章基礎概述1 
1.1基礎命令1 
1.1.1顯示日期和時間:date命令1 
1.1.2找出已登錄人員:who命令1 
1.1.3回顯字符:echo命令2 
1.2使用文件2 
1.2.1列舉文件:ls命令3 
1.2.2顯示文件內容:cat命令3 
1.2.3統計文件中單詞數量:wc命令3 
1.2.4命令選項3 
1.2.5複製文件:cp命令4 
1.2.6文件重命名: mv命令4 
1.2.7刪除文件:rm命令5 
1.3使用目錄5 
1.3.1主目錄和路徑名6 
1.3.2顯示工作目錄:pwd命令7 
1.3.3更改目錄:cd命令7 
1.3.4 ls命令的更多用法10 
1.3.5創建目錄:mkdir命令12 
1.3.6在目錄之間複製文件12 
1.3.7在目錄間移動文件13 
1.3.8文件鏈接:ln命令14 
1.3.9刪除目錄:rmdir命令17 
1.4文件名替換18 
1.4.1星號18 
1.4.2匹配單個字符20 
1.5文件名中不易察覺的部分21 
1.5.1文件名中的空格21
1.5.2其他怪異的字符22 
1.6標準輸入/輸出和I/O重定向22 
1.6.1標準輸入和標準輸出22 
1.6.2輸出重定向24 
1.6.3輸入重定向26 
1.7管道27 
1.8標準錯誤29 
1.9命令後話29 
1.9.1在一行中輸入多個命令29 
1.9.2向後台發送命令30 
1.9.3 ps命令30 
1.10命令總結31 

第2章什麼是Shell 33 
2.1內核和實用工具33 
2.2登錄Shell 34 
2.3在Shell中輸入命令37 
2.4 Shell的職責38 
2.4.1程序執行39 
2.4.2變量及文件名替換40 
2.4.3 I/O重定向41 
2.4.4管道42 
2.4.5環境控制42 
2.4. 6解釋型編程語言43 

第3章常備工具44 
3.1正則表達式44 
3.1.1匹配任意字符:點號(.) 44 
3.1.2匹配行首:脫字符(^) 46 
3.1.3匹配行尾:美元符號($) 46 
3.1.4匹配字符組:[...] 47 
3.1.5匹配零個或多個字符:星號(*) 50
3.1.6匹配固定次數的子模式:\{...\} 52 
3.1.7保存已匹配的字符:\(...\) 54 
3.2 cut 57 
3.3 paste 61 
3.3.1 -d選項62 
3.3. 2 -s選項62 
3.4 sed 63 
3.4.1 -n選項64 
3.4.2刪除行65 
3.5 tr 66 
3.5.1 -s選項69 
3.5.2 -d選項69 
3.6 grep 70 
3.6.1正則表達式與grep 73 
3.6.2 -v選項74 
3.6.3 -l選項74 
3.6.4 -n選項75 
3.7 sort 76 
3.7.1 -u選項76 
3.7.2 -r選項77 
3.7.3 -o選項77 
3.7.4 -n選項78 
3.7.5跳過某些字段78 
3.7.6 -t選項79 
3.7.7其他選項80 
3.8 uniq 80 
3.8.1 -d選項81 
3.8.2其他選項82 

第4章腳本與變量83 
4.1命令文件83 
4.2變量86 
4.2.1顯示變量值87
4.2.2未定義變量的值為空89 
4.2.3文件名替換與變量91 
4.2.4 ${variable}結構92 
4.3內建的整數算術操作92 

第5章引用95 
5.1單引號95 
5.2雙引號98 
5.3反斜線101 
5.3.1使用反斜線續行102 
5.3.2雙引號中的反斜線102 
5.4命令替換103 
5.4.1反引號104 
5.4.2 $(...)結構104 
5.5 expr命令108 

第6章傳遞參數111 
6.1變量$# 112 
6.2變量$* 113 
6.3在電話簿中查找聯繫人113 
6.4向電話簿中添加聯繫人115 
6.5從電話簿中刪除聯繫人116 
6.6 shift命令118 

第7章條件語句120 
7.1退出狀態120 
7.2變量$ 121 
7.3 test命令124 
7.3.1字符串操作符124 
7.3.2 test的另一種格式128 
7.3.3整數操作符129 
7.3.4文件操作符130 
7.3. 5邏輯否定操作符! 131
7.3.6邏輯“與”操作符-a 131 
7.3.7括號132 
7.3.8邏輯“或”操作符-o 132 
7.4 else 133 
7.5 exit命令135 
7.6 elif 137 
7.7 case命令141 
7.7.1特殊的模式匹配字符142 
7.7.2調試選項-x 144 
7.7.3再談case 147 
7.8空命令: 148 
7.9 &&和|| 149 

第8章循環151 
8.1 for命令151 
8.1.1 $@變量154 
8.1.2不使用列表的for命令155 
8.2 while命令156 
8.3 until命令158 
8.4再談循環162 
8.4.1跳出循環162 
8.4.2跳過循環中餘下的命令163 
8.4.3在後台執行循環164 
8.4.4循環上的I/ O重定向165 
8.4.5將數據導入及導出循環166 
8.4.6單行循環166 
8.5 getopts命令167 

第9章數據的讀取及打印171 
9.1 read命令171 
9.1.1文件複製程序171 
9.1.2特殊的echo轉義字符173
9.1.3 mycp的改進版本174 
9.1.4 mycp的最終版本175 
9.1.5菜單驅動的電話簿程序179 
9.1.6變量$$與臨時文件183 
9.1.7 read的退出狀態184 
9.2 printf命令187 

第10章環境192 
10.1局部變量192 
10.2導出變量194 
10.3 PS1和PS2 198 
10.4 HOME 199 
10.5 PATH 199 
10.6當前目錄206 
10.7再談子Shell 208 
10.7.1 .命令209 
10.7.2 exec命令212 
10.7.3 (.. .)和{ ...; } 212 
10.7.4另一種將變量傳給子Shell的方法215 
10.8 .profile文件216 
10.9 TERM變量217 
10.10 TZ變量218 

第11章再談參數219 
11.1參數替換219 
11.1 .1 ${parameter} 219 
11.1.2 ${parameter:-value} 220 
11.1.3 ${parameter:=value} 220 
11.1.4 ${parameter: value} 221
11.1.5 ${parameter:+value} 222 
11.1.6模式匹配222 
11.1.7 ${#variable} 224 
11.2 $0變量224 
11.3 set命令225 
11.3.1 -x選項225 
11.3.2無參數的set 226 
11.3 .3使用set為位置參數重新賦值227 
11.3.4 --選項228 
11.3.5 set的其他選項230 
11.4 IFS變量230 
11.5 readonly命令233 
11.6 unset命令234 

第12章拓展內容235 
12.1 eval命令235 
12.2 wait命令237 
12.3 $!變量237 
12.4 trap命令238 
12.4.1不使用參數的trap 239 
12.4.2忽略信號240 
12.4.3重置信號240 
12.5再談I/O 241 
12.5.1 <&-與>&- 242 
12.5.2行內輸入重定向242 
12.5.3 Shell歸檔文件244 
12.6函數247 
12.6.1刪除函數250 
12.6.2 return命令250
12.7 type命令250 

第13章再談rolo 251 
13.1數據格式化考量251 
13.2 rolo 252 
13.3 add 254 
13.4 lu 255 
13.5 display 256 
13.6 rem 257 
13.7 change 259 
13.8 listall 260 
13.9樣例輸出261 

第14章交互式與非標準Shell特性265 
14.1使用正確的Shell 265 
14.2 ENV文件266 
14.3命令行編輯267 
14.4命令歷史267 
14.5 vi行編輯模式268 
14.6 emacs行編輯模式272 
14.7訪問歷史記錄的其他方法275 
14.7.1 history命令275 
14.7 .2 fc命令276 
14.7.3 r命令277 
14.8函數278 
14.8.1局部變量278 
14.8.2自動載入函數278 
14.9整數算術278 
14.9.1整數類型279 
14.9.2不同基數的數字280 
14.10 alias命令282 
14.11數組284
14.12作業控制289 
14.13其他特性292 
14.13.1 cd命令的其他特性292 
14.13.2波浪符替換292 
14.13.3搜索次序293 
14.14兼容性總結294 
附錄A Shell總結295 
附錄B更多的相關信息329