出版時(shí)間:2000-12 出版社:人民郵電出版社 作者:徐延明
內(nèi)容概要
本書介紹了Linux的編程環(huán)境,內(nèi)容包括Linux的系統(tǒng)級(jí)編程界面--系統(tǒng)調(diào)用,涉及文件系統(tǒng)管理、進(jìn)程管理、進(jìn)程間通信、線程管理、網(wǎng)絡(luò)編程等,并用實(shí)例展示了Linux的內(nèi)核接口。另外本書還詳細(xì)介紹了其他Linux下的編程工具,包括Perl、Shell、Awk (awk、Gawk)等,并用實(shí)例介紹了這幾種腳本語言工具的語法體系和應(yīng)用環(huán)境。書中介紹了其他各種編程工具的適用環(huán)境,讀者可根據(jù)具體的任務(wù)選擇最合適的編程工具。并且書中還用了相當(dāng)篇幅介紹了網(wǎng)絡(luò)編程與網(wǎng)絡(luò)安全,特別是專門介了用戶安全技術(shù)、程序員安全技術(shù)和系統(tǒng)管理員安全技術(shù),供讀者學(xué)習(xí)參考。
本書內(nèi)容翔實(shí),講述深入淺出,既適合初學(xué)者學(xué)習(xí)Linux的編程環(huán)境,也可作為有經(jīng)驗(yàn)的程序員的速查手冊(cè)。
書籍目錄
第一章 Linux的歷史和功能簡(jiǎn)介 1
1.1 什么是Linux 1
1.2 Linux的歷史 2
1.3 Linux的特點(diǎn) 3
1.4 Linux與自由軟件及GNU的關(guān)系 4
1.5 Linux的用途 6
1.5.1 個(gè)人UNIX工作站 6
1.5.2 X終端客戶 6
1.5.3 X應(yīng)用服務(wù)器 6
1.5.4 UNIX開發(fā)平臺(tái) 6
1.5.5 網(wǎng)絡(luò)服務(wù)器 7
1.5.6 Internet服務(wù)器 7
1.5.7 終端服務(wù)器、傳真服務(wù)器、Modem服務(wù)器 7
1.6 Linux的發(fā)行版本 7
1.7 Linux的不足之處 8
第二章 Linux程序開發(fā)工具簡(jiǎn)介 10
2.1 C語言的編譯器和調(diào)試器 10
2.1.1 GCC的基本用法 11
2.1.2 一些常用的選項(xiàng) 11
2.1.3 優(yōu)化選項(xiàng) 12
2.1.4 用gdb調(diào)試程序 12
2.1.5 圖形的調(diào)試工具xxgdb 16
2.1.6 cproto 17
2.1.7 grpof 17
2.1.8 其他工具 18
2.2 C++語言簡(jiǎn)介及其編譯器與調(diào)試器 18
2.2.1 為什么使用C++ 18
2.2.2 調(diào)試C++程序 20
2.2.3 調(diào)試異常處理 20
2.2.4 GNU的C++類庫 21
2.3 Make 25
2.3.1 Make簡(jiǎn)介 25
2.3.2 Makefile文件 27
2.3.3 make的內(nèi)建規(guī)則 29
2.3.4 使用autoconf和automake產(chǎn)生makefile 30
2.4 Xwpe 34
2.5 Shell簡(jiǎn)介 36
2.6 Perl語言簡(jiǎn)介 36
2.6.1 安裝Perl 37
2.6.2 運(yùn)行Perl腳本 37
2.7 awk簡(jiǎn)介 38
2.7.1 awk的用途 38
2.7.2 awk的特點(diǎn) 38
2.7.3 awk的歷史 38
2.8 小結(jié) 39
第三章 Linux下的文本編輯器 40
3.1 vi 簡(jiǎn)介 40
3.1.1 vi 基本觀念 40
3.1.2 vi的基本命令 41
3.1.3 vi高級(jí)應(yīng)用 42
3.2 Emacs簡(jiǎn)介 44
3.2.1 GNUEmacs的特點(diǎn) 45
3.2.2 GNUEmacs的基本用法 46
3.2.3 Emacs小結(jié) 51
3.3 其他編輯器 51
3.4 小結(jié) 52
第四章 Linux核心與系統(tǒng)調(diào)用 53
4.1 Linux的核心 53
4.2 系統(tǒng)調(diào)用的使用 54
4.3 系統(tǒng)調(diào)用與函數(shù)的區(qū)別 55
4.4 核心程序的結(jié)構(gòu) 56
4.5 小結(jié) 57
第五章 Linux的文件系統(tǒng) 58
5.1 操作文件的常用命令 58
5.2 Linux文件系統(tǒng)概述 61
5.3 Ext2文件系統(tǒng) 63
5.4 VFS 68
5.5 /proc文件系統(tǒng) 74
5.6 設(shè)備文件 74
5.7 操作文件的系統(tǒng)調(diào)用 75
5.7.1 文件描述字 75
5.7.2 open系統(tǒng)調(diào)用 76
5.7.3 close系統(tǒng)調(diào)用 77
5.7.4 read與write系統(tǒng)調(diào)用 77
5.7.5 creat系統(tǒng)調(diào)用 77
5.7.6 lseek系統(tǒng)調(diào)用 79
5.7.7 dup系統(tǒng)調(diào)用 83
5.7.8 link系統(tǒng)調(diào)用 85
5.7.9 unlink系統(tǒng)調(diào)用 86
5.7.10 fcntl系統(tǒng)調(diào)用 86
5.7.11 stat與fstat系統(tǒng)調(diào)用 88
5.7.12 access系統(tǒng)調(diào)用 93
5.7.13 chmod系統(tǒng)調(diào)用 94
5.7.14 chown系統(tǒng)調(diào)用 95
5.7.15 chdir系統(tǒng)調(diào)用 96
5.7.16 mkdir與rmdir系統(tǒng)調(diào)用 96
5.7.17 mknod系統(tǒng)調(diào)用 97
5.7.18 mount與umount系統(tǒng)調(diào)用 97
5.7.19 ftw系統(tǒng)調(diào)用 99
5.8 小結(jié) 100
第六章 進(jìn)程管理 101
6.1 進(jìn)程的概念 101
6.2 觀察進(jìn)程執(zhí)行 102
6.3 Linux的進(jìn)程管理 104
6.3.1 進(jìn)程ID 107
6.3.2 進(jìn)程調(diào)度 107
6.3.3 文件處理 109
6.3.4 虛擬內(nèi)存處理 109
6.3.5 創(chuàng)建一個(gè)進(jìn)程 110
6.3.6 執(zhí)行一個(gè)程序 111
6.4 創(chuàng)建進(jìn)程--fork和clone 112
6.4.1 fork()系統(tǒng)調(diào)用 112
6.4.2 system()系統(tǒng)調(diào)用 119
6.4.3 clone()系統(tǒng)調(diào)用 120
6.5 exec系統(tǒng)調(diào)用 121
6.6 進(jìn)程的優(yōu)先級(jí) 126
6.7 獲取/設(shè)置進(jìn)程信息 127
6.7.1 獲取進(jìn)程的PID號(hào) 127
6.7.2 獲取/設(shè)置進(jìn)程組信息 127
6.8 ptrace()系統(tǒng)調(diào)用 129
6.9 Linux的啟動(dòng)過程 129
6.10 小結(jié) 130
第七章 進(jìn)程間通信(IPC) 131
7.1 進(jìn)程間通信機(jī)制簡(jiǎn)介 131
7.1.1 信號(hào) 131
7.1.2 管道 133
7.2 System V IPC 機(jī)制 135
7.2.1 消息隊(duì)列 136
7.2.2 信號(hào)燈(semaphores) 137
7.2.3 共享內(nèi)存 138
7.3 IPC系統(tǒng)調(diào)用 139
7.4 信號(hào)處理 139
7.4.1 信號(hào)的基本概念 139
7.4.2 信號(hào)類型 140
7.4.3 處理信號(hào)的系統(tǒng)調(diào)用 142
7.5 Linux操縱管道的系統(tǒng)調(diào)用 147
7.5.1 pipe()系統(tǒng)調(diào)用 147
7.5.2 命名管道 153
7.6 UNIX System V IPC機(jī)制 158
7.6.1 IPC對(duì)象的內(nèi)容 158
7.6.2 消息隊(duì)列 159
7.6.3 共享內(nèi)存 165
7.6.4 信號(hào)燈 168
7.7 小結(jié) 175
第八章 Linux的多線程編程 176
8.1 簡(jiǎn)介 176
8.1.1 使用多線程的好處 176
8.1.2 Linux的線程結(jié)構(gòu) 176
8.1.3 Linux線程的缺點(diǎn) 179
8.2 Linux的線程庫應(yīng)用 181
8.2.1 創(chuàng)建線程 181
8.2.2 暫停線程 183
8.2.3 線程同步 185
8.2.4 線程的終止和終止處理程序 192
8.2.5 線程特定數(shù)據(jù)的處理函數(shù) 196
8.2.6 使用信號(hào)燈來同步線程 199
8.3 小結(jié) 201
第九章 網(wǎng)絡(luò)編程 203
9.1 TCP/IP簡(jiǎn)介 203
9.2 Linux中TCP/IP網(wǎng)絡(luò)的層結(jié)構(gòu) 205
9.3 BSD套接字接口 206
9.4 INET套接字層結(jié)構(gòu) 208
9.4.1 創(chuàng)建一個(gè)BSD套接字 208
9.4.2 綁定一個(gè)INET BSD套接字 209
9.4.3 連接一個(gè)INET BSD套接字 210
9.4.4 監(jiān)聽一個(gè)INET BSD套接字 210
9.4.5 接收一個(gè)連接請(qǐng)求 211
9.5 IP層 211
9.5.1 套接字緩沖區(qū) 211
9.5.2 接收IP包 212
9.5.3 發(fā)送IP包 213
9.5.4 數(shù)據(jù)分組 213
9.6 地址解析協(xié)議(ARP) 214
9.7 IP路由 215
9.7.1 路由緩存 216
9.7.2 傳送消息數(shù)據(jù)庫 216
9.8 網(wǎng)絡(luò)編程的基本概念 217
9.8.1 網(wǎng)絡(luò)地址 217
9.8.2 網(wǎng)絡(luò)端口 218
9.8.3 套接字 219
9.8.4 客戶/服務(wù)器模式(C/S) 219
9.9 阻塞與非阻塞 221
9.10 套接字網(wǎng)絡(luò)編程原理 221
9.11 網(wǎng)絡(luò)編程的系統(tǒng)調(diào)用 223
第十章 Linux的Shell 239
10.1 什么是Shell 239
10.1.1 DOS中的command.com文件 239
10.1.2 Linux中的內(nèi)核溝通界面 240
10.2 Linux中幾種不同的Shell 240
10.2.1 Bash Shell 240
10.2.2 C Shell 241
10.2.3 Korn Shell 241
10.2.4 ash Shell 241
10.2.5 zsh 241
10.3 Shell命令解釋程序 242
10.3.1 輸入輸出重新定向 242
10.3.2 管道線(pipelines) 243
10.3.3 后臺(tái)進(jìn)程 244
10.3.4 元字符及特殊字符 245
10.3.5 C Shell的交互功能 247
10.4 Shell的使用 249
10.4.1 Shell的進(jìn)入與退出 249
10.4.2 Shell的內(nèi)部指令和外部指令 250
10.5 Shell環(huán)境的初始化 251
10.6 小結(jié) 253
第十一章 Shell程序設(shè)計(jì) 254
11.1 Shell程序 254
11.2 Shell程序的變量和基本語法 257
11.2.1 Shell變量 257
11.2.2 test命令 259
11.2.3 控制結(jié)構(gòu) 263
11.2.4 Shell腳本程序中的函數(shù) 272
11.3 正則表達(dá)式 273
11.3.1 行首匹配符"^"和行尾匹配符"$" 273
11.3.2 單個(gè)字符匹配符"." 274
11.3.3 字符重復(fù)匹配符"*" 275
11.3.4 字符類匹配符"[]" 277
11.3.5 各種匹配符的組合使用 279
11.4 過濾器 280
11.4.1 三種常見的過濾器 281
11.4.2 過濾器中的重定向及管道 283
11.4.3 輸出類過濾器 285
11.4.4 grep命令和fgrep命令 287
11.4.5 grep命令與正則表達(dá)式 289
11.5 何時(shí)使用Shell程序 290
11.6 小結(jié) 291
第十二章 Perl語言簡(jiǎn)介 292
12.1 Perl的歷史 292
12.2 Perl的目標(biāo)和適用性 292
12.3 基本概念和概覽 293
12.4 小結(jié) 294
第十三章 Perl編程 295
13.1 變量 295
13.1.1 標(biāo)量變量 295
13.1.2 數(shù)組變量 295
13.2 字符串 296
13.2.1 單引字符串 296
13.2.2 雙引字符串 296
13.3 運(yùn)算符 297
13.3.1 數(shù)字運(yùn)算符 297
13.3.2 字符串運(yùn)算符 298
13.3.3 運(yùn)算符的優(yōu)先級(jí)和相關(guān)性 299
13.3.4 數(shù)字和字符串間的轉(zhuǎn)換 300
13.3.5 標(biāo)量變量運(yùn)算符 300
13.3.6 數(shù)組運(yùn)算符 302
13.4 控制結(jié)構(gòu) 305
13.4.1 語句塊 305
13.4.2 條件控制 305
13.4.3 循環(huán)控制 308
13.4.4 復(fù)雜控制結(jié)構(gòu) 310
13.5 關(guān)聯(lián)數(shù)組 314
13.5.1 關(guān)聯(lián)數(shù)組的變量 314
13.5.2 關(guān)聯(lián)數(shù)組的實(shí)量表示 314
13.5.3 關(guān)聯(lián)數(shù)組操作符 315
13.6 輸入輸出 316
13.6.1 從STDIN輸入 316
13.6.2 從操作符輸入 317
13.6.3 向STDOUT輸出 317
13.7 正則表達(dá)式 318
13.7.1 正則表達(dá)式的概念 318
13.7.2 正則表達(dá)式的簡(jiǎn)單應(yīng)用 318
13.7.3 模式 320
13.7.4 有關(guān)匹配操作符的詳細(xì)介紹 324
13.7.5 替換 327
13.8 函數(shù) 328
13.8.1 定義用戶函數(shù) 328
13.8.2 申請(qǐng)用戶函數(shù) 329
13.8.3 返回值 329
13.8.4 參數(shù) 330
13.8.5 函數(shù)中的局部變量 332
13.9 格式 334
13.9.1 定義格式 334
13.9.2 申請(qǐng)格式 336
13.9.3 字段句柄 337
13.9.4 頁頂格式 340
13.9.5 改變格式的缺省值 341
13.10 文件和目錄 343
13.10.1 文件句柄 343
13.10.2 文件句柄操作 344
13.10.3 目錄句柄 345
13.10.4 目錄句柄操作 345
13.10.5 文件操作 346
13.10.6 目錄操作--創(chuàng)建及刪除目錄 347
13.10.7 權(quán)限 348
13.11 進(jìn)程管理 348
13.11.1 使用system()和exec() 348
13.11.2 使用單引號(hào) 350
13.11.3 把進(jìn)程用作文件句柄 351
13.11.4 使用fork 351
13.11.5 發(fā)送和接收信號(hào) 353
13.12 小結(jié) 354
第十四章 awk基礎(chǔ) 355
14.1 基本awk概念 355
14.1.1 awk的由來 355
14.1.2 awk的版本介紹 355
14.1.3 awk的應(yīng)用 355
14.1.4 awk的特性 356
14.2 命令行和管道 356
14.3 模式和操作 358
14.3.1 模式和操作簡(jiǎn)介 358
14.3.2 簡(jiǎn)單正則表達(dá)式 359
14.3.3 復(fù)合正則表達(dá)式 360
14.4 腳本格式 362
14.5 基本運(yùn)算 363
第十五章 awk程序設(shè)計(jì) 365
15.1 變量 365
15.1.1 變量的類型 365
15.1.2 預(yù)定義變量 366
15.1.3 字符串變量 368
15.2 數(shù)組 370
15.3 條件控制 371
15.3.1 if語句 371
15.3.2 if-else語句 372
15.3.3 if-else if語句 372
15.3.4 空語句和條件語句 373
15.4 循環(huán)控制 373
15.4.1 do-while循環(huán) 374
15.4.2 for循環(huán) 374
15.4.3 while循環(huán) 375
15.4.4 break和continue語句 376
15.5 輸入輸出 377
15.5.1 輸入 377
15.5.2 輸出 379
15.6 函數(shù) 381
15.6.1 內(nèi)部函數(shù) 382
15.6.2 自定義函數(shù) 383
第十六章 安全問題剖析 386
16.1 安全問題概述 386
16.1.1 網(wǎng)絡(luò)安全 386
16.1.2 網(wǎng)絡(luò)安全的特征及其分類 388
16.1.3 安全機(jī)制和服務(wù)及加密機(jī)制 389
16.1.4 TCP/IP協(xié)議的安全問題及網(wǎng)絡(luò)攻擊方法 389
16.2 防火墻 390
16.2.1 防火墻的功能 390
16.2.2 防火墻的類型 391
16.2.3 防火墻的安全策略 393
第十七章 用戶安全技術(shù) 395
17.1 口令安全 395
17.2 文件許可權(quán) 395
17.3 目錄許可 396
17.4 umask命令 396
17.5 設(shè)置用戶ID和同組用戶ID許可 396
17.6 cp 、mv、 ln和cpio命令 397
17.7 su和newgrp命令 398
17.8 文件加密 398
17.9 其他安全問題 398
17.10 保持賬號(hào)安全的要點(diǎn) 400
第十八章 程序員安全技術(shù) 402
18.1 系統(tǒng)子程序的安全性 402
18.1.1 I/O子程序 402
18.1.2 進(jìn)程控制 402
18.1.3 文件屬性 403
18.1.4 UID和GID的處理 404
18.2 標(biāo)準(zhǔn)C庫子程序的安全性 405
18.2.1 標(biāo)準(zhǔn)I/O 405
18.2.2 /etc/passwd處理 405
18.2.3 /etc/group的處理 406
18.2.4 加密子程序 407
18.2.5 運(yùn)行Shell 407
18.3 編寫C程序的安全性 407
18.4 root程序設(shè)計(jì)的安全性 409
第十九章 系統(tǒng)管理員安全技術(shù) 411
19.1 文件系統(tǒng)安全 411
19.1.1 Linux文件系統(tǒng)概述 411
19.1.2 設(shè)備文件 412
19.1.3 /etc/mknod命令 412
19.1.4 安全考慮 413
19.1.5 find命令 413
19.1.6 secure程序 414
19.1.7 ncheck命令 414
19.1.8 安裝和拆卸文件系統(tǒng) 414
19.1.9 系統(tǒng)目錄和文件 415
19.2 超級(jí)用戶權(quán)限安全 415
19.2.1 增加、刪除、移走用戶 415
19.2.2 啟動(dòng)系統(tǒng) 416
19.2.3 init進(jìn)程 417
19.2.4 進(jìn)入多用戶 417
19.2.5 shutdown命令 417
19.2.6 /etc/profile 417
19.3 幾個(gè)重要文件和執(zhí)行環(huán)境的安全 418
19.3.1 /etc/passwd文件 418
19.3.2 /etc/group文件 419
19.3.3 執(zhí)行的環(huán)境 419
19.4 安全管理及安全審計(jì) 421
19.4.1 安全管理 421
19.4.2 安全審計(jì) 421
19.5 用戶及系統(tǒng)管理員安全意識(shí) 424
19.5.1 用戶安全意識(shí) 424
19.5.2 系統(tǒng)管理員意識(shí) 425
19.6 小結(jié) 427
圖書封面
評(píng)論、評(píng)分、閱讀與下載