第1篇 Linux命令及其工具
第1章 Linux系統(tǒng)與命令 2
1.1 Linux操作系統(tǒng) 2
1.1.1 Linux重要概念 2
1.1.2 Linux組成 3
1.1.3 Linux目錄結構 3
1.1.4 Linux操作系統(tǒng)的組成 5
1.1.5 Linux用戶管理 6
1.1.6 Linux文件管理 6
1.2 Linux命令 7
1.2.1 Linux命令幫助 7
1.2.2 Linux命令的符號及意義 8
1.2.3 Linux命令 9
第2章 Linux常用實用工具 18
2.1 正則表達式 18
2.2 find查找命令 20
2.2.1 find語法 20
2.2.2 find實例練習 22
2.3 sed 24
2.3.1 sed語法 24
2.3.2 sed實例練習 26
2.4 awk 29
2.4.1 awk語法 29
2.4.2 awk實例練習 36
第3章 Shell編程 40
3.1 Shell環(huán)境變量 40
3.1.1 環(huán)境變量說明 40
3.1.2 用戶常用的系統(tǒng)環(huán)境變量 41
3.1.3 用戶登錄腳本示例 42
3.2 Shell的符號、變量及運行 43
3.2.1 Shell中的符號及其含義 43
3.2.2 “反引號命令替換 44
3.2.3 Shell變量 45
3.2.4 Shell腳本執(zhí)行 50
3.2.5 Shell退出狀態(tài) 50
3.3 Shell的輸入和輸出 51
3.3.1 Shell的輸入 51
3.3.2 Shell的輸出 52
3.4 Shell測試條件 53
3.5 Shell的流程控制結構 57
3.5.1 if語句 57
3.5.2 case語句 59
3.5.3 while語句 60
3.5.4 until語句 61
3.5.5 for語句 62
3.5.6 跳轉語句 64
3.6 Shell數組 64
3.7 Shell函數 65
3.8 I/O重定向 67
3.9 Shell內置命令 68
3.10 實用Shell腳本 73
第2篇 Linux C語言程序設計
第4章 C語言基礎 76
4.1 C語言基本概念 76
4.2 常量與變量 84
4.3 運算符 89
4.4 C語言控制結構 96
4.4.1 if語句 97
4.4.2 switch語句 100
4.4.3 goto語句 101
4.4.4 while語句 102
4.4.5 do-while語句 103
4.4.6 for語句 104
4.4.7 break和continue語句 106
第5章 C語言函數 107
5.1 函數簡述 107
5.2 函數變量 110
5.3 函數定義與調用 110
5.3.1 函數定義 110
5.3.2 函數的參數與返回值 111
5.3.3 函數調用 115
第6章 C語言數組、結構體及指針 119
6.1 C語言數組 119
6.1.1 數組概述 119
6.1.2 一維數組 120
6.1.3 二維數組 124
6.1.4 字符數組 127
6.1.5 冒泡法排序 128
6.2 C語言結構 129
6.2.1 結構概念 129
6.2.2 結構變量 131
6.3 指針 134
6.3.1 指針概念 134
6.3.2 sizeof、void、const說明 139
6.3.3 指針變量作為函數參數 140
6.3.4 指針的運算 142
6.3.5 指向數組的指針變量 144
6.3.6 數組名作為函數參數 146
6.3.7 函數指針變量 148
6.3.8 返回指針類型函數 149
6.3.9 指向指針的指針 150
6.3.10 結構指針 150
6.3.11 動態(tài)存儲分配 152
6.3.12 指針鏈表 153
6.3.13 指針數據類型小結 154
第7章 C語言預處理 156
7.1 define宏定義 156
7.2 typedef重定義 157
7.3 inline關鍵字 158
7.4 條件編譯 158
7.5 頭文件的使用 159
第8章 格式化I/O函數 161
8.1 格式化輸出函數 161
8.1.1 輸出函數原型 161
8.1.2 輸出函數格式說明 162
8.2 格式化輸入函數 165
8.2.1 輸入函數原型 165
8.2.2 輸入函數格式說明 165
第9章 字符串和內存操作函數 169
9.1 字符串操作函數說明 169
9.2 字符串函數操作 170
9.3 字符類型測試函數 179
9.4 字符串轉換函數 180
第10章 標準I/O文件編程 182
10.1 文件打開方式 183
10.2 標準I/O函數說明及程序范例 185
第11章 Linux C語言開發(fā)工具 200
11.1 vi與vim 200
11.1.1 vi與vim概述 200
11.1.2 指令模式 201
11.1.3 末行模式 207
11.1.4 vim個人使用經驗 210
11.1.5 vim的使用 211
11.1.6 文件編碼 214
11.1.7 vi與vim模擬練習 217
11.2 gcc 218
11.2.1 gcc簡要說明 218
11.2.2 gcc參數 220
11.3 Makefile 224
11.3.1 Makefile簡介 225
11.3.2 Makefile語法 227
11.3.3 Makefile的運行 231
11.3.4 Makefile的擴展話題 232
11.4 gdb 233
11.4.1 gdb語法 233
11.4.2 gdb調試 238
第3篇 Linux進程
第12章 Linux進程編程 242
12.1 Linux進程編程基本概念 242
12.1.1 登錄 242
12.1.2 文件和目錄 243
12.1.3 輸入和輸出 243
12.1.4 程序與進程 244
12.1.5 ANSI C 245
12.1.6 用戶標識 247
12.1.7 出錯處理 247
12.1.8 Linux信號、時間值與系統(tǒng)調用 249
12.2 Linux進程環(huán)境 256
12.3 Linux進程控制 267
12.4 進程關系 289
12.5 守護進程與多進程并發(fā)案例 293
12.5.1 守護進程的編寫 293
12.5.2 多進程并發(fā)項目案例 296
第13章 Linux線程編程 300
13.1 線程簡要說明 300
13.2 線程主要函數 302
13.3 線程編程 308
13.3.1 線程創(chuàng)建 308
13.3.2 終止線程 310
13.3.3 線程互斥 312
13.3.4 線程同步 315
第14章 Linux進程間通信——管道與信號 318
14.1 進程間通信概述 318
14.2 管道 319
14.2.1 pipe管道 320
14.2.2 標準流管道 324
14.2.3 命名管道(FIFO) 325
14.3 信號 328
14.3.1 信號概述 328
14.3.2 信號的發(fā)送和捕捉函數 332
14.3.3 信號的處理 337
第15章 System V進程間通信 346
15.1 System V進程間通信的鍵值 346
15.2 消息隊列 350
15.2.1 消息隊列簡要說明 351
15.2.2 消息隊列函數 352
15.2.3 消息隊列使用程序范例 355
15.3 信號量 360
15.3.1 信號量簡要說明 360
15.3.2 信號量函數 361
15.3.3 信號量應用程序示例 364
15.4 共享內存 366
15.4.1 共享內存簡要說明 366
15.4.2 共享內存函數 368
15.4.3 共享內存應用范例 370
第4篇 Linux文件
第16章 Linux文件編程 376
16.1 文件系統(tǒng)函數 376
16.2 初級文件I/O函數 392
16.3 標準I/O的緩沖和刷新 399
第5篇 網絡編程
第17章 網絡知識基礎 402
17.1 網絡體系結構及協(xié)議 402
17.1.1 網絡體系結構概念 402
17.1.2 TCP/IP模型 405
17.1.3 網絡分類與廣域網 407
17.1.4 網絡地址 410
17.2 TCP/IP協(xié)議簇報文格式 412
第18章 Socket編程 416
18.1 套接字說明及函數說明 416
18.1.1 套接字說明 416
18.1.2 Socket地址說明及轉換函數 419
18.1.3 Socket主要函數說明 424
18.2 TCP套接字編程 432
18.2.1 TCP套接字編程模型 432
18.2.2 迭代服務器編程 436
18.2.3 并發(fā)服務器編程 437
18.3 TCP文件服務器項目案例 443
18.4 UDP編程 458
18.4.1 普通UDP服務器編程 458
18.4.2 UDP廣播 461
18.4.3 UDP多播 464
18.5 原始套接字 469
18.5.1 原始套接字說明 469
18.5.2 原始套接字舉例 471
18.6 本地進程間套接字 478
18.6.1 非命名UNIX域套接字管道 478
18.6.2 UNIX域套接字 479
18.7 I/O編程模型 483
第6篇 XML編程