內容簡介
《UNIX/Linux套用、編程與系統管理(第3版)》兼顧用戶和程式設計師的思路來編寫,是終極的UNIX/Linux教材。
本書既有教學工具又有詳盡的參考資料,非常適合於任何UNIX或Linux相關課程。與類似教材不同的是,本書設定了一個強大的教學框架,能夠使入門級的學生牢固地掌握基本概念,而高級主題章節能激發更有經驗的讀者超越基礎知識。
《UNIX/Linux套用、編程與系統管理(第3版)》兼顧用戶和程式設計師的思路來編寫,是終極的UNIX/Linux教材。本書既有教學工具又有詳盡的參考資料,非常適合於任何UNIX或Linux相關課程。與類似教材不同的是,本書設定了一個強大的教學框架,能夠使入門級的學生牢固地掌握基本概念,而高級主題章節能激發更有經驗的讀者超越基礎知識。書中提供了近千道練習和自測題,用於讓學生測試和鞏固他們對知識的理解。
UNIX是計算機發展歷史上最成功的作業系統家族。它誕生於貝爾實驗室,爾後迅速成為世界上作業系統的主流並延續至今。Linux派生於UNIX,並且在小型機和桌面計算機領域成為和微軟的Windows並駕齊驅的作業系統家族。
圖書目錄
第I部分UNIX之用戶篇
第1章UNIX簡介 3
1.1作業系統 4
1.2UNIX作業系統 5
1.3了解你的計算機 5
1.4系統管理員 7
1.5登錄和註銷 7
1.5.1登錄 7
1.5.2 註銷 8
1.6實踐練習 9
1.6.1用date和who查看
系統信息 9
1.6.2用ps查看進程 10
1.6.3 處理檔案 11
1.6.4 處理目錄 12
1.7UNIX的成功之路 14
1.7.1 伯克利:第二學派 14
1.7.2 UNIX的分化 15
1.7.3 網際網路 15
1.7.4Windows的威脅 15
1.8POSIX和單一UNIX規範 16
1.9Linux和GNU 16
1.10UNIX體系結構 17
1.10.1 分工:Kernel和shell 17
1.10.2檔案和進程 18
1.10.3 系統調用 19
1.11UNIX的功能 19
1.11.1 多用戶系統 19
1.11.2多任務系統 20
1.11.3應用程式庫 20
1.11.4 構建基塊方法 20
1.11.5 模式匹配 21
1.11.6 程式設計實用工具 21
1.11.7文檔 21
1.12小結 22
1.13自測題 22
1.14習題 23
第2章熟悉UNIX命令 25
2.1命令基礎 26
2.1.1PATH:定位命令 26
2.1.2命令的存放位置 27
2.2命令結構 28
2.3命令套用的靈活性 30
2.4man:在線上幫助 31
2.4.1導航與查找 33
2.4.2用man-k和man-f
獲取更多幫助 33
2.5man文檔 33
2.5.1了解man頁 34
2.5.2用man來理解man 35
2.6echo:顯示訊息 37
2.7printf:echo的替代命令 39
2.8script:記錄會話 39
2.9以mailx命令使用電子郵件 40
2.9.1傳送郵件 40
2.9.2接收郵件 41
2.9.3mailx內部命令 42
2.10passwd:改變密碼 43
2.11uname:顯示計算機名和
作業系統 44
2.12who:了解用戶 45
2.13date:顯示系統日期 45
2.14stty:在出錯時 46
2.15XWindow系統 48
2.15.1終端模擬器 48
2.15.2檔案管理器 49
2.16小結 50
2.17自測題 51
2.18習題 52
第3章檔案系統 55
3.1檔案 56
3.1.1普通(常規)檔案 56
3.1.2目錄檔案 56
3.1.3設備檔案 57
3.2檔案名稱中有什麼 57
3.3檔案系統的層次結構 58
3.4UNIX檔案系統 59
3.5隨命令一起使用絕對路徑名 60
3.6HOME變數和~:主目錄 61
3.7pwd和cd:在檔案系統中
導航 61
3.8相對路徑名(.和..) 63
3.9mkdir:創建目錄 64
3.10rmdir:刪除目錄 65
3.11ls:列出檔案 66
3.12cp:複製檔案 69
3.13mv:重命名檔案 70
3.14rm:刪除檔案 71
3.15cat:顯示和串聯檔案 73
3.16more:UNIX分頁器 74
3.17pico:基本文本編輯 76
3.17.1導航 77
3.17.2文本編輯 77
3.18wc:計算行數、字數和
字元數 77
3.19lp:列印檔案 78
3.20od:查看不可列印字元 80
3.21dos2unix、unix2dos和
Tofrodos:在DOS和
UNIX之間轉換 80
3.22tar:存檔程式 81
3.23gzip:壓縮程式 82
3.24zip:壓縮和存檔程式 84
3.25使用這些命令的其他方式 85
3.26小結 85
3.27自測題 86
3.28習題 86
第4章檔案屬性 89
4.1重溫ls(-l):列出檔案屬性 89
4.2檔案許可權 91
4.3chmod:改變檔案許可權 92
4.3.1相對許可權 93
4.3.2絕對賦予許可權 94
4.3.3遞推操作(-R) 95
4.4目錄 96
4.4.1讀許可權 96
4.4.2寫許可權 96
4.4.3執行許可權 98
4.5umask:默認的檔案與
目錄許可權 98
4.6檔案系統和inode 99
4.7ln:創建硬連結 101
4.8再論ln:創建符號連結 103
4.9檔案所有權 105
4.9.1chown:改變檔案所有權 106
4.9.2chgrp:改變用戶組
所有者 106
4.9.3如何處理入侵者 107
4.10修改時間與訪問時間 108
4.11find:定位檔案 108
4.11.1選擇準則 110
4.11.2find操作符(!,-o和-a) 112
4.11.3操作部分的操作符 112
4.12小結 113
4.13自測題 113
4.14習題 114
第5章vi/vim編輯器 117
5.1vi基礎 118
5.2一些提示 120
5.3輸入模式——輸入和
替換文本 121
5.3.1插入和追加文本(i和a) 122
5.3.2在行的兩端插入和追加
文本(I和A) 122
5.3.3新建一行(o和O) 123
5.3.4替換文本(r、s、R和S) 124
5.3.5輸入控制字元([Ctrl-v]) 125
5.4保存文本並退出——ex模式 126
5.4.1保存工作(:w) 127
5.4.2保存並退出(:x和:wq) 127
5.4.3中止編輯(:q) 127
5.4.4寫入選定行 128
5.4.5退出到shell(:sh和
[Ctrl-z]) 129
5.5從崩潰中恢復(:recover和-r) 129
5.6導航 130
5.6.14個方向上的相對
移動(h、j、k和l) 131
5.6.2滾動([Ctrl-f]、[Ctrl-b]、
[Ctrl-d]和[Ctrl-u]) 131
5.6.3單詞導航(b、e和w) 132
5.6.4移到行的末端(0、|和$) 132
5.6.5絕對移動(G) 133
5.7編輯文本,不使用操作符 133
5.7.1刪除文本(x、X和dd) 133
5.7.2移動文本(p) 134
5.7.3合併行(J) 134
5.7.4改變大小寫(~) 135
5.8糾正C程式 135
5.9用操作符編輯文本 136
5.9.1刪除和移動文本
(d、p和P) 137
5.9.2複製文本(y、p和P) 138
5.9.3修改文本(c) 139
5.10在檔案之間複製和
移動文本 139
5.11撤消之前的編輯
指令(u和U) 140
5.12查找模式(/和?) 141
5.13重複上一條命令(.) 142
5.14替代-查找並替換(:s) 143
5.15set:定製vi 144
5.16map:映射鍵盤的按鍵 146
5.17abbr:文本輸入的縮寫 147
5.18小結 147
5.19自測題 148
5.20習題 149
第6章shell 151
6.1作為命令處理器的shell 152
6.2shell提供的功能 152
6.3模式匹配——通配符 153
6.3.1*和? 154
6.3.2字元類 155
6.3.3匹配句點 156
6.3.4綜述 157
6.4轉義與引用 157
6.4.1轉義 158
6.4.2引用 159
6.4.3在echo中進行轉義 159
6.5重定向 160
6.5.1標準輸入 160
6.5.2標準輸出 162
6.5.3檔案描述符 163
6.5.4標準錯誤 164
6.5.5過濾器——使用標準
輸入與標準輸出 165
6.6集體處理 165
6.6.1複製描述符 166
6.6.2命令分組 166
6.7/dev/null和/dev/tty:兩個
獨立的檔案 167
6.8管道 168
6.9tee:創建一個T型三通 170
6.10命令替換 171
6.11shell變數 172
6.11.1引用和轉義的影響 173
6.11.2使用shell變數的場合 174
6.12shell腳本 175
6.13shell對命令行的處理 175
6.14有關通配符的更多信息 176
6.15xargs:構建動態命令行 177
6.16小結 177
6.17自測題 178
6.18習題 179
第7章進程 181
7.1進程基礎 182
7.2shell和init 182
7.3ps:顯示進程屬性 183
7.4系統進程和init 184
7.5進程創建機制 187
7.6繼承的進程屬性 188
7.7不能使用單獨進程的情景 190
7.8進程狀態與殭屍
進程(Zombie) 190
7.9信號處理 191
7.10在後台運行作業 193
7.10.1&:不註銷 194
7.10.2nohup:安全註銷 194
7.11作業控制 195
7.12at和batch:推後執行 198
7.12.1at:一次執行 198
7.12.2batch:在批佇列中
執行作業 199
7.12.3限制at和batch的使用 199
7.13cron和crontab:定期
運行作業 199
7.14小結 202
7.15自測題 203
7.16習題 203
第8章shell—定製環境 205
8.1shell 205
8.2環境變數 207
8.3常見環境變數 208
8.4別名 212
8.5命令歷史記錄 213
8.5.1訪問之前的命令 214
8.5.2 在先前命令中進行替換 215
8.5.3使用上一條命令中的
參數($_) 215
8.5.4歷史記錄變數 216
8.6行內命令編輯 217
8.7~替換 218
8.8使用set選項 219
8.9初始化腳本 220
8.9.1登錄腳本 221
8.9.2rc檔案 221
8.10Cshell 222
8.10.1局部變數和環境變數 222
8.10.2別名 224
8.10.3歷史記錄 225
8.10.4 其他shell變數 225
8.10.5初始化腳本 226
8.11目錄棧操作 226
8.12小結 228
8.13自測題 229
8.14習題 229
第9章簡單過濾器 231
9.1pr:對檔案進行編頁 232
9.2對比檔案 233
9.3cmp:逐位元組對比 234
9.4comm:哪些共同內容 235
9.5diff:將一個檔案轉換為
另一檔案 236
9.6head:顯示一個檔案的開頭 236
9.7tail:顯示檔案的末尾 237
9.8cut:垂直劃分檔案 238
9.9paste:貼上檔案 240
9.10sort:對檔案進行排序 240
9.11uniq:定位重複行和
非重複行 244
9.12tr:變換字元 245
9.13套用過濾器 247
9.13.1列出當前目錄中5個
最大的檔案 248
9.13.2創建一份單詞使用
情況列表 249
9.13.3找出兩個密碼檔案
之間的差別 249
9.14小結 251
9.15自測題 251
9.16習題 252
第10章使用正則表達式的
過濾器——grep和sed 255
10.1示例資料庫 256
10.2grep:查找模式 256
10.2.1grep中的引用 257
10.2.2grep失敗的場合 258
10.3grep選項 258
10.4基本正則表達式(BRE)
——簡介 260
10.4.1字元類 262
10.4.2* 262
10.4.3句點 263
10.4.4指定模式位置(^和$) 264
10.4.5元字元失去其意義的
情景 265
10.5擴展正則表達式(ERE)和
egrep 265
10.5.1+和? 266
10.5.2匹配多種模式(|、(和)) 266
10.6sed:流編輯器 267
10.7行定址 269
10.8sed選項 270
10.9上下文定址 271
10.10將選定行寫入檔案(w) 272
10.11文本編輯 272
10.11.1插入和改變行
(i、a、c) 272
10.11.2刪除行(d) 273
10.12替換(s) 274
10.12.1在替換中使用正則
表達式 275
10.12.2記憶模式(//) 275
10.13基本正則表達式回顧 276
10.13.1重複模式(&) 277
10.13.2間隔正則表達式
(IRE) 277
10.13.3標記正則表達式
(TRE) 277
10.14套用IRE和TRE 278
10.14.1處理電話簿 278
10.14.2用POSIX兼容的函式
替換過時的函式 279
10.14.3變換URL中的
路徑名 280
10.15小結 281
10.16自測題 281
10.17習題 282
第11章聯網工具 285
11.1TCP/IP基礎知識 286
11.2解析主機名和IP位址 287
11.2.1/etc/hosts:主機檔案 287
11.2.2域名系統(DNS) 288
11.3客戶端-伺服器:網路
應用程式如何通信 290
11.4ping:檢查網路 291
11.5telnet:遠程登錄 292
11.6ftp:檔案傳輸協定 293
11.6.1基本檔案與目錄處理 293
11.6.2傳送檔案 294
11.6.3匿名FTP 295
11.7密碼學基礎 296
11.7.1對稱密鑰算法 296
11.7.2非對稱密鑰算法 297
11.8SSH:安全shell 297
11.8.1主機驗證 297
11.8.2rhosts/shosts驗證機制 298
11.8.3採用對稱算法的用戶驗證 298
11.8.4使用SSH代理進行非互動式登錄 300
11.9SSH協定 301
11.9.1遠程登錄與執行命令(ssh和slogin) 301
11.9.2用sftp和scp進行檔案傳輸 302
11.10網際網路郵件 303
11.11MIME:處理郵件中的二進制附屬檔案 305
11.12在TCP/IP網路上使用XWindow 306
11.12.1顯示器 306
11.12.2使用DISPLAY變數 307
11.12.3使用-display選項 307
11.13HTTP和全球資訊網 307
11.13.1統一資源定位符(URL) 308
11.13.2HTTP:Web的協定 309
11.13.3運行外部程式 309
11.13.4HTML:網頁的語言 310
11.13.5Web瀏覽器 311
11.14Web上的多媒體:重溫MIME 311
11.15小結 312
11.16自測題 313
11.17習題 314
第II部分UNIX之程式設計師篇
第12章用awk進行過濾和程式設計 317
12.1awk預備知識 318
12.2使用print和printf 320
12.3數字處理 321
12.4變數和表達式 322
12.5比較與邏輯運算符 324
12.5.1字元串和數值比較 324
12.5.2~和!~:正則表達式運算符 325
12.5.3邏輯運算符 327
12.6-f選項:將awk程式存儲在檔案中 327
12.7BEGIN和END節 328
12.8位置參數 329
12.9數組 329
12.9.1關聯(哈希)數組 330
12.9.2ENVIRON[]:環境
數組 331
12.10內置變數 331
12.11函式 333
12.12控制流——if語句 335
12.13for循環 336
12.14while循環 338
12.15結論 339
12.16小結 340
12.17自測題 340
12.18習題 341
第13章shell程式設計 345
13.1shell腳本 346
13.1.1script.sh:一個簡單腳本 346
13.1.2She-Bang行 347
13.2read:使腳本變為互動式的 348
13.3使用命令行參數 348
13.4exit和$?:命令的退出狀態 350
13.5邏輯運算符&&和||——條件執行 351
13.6if條件句 351
13.7使用test和[]對表達式求值 353
13.7.1數值比較 353
13.7.2[]:test的捷徑 354
13.7.3字元串比較 355
13.7.4檔案屬性檢驗 355
13.7.5使用複合條件 357
13.8兩個重要的程式設計習慣 357
13.8.1以互動式、非互動式執行一項任務 357
13.8.2用不同名稱調用腳本($0) 359
13.9case條件句 359
13.10expr、bc和basename:計算與字元串處理 361
13.10.1用expr進行計算 362
13.10.2用bc進行浮點計算 362
13.10.3用expr處理字元串 363
13.10.4basename:改變檔案名稱擴展 364
13.11示例程式1:自動選擇上一個C程式 365
13.12for:用列表進行循環 366
13.12.1列表的來源 366
13.12.2使用for的重要套用 367
13.13while:循環 367
13.13.1在循環中處理重定向 368
13.13.2使用while等待檔案 369
13.13.3找出用戶占用的空間 370
13.13.4break和continue 371
13.14示例腳本2:向備份檔案提供數字擴展名 371
13.15用set和shift處理位置參數 373
13.15.1按名稱殺死進程 374
13.15.2shift:左移位置參數 374
13.15.3IFS變數:set的默認分隔設定 375
13.16示例腳本3:已下載檔案的目錄 376
13.17Here文檔(
13.18shell函式 379
13.19trap:腳本如何處理信號 380
13.20eval:兩次求值 381
13.21exec語句 382
13.22小結 382
13.23自測題 383
13.24習題 384
第14章perl——高級操縱器 387
14.1perl預備知識 388
14.2變數和常數 389
14.3運算符 391
14.3.1比較與邏輯運算符 391
14.3.2串聯運算符和重複運算符(.和x) 392
14.4標準條件句與循環 392
14.4.1if條件句 393
14.4.2while、do-while和for循環 393
14.5從命令行參數讀取檔案 394
14.5.1用單行代碼讀取檔案 395
14.5.2在腳本中讀取檔案 395
14.6當前行號($.)和範圍
運算符(..) 396
14.7$_:默認變數 396
14.8字元串處理函式 397
14.9列表和數組 399
14.10foreach:循環遍歷
一個列表 401
14.11兩個重要的列表函式 402
14.11.1split:分割到列表或
數組中 402
14.11.2join:聯接列表 404
14.12dec2bin.pl:將十進制數
變換為二進制 404
14.13關聯數組 405
14.14使用正則表達式 407
14.14.1識別空白、數位和單詞 407
14.14.2IRE的TRE功能 408
14.15用s和tr函式替換 409
14.16檔案處理 411
14.17檔案測試 412
14.18子例程 413
14.19用perl進行CGI程式設計——概述 414
14.19.1查詢字元串 414
14.19.2GET和POST:
請求方法 415
14.20小結 415
14.21自測題 416
14.22習題 417
第15章C語言簡介 421
15.1C語言 422
15.2first_prog.c:理解我們的第一個C程式 423
15.2.1預處理器部分 424
15.2.2主體 424
15.2.3main:獨一無二的函式 425
15.3printf和scanf:兩個重要函式 426
15.3.1printf:列印到終端 426
15.3.2scanf:由鍵盤輸入 427
15.4變數和常數 427
15.5基本數據類型 428
15.5.1整型 428
15.5.2浮點類型 429
15.5.3字元類型 430
15.6sizeof.c:確定基本數據
類型的大小 431
15.7符號常量:有名稱的常量 432
15.8數組 432
15.9arrays.c:列印數組元素 433
15.10結構 434
15.11運算符和表達式 435
15.11.1位運算符 436
15.11.2自動變換 436
15.11.3隱式變換 437
15.12type_conversion.c:演示類型變換 438
15.13求值順序 440
15.13.1運算符優先權 440
15.13.2運算符結合性 441
15.14控制流回顧 441
15.14.1用switch進行決策 442
15.14.2用do-while重複 443
15.14.3break和continue 443
15.15函式 444
15.16first_func.c:兩個參數和
返回值 445
15.17函式實參、形參和局部
變數 446
15.17.1按值傳遞 447
15.17.2swap_failure.c:形參與局部變數的可見性 448
15.17.3以數組為函式實參 449
15.17.4以結構作為函式實參 450
15.18指針 450
15.19pointers.c:指針的基本功能 452
15.20指針屬性 453
15.20.1指針運算 453
15.20.2其他屬性 454
15.21指針和函式 455
15.21.1解決交換問題 455
15.21.2用指針返回多個值 456
15.22指針和其他數據類型 456
15.22.1指針和數組 456
15.22.2指針和字元串 457
15.22.3字元串數組 458
15.22.4指針和結構 458
15.23小結 459
15.24自測題 460
15.25習題 461
第16章程式開發工具 463
16.1處理擁有多個源檔案的C應用程式 463
16.1.1包含多個源檔案的應用程式 464
16.1.2編譯和連結應用程式 466
16.1.3為什麼需要.o檔案 467
16.2make:使程式保持最新 468
16.2.1刪除冗餘 470
16.2.2make的其他功能:清理與備份 470
16.2.3宏 471
16.3ar:生成庫(檔案) 472
16.3.1使用庫 473
16.3.2用make維護檔案 474
16.4靜態庫和共享庫 474
16.5用SCCS、RCS和CVS
實現版本控制 475
16.6SCCS會話 476
16.6.1admin:創建一個SCCS檔案 477
16.6.2get:簽出 477
16.6.3delta:簽入 478
16.6.4unget:如果改變主意 480
16.7活動與歷史信息 481
16.7.1sact:顯示活動狀態 481
16.7.2prs:顯示SCCS歷史 481
16.8繼續以SCCS編輯 482
16.8.1get-r:改變默認的
編號順序 482
16.8.2處理多個版本 483
16.8.3rmdel和comb:刪除和
合併版本 484
16.8.4使用標識關鍵字 485
16.9控制對SCCS的訪問許可權 486
16.9.1控制用戶訪問 486
16.9.2控制發布版本 486
16.10版本控制系統(RCS) 487
16.10.1用ci創建RCS檔案 488
16.10.2co和ci:簽出和簽入 488
16.10.3指定修訂 489
16.10.4rlog和rcs:其他
RCS功能 490
16.11並發版本系統(CVS) 492
16.11.1建立存儲庫 493
16.11.2導入檔案 493
16.11.3簽出 494
16.11.4編輯和簽入 494
16.11.5合併和解決衝突 495
16.11.6設定標記並導出
存儲庫 496
16.11.7其他功能 496
16.12用gdb調試程式 497
16.12.1啟動gdb 500
16.12.2使用斷點 501
16.12.3單步執行程式 502
16.12.4再賦值 503
16.12.5設定觀察點 504
16.12.6gdb的其他功能 505
16.13小結 506
16.14自測題 506
16.15習題 507
第17章系統程式設計I——檔案 509
17.1系統調用的基礎知識 510
17.1.1系統調用剖析 510
17.1.2系統調用與庫
函式的對比 510
17.2errno和perror:處理錯誤 511
17.3open:打開和創建檔案 513
17.4close:關閉檔案 515
17.5read:讀取檔案 516
17.6write:寫檔案 516
17.7ccp.c:複製檔案 517
17.8lseek:定位偏移指針 519
17.9truncate和ftruncate:截短檔案 521
17.10umask:在創建期間修改檔案許可權 522
17.11目錄導航 523
17.12讀取目錄 524
17.13修改目錄中的項目 526
17.13.1mkdir和rmdir:創建和刪除目錄 526
17.13.2link和symlink:創建硬連結和符號連結 526
17.13.3unlink:刪除連結 527
17.13.4rename:對檔案、目錄或符號連結重命名 527
17.14讀取Inode:structstat和stat 528
17.14.1attributes.c:顯示一些檔案屬性 529
17.14.2S_IFMT:處理st_mode成員 530
17.14.3用S_ISxxx宏確定檔案類型 530
17.14.4訪問許可權位 531
17.14.5lsdir.c:僅列出目錄 531
17.15access:檢查實際用戶的許可權 533
17.16修改檔案屬性 534
17.16.1chmod和fchmod:
改變檔案許可權 535
17.16.2chown:改變所有權 535
17.16.3utime:改變時間戳記 536
17.16.4atimemtime.c:創建一個具有相同時間
戳記的檔案 536
17.17小結 537
17.18自測題 538
17.19習題 539
第18章系統程式設計II
——進程控制 541
18.1進程回顧 541
18.1.1虛擬地址空間 542
18.1.2進程表 543
18.2進程環境 544
18.3fork:複製當前進程 545
18.4exec:進程創建的最終
步驟 547
18.4.1execl和execv:關鍵
成員 548
18.4.2其他exec成員 549
18.5收集退出狀態 550
18.5.1wait:當父進程等待時 550
18.5.2waitpid:一種功能更
強大的等待機制 551
18.6fork_exec_wait.c:使用
全部三個調用 552
18.7檔案共享 553
18.7.1檔案說明符表 554
18.7.2檔案表 554
18.7.3vnode表 555
18.7.4當連結發生變化時 555
18.8檔案說明符處理 556
18.8.1dup和dup2:複製檔案說明符 556
18.8.2redirection.c:最後討論重定向 557
18.8.3fcntl:對其推薦程度高於dup和dup2 559
18.9信號處理 559
18.10sigaction:安裝信號處理器 561
18.10.1signal.c:捕獲SIGALRM信號 563
18.10.2捕獲終端生成的信號 564
18.11killprocess.c:使用fork-exec-wait和SIGCHLD 565
18.12用未命名管道實現進程間通信 567
18.12.1和fork一起使用pipe 568
18.12.2pipe2.c:在管道中運行UNIX命令 569
18.13小結 570
18.14自測題 571
18.15習題 572
第III部分系統管理
第19章系統管理 577
19.1root:系統管理員的登錄 578
19.2管理員的特權 579
19.3用戶管理 580
19.3.1理解/etc/group 580
19.3.2理解/etc/passwd 581
19.3.3添加和修改用戶配置檔案 582
19.4維護安全 583
19.4.1受限制的shell 583
19.4.2Set-User-Id(SUID):臨時能力 584
19.4.3粘著位 585
19.5啟動與關機 585
19.5.1啟動 585
19.5.2關機 586
19.6init如何控制系統 587
19.6.1init如何創建shell 588
19.6.2rc腳本 589
19.7設備檔案 590
19.7.1塊設備和字元設備 590
19.7.2主次設備號 591
19.8檔案系統 591
19.8.1檔案系統的組成部分 592
19.8.2標準檔案系統及其類型 592
19.9載入和卸載檔案系統 593
19.9.1mount:載入檔案系統 593
19.9.2umount:卸載檔案系統 594
19.10fsck:檔案系統檢查 595
19.11管理磁碟空間 596
19.11.1df:報告空閒空間 596
19.11.2du:磁碟利用率 596
19.11.3find回顧:管理員的工具 597
19.12處理軟碟 597
19.12.1format和fdformat:格式化磁碟 598
19.12.2dd:複製磁碟 598
19.12.3處理DOS磁碟 598
19.13tar:備份檔案 600
19.13.1備份檔案(-c) 600
19.13.2恢復檔案(-x) 601
19.13.3顯示檔案(-t) 602
19.13.4其他選項 602
19.14用rpm安裝程式 603
19.14.1安裝和升級包 603
19.14.2刪除包 604
19.14.3查詢包 604
19.15小結 606
19.16自測題 607
19.17習題 607
附錄ACshell——程式設計構造 609
附錄BKorn和Bashshell
——獨有的程式設計構造 617
附錄CGNUemacs編輯器 625
附錄Dvi/vim命令參考 653
附錄E正則表達式超集 661
附錄F常用操作指南 665
附錄GASCII字元集 671
附錄H術語表 677
附錄I自測題解答 695