GNU/Linux編程

GNU/Linux編程

《GNU/Linux編程》是2012年8月出版的圖書,作者是鄭謙益。本書介紹了Linux相關背景知識、Shell腳本語言的語法結構、基於C語言開發的GNU工具的使用方法等方面闡述。

基本介紹

  • 書名:GNU/Linux編程
  • 作者:鄭謙益
  • ISBN:978-7-115-28260-6
  • 頁數:240 頁
  • 定價:32.00 元
  • 裝幀:平裝
  • 開本:16開
基本信息,內容簡介,目錄,

基本信息

書 名 GNU/Linux編程(工業和信息化普通高等教育“十二五”規劃教材立項項目)
叢 書 名 21世紀高等教育計算機規劃教材
標準書號 ISBN 978-7-115-28260-6
作 者 鄭謙益 編著
責任編輯 董楠
開 本 16 開
印 張 15.5
字 數 407 千字
頁 數 240 頁
裝 幀 平裝
版 次 第1版第1次
初版時間 2012年8月
本 印 次 2012年8月
首 印 數 -- 冊

內容簡介

Linux作為一種自由和源碼開放的類UNIX作業系統,雖然誕生至今只有20年的時間,但已經在各個領域中得到了廣泛的套用,對軟體行業產生了深遠的影響。本書通過大量實例講述Linux環境下進行軟體開發所必須掌握的基礎知識。全書內容由四個部分組成,第一部分介紹Linux相關背景知識和GNU命令工具的使用方法;第二部分為Shell程式設計,講述Shell腳本語言的語法結構;第三部分介紹Linux開發環境,講述基於C語言開發的GNU工具的使用方法;第四部分為Linux環境下的C語言編程,系統講述與Linux核心有關的套用編程接口函式的使用方法。
本書可以作為高校計算機相關專業的高年級學生、研究生學習Linux編程的教材或教學參考書。

目錄

第一部分 Linux基礎
第1章 UNIX系統概述 2
1.1 UNIX的發展歷史 2
1.1.1 UNIX的產生與發展 2
1.1.2 UNIX的相關標準 3
1.2 GNU的誕生與發展 4
1.2.1 自由軟體計畫GNU 4
1.2.2 許可證協定 5
1.2.3 自由軟體和開源軟體 5
1.3 Linux核心 5
1.3.1 Minix作業系統 5
1.3.2 Linux的產生與發展 6
1.3.3 Linux核心版本 6
1.3.4 Linux核心的分類 6
1.4 Linux系統 6
1.4.1 Linux系統的概念 6
1.4.2 GNU/Linux 7
1.4.3 Linux發行版 7
1.5 Linux系統的商業運營模式 8
第2章 Shell命令 9
2.1 Shell命令概述 9
2.1.1 目錄的組織結構 9
2.1.2 檔案的路徑 10
2.1.3 Linux命令的語法結構 10
2.1.4 Shell命令的分類 11
2.1.5 在線上幫助 11
2.2 目錄和檔案操作 11
2.2.1 目錄操作 11
2.2.2 檔案操作 12
2.2.3 顯示文本檔案內容 15
2.2.4 硬連結和軟連結 16
2.3 用戶和用戶組管理 16
2.3.1 用戶的分類 16
2.3.2 用戶組管理 16
2.3.3 用戶管理 17
2.3.4 用戶屬性的修改 18
2.3.5 用戶管理相關配置檔案 18
2.4 檔案的許可權管理 19
2.4.1 檔案屬性 19
2.4.2 許可權的修改 21
2.4.3 許可權驗證 22
2.4.4 許可權掩碼umask 23
2.4.5 檔案和目錄許可權的計算 23
2.5 進程管理 24
2.5.1 進程的管理信息 24
2.5.2 與進程相關的命令 25
2.6 Linux的備份與恢復 28
2.6.1 面向檔案的備份與恢復 28
2.6.2 面向檔案系統的備份 30
2.6.3 面向設備的備份與恢復 31
2.7 Linux套用軟體包管理 32
2.7.1 套用軟體包的分類 32
2.7.2 RPM軟體包的管理 32
2.8 輸入輸出重定向和管道 33
2.8.1 標準輸入輸出檔案的定義 33
2.8.2 輸入輸出重定向 34
2.8.3 管道 34
2.9 元字元與正則表達式 35
2.9.1 元字元 35
2.9.2 正則表達式 36
第3章 Linux系統的定製 38
3.1 磁碟管理 38
3.1.1 硬碟的物理結構 38
3.1.2 磁碟分區 39
3.1.3 分區格式化 41
3.1.4 ext2檔案系統 43
3.1.5 檔案系統的掛載與卸載 44
3.2 引導載入程式 grub 45
3.2.1 引導載入的概念 45
3.2.2 引導載入程式grub 46
3.2.3 grub互動命令 47
3.2.4 grub的啟動過程 48
3.3 Linux核心定製 49
3.3.1 Linux核心 49
3.3.2 定製Linux核心 50
3.4 Linux套用環境的初始化 50
3.4.1 引導配置檔案inittab 50
3.4.2 用戶登錄 53
第二部分 Shell程式設計
第4章 Shell程式設計 56
4.1 Shell概述 56
4.2 Shell腳本的定義與執行 57
4.3 Shell變數 58
4.3.1 Shell變數的分類 58
4.3.2 命令替換 61
4.4 輸入和輸出 62
4.5 Shell中的引號 63
4.5 條件表達式 65
4.5.1 條件表達式 65
4.5.2 命令分隔設定 68
4.6 判斷語句 68
4.6.1 條件語句 68
4.6.2 分支語句 71
4.7 循環語句 73
4.7.1 for循環語句 73
4.7.2 while語句 75
4.7.3 until語句 76
4.8 函式 77
第三部分 CNU C語言開發環境
第5章 GNU C開發環境 82
5.1 GNU C編譯器 82
5.1.1 目標代碼的生成 82
5.1.2 GCC概述 83
5.1.3 GNU C編譯連結工具 83
5.2 項目管理工具—GNU make 85
5.2.1 項目管理概述 85
5.2.2 基於make工具的項目管理 86
5.2.3 Makefile中的變數 88
5.2.4 Makefile檔案中的潛規則 90
5.3 創建和使用函式館 92
5.3.1 靜態庫 93
5.3.2 共享庫 95
5.3.3 動態程式庫 96
5.4 GNU C函式館—glibc 98
第四部分 Linux環境下的C語言編程
第6章 Linux檔案與目錄 102
6.1 Linux檔案系統概述 102
6.1.1 檔案系統的概念 102
6.1.2 虛擬檔案系統 102
6.1.3 檔案系統的結構 103
6.1.4 套用編程接口 104
6.2 檔案的基本輸入輸出 105
6.2.1 檔案操作 105
6.2.2 標準輸入輸出檔案的定義 108
6.2.3 編程實例 108
6.3 檔案屬性操作 111
6.3.1 獲得檔案屬性 111
6.3.2 修改檔案存取許可權 114
6.3.3 改變檔案的屬主和屬組 115
6.4 目錄操作 116
6.4.1 目錄操作 117
6.4.2 瀏覽目錄中的檔案 119
6.5 標準I/O庫 120
6.5.1 標準I/O庫概述 120
6.5.2 檔案操作 121
6.5.3 格式化輸入與輸出 124
6.5.4 刷新緩衝區 127
6.6 I/O重定向 129
6.6.1 檔案描述符 129
6.6.2 I/O重定向 129
6.6.3 實現重定向的方法 129
第7章 Linux信號 133
7.1 信號概述 133
7.1.1 信號的概念 133
7.1.2 套用編程接口 133
7.2 Linux系統中的信號 134
7.2.1 Linux系統中的信號 134
7.2.2 信號的分類 136
7.2.3 Linux信號的產生 136
7.2.4 信號的處理方式 136
7.2.5 信號的處理流程 136
7.3 信號的定義 136
7.3.1 設定信號的行為 137
7.3.2 信號處理函式 139
7.3.3 定義多個信號 139
7.3.4 信號的阻塞 142
7.4 傳送信號 143
7.5 計時器 146
7.5.1 睡眠延遲 146
7.5.2 間隔計時器 150
第8章 Linux進程 154
8.1 Linux進程概述 154
8.1.1 Linux進程 154
8.1.2 套用編程接口 155
8.2 進程的地址空間 155
8.2.1 進程的地址空間 155
8.2.2 環境變數相關操作 159
8.2.3 命令行參數的引用 160
8.2.4 動態記憶體管理 161
8.3 進程的創建與終止 162
8.3.1 創建進程 162
8.3.2 程式的啟動與結束 164
8.4 載入可執行映像 167
8.4.1 ELF格式 167
8.4.2 執行檔的載入 168
8.5 進程同步控制 173
8.5.1 等待子進程結束 173
8.5.2 等待指定子進程 176
8.6 Linux進程環境 179
8.6.1 用戶和用戶組 179
8.6.2 進程和進程組 180
8.6.3 會話 184
8.6.4 守護進程 185
第9章 Linux進程通信 187
9.1 進程通信概述 187
9.1.1 進程通信方式 187
9.1.2 套用編程接口 187
9.2 管道 188
9.2.1 無名管道 188
9.2.2 命名管道 192
9.3 IPC概述 193
9.4 信號量 193
9.4.1 創建信號量 194
9.4.2 獲得與釋放信號量 195
9.4.3 信號量的控制操作 197
9.5 訊息佇列 198
9.5.1 創建訊息佇列 199
9.5.2 傳送訊息 200
9.5.3 接收訊息 201
9.5.4 設定訊息佇列屬性 203
9.6 共享記憶體 206
9.6.1 創建共享記憶體 206
9.6.2 共享記憶體映射的建立與釋放 207
9.6.3 設定共享記憶體屬性 208
第10章 I/O操作模式 212
10.1 I/O操作模式概述 212
10.1.1 I/O操作模式 212
10.1.2 套用編程接口 213
10.2 同步阻塞I/O模式 214
10.2.1 基本概念 214
10.2.2 存在的問題 214
10.2.3 解決方法 215
10.3 同步非阻塞I/O模式 215
10.3.1 基本概念 215
10.3.2 實現方法 216
10.4 多路復用I/O模式 218
10.4.1 基本概念 218
10.4.2 實現方法 219
10.5 信號驅動的I/O模式 221
10.5.1 基本概念 221
10.5.2 實現方法 221
10.6 異步I/O模式 223
10.6.1 基本概念 223
10.6.2 實現方法 223
10.7 記憶體的I/O映射 227
10.7.1 基本概念 227
10.7.2 實現方法 227
10.8 檔案鎖 229
10.8.1 檔案鎖的類型 229
10.8.2 基於flock函式實現檔案鎖 230
10.8.3 利用fcntl函式實現檔案加鎖 231
10.9 終端I/O 233
10.9.1 終端的行為模式 234
10.9.2 終端模式的設定 234
10.9.3 終端I/O的編程接口 236
參考文獻 240

相關詞條

熱門詞條

聯絡我們