Linux程式設計——技術技巧與項目實踐

圖書信息

Linux程式設計——技術技巧與項目實踐

作者:余有明 編著

出版日期:2012年9月 書號:978-7-122-14058-6

開本:16 裝幀:平 版次:1版1次 頁數:232頁

內容簡介

全書共分十章,從了解Linux的基礎知識到基本掌握Linux的編程環境的搭建,從在Linux環境下掌握基本的Linux技能到重點學習shell編程和C編程的理念與技術,在此基礎上再深入學習檔案系統編程、進程調度與通信編程、執行緒編程與網路編程技術,最後給出了鞏固學習過程的實踐項目。

本書可作為高等院校計算機、電氣信息和控制類專業的本科生和研究生學習Linux系統與編程的專業基礎教材,也可以供廣大希望從事Linux環境下工作和轉入嵌入式領域的科研與工程技術人員自學或參考使用。

圖書目錄

第1章 LINUX概述 1

1.1 Linux的淵源 1

1.2 Linux的發行版本 2

1.3 Linux的特性與生命力 2

1.4 Linux用戶應該掌握的50個常用命令 2

1.5 Linux編程學習指導 2

1.6 實戰技巧:Linux平台下的軟體自動安裝與升級工具 APT與YUM 3

1.6.1 APT的用法 3

1.6.2 YUM的用法 4

第2章 構建LINUX編程環境 7

2.1 Linux編程環境概述 7

2.1.1 編程環境的風格 7

2.1.2 Linux下的編程環境與工具 7

2.1.3 Linux下的編程分類 8

2.1.4 Linux幫助套用指南 8

2.2 基本名詞術語與硬體需求 9

2.2.1 系統操作術語 9

2.2.2 系統特性術語 10

2.2.3 系統硬體需求與安裝準備 11

2.3 Linux系統的多元化安裝 11

2.3.1 裸機上的安裝與卸載過程 11

2.3.2 多系統共享的安裝過程 18

2.3.3 在Windows下VMware中的Linux的安裝過程 19

2.3.4 用Cygwin軟體創建Linux仿真環境 20

2.3.5 即時系統Ubuntu Linux和WinPE 21

2.4 Linux下軟體的安裝與卸載 22

2.4.1 二進制分發軟體包的安裝與卸載 23

2.4.2 軟體包的安裝與卸載 23

2.5 Xshell的安裝與使用 24

2.6 代碼閱讀工具Source Insight 24

2.7 實戰技巧: VMware tools的安裝與多平台下的資料夾共享 25

2.7.1 VMware tools的安裝 25

2.7.2 多平台下的資料夾共享 26

第3章 LINUX套用技術 27

3.1 系統管理與維護技術 27

3.1.1 系統註銷關機或重啟命令 27

3.1.2 顯示登錄用戶信息命令 28

3.1.3 賬號管理命令 28

3.1.4 修改密碼的passwd命令 30

3.1.5 顯示與時間設定命令 30

3.1.6 磁碟空間管理命令 30

3.2 檔案與目錄操作技術 31

3.2.1 檔案系統認識與許可權設定 31

3.2.2 列表與分屏顯示命令 32

3.2.3 切換創建與刪除目錄的命令 33

3.2.4 檔案複製刪除與合併命令 33

3.2.5 檔案目錄的移動與更名和路徑顯示命令 34

3.2.6 重定向與管道命令 35

3.2.7 改變檔案訪問許可權與歸屬的命令 35

3.2.8 檔案定位搜尋與查找命令 36

3.3 前後台程式的運行與狀態切換 38

3.4 任務調度技術 38

3.4.1 系統工作調度 38

3.4.2 用戶工作任務調度與刪除 38

3.5 檔案的打包與壓縮解壓縮 39

3.6 進程管理技術 39

3.6.1 命令ps的用法 39

3.6.2 命令top的用法 40

3.6.3 殺死進程命令kill 41

3.7 控制提示符與命令組合 42

3.8 編輯器Vi的套用技術 42

3.8.1 Vi的三種執行模式 42

3.8.2 基本操作 43

3.8.3 查找和替換 44

3.9 實戰技巧:非空目錄刪除與終端字型大小改變 45

3.9.1 Linux系統中非空目錄的刪除 45

3.9.2 改變XTerm的字型大小的方法 46

第4章 SHELL基礎與編程技術 47

4.1 Shell概述 47

4.2 shell程式設計基礎 48

4.3 Shell基本命令 50

4.3.1 內部命令 51

4.3.2 外部命令 51

4.3.3 命令分組 51

4.3.4 函式 51

4.3.5 Shell的命令組合 53

4.3.6 Shell特殊字元 54

4.4 Shell變數 55

4.4.1 用戶自定義變數 55

4.4.2 變數的類型聲明 56

4.4.3 數組變數 56

4.4.4 變數的引用 57

4.4.5 鍵盤輸入變數 58

4.4.6 位置變數 58

4.4.7 預定義特殊變數 59

4.4.8 環境變數與置換變數 59

4.4.9 算術運算 60

4.5 Shell程式流程 60

4.5.1 測試語句test 60

4.5.2 條件語句if 62

4.5.3 開關語句case 63

4.5.4 循環語句for 64

4.5.5 循環語句while 66

4.5.6 循環語句until 67

4.5.7 循環控制命令break和continue 67

4.5.8 流程控制select 67

4.5.9 shift語句和repeat語句 68

4.6 程式調試 69

4.7 Shell編程綜合範例 71

4.7.1 系統自動備份程式設計 71

4.7.2 終端顏色搭配的color腳本 71

4.7.3 目錄選單編製程序 72

4.7.4 問題互動圖形化設計例程 72

4.7.5 計算兩日期間的天數例程 75

4.7.6 系統信息測試與顯示例程 77

4.8 實戰技巧:系統資源查看與多命令執行 79

4.8.1 使用vmstat命令來查看系統資源情況 79

4.8.2 使用分號同時執行多條命令 79

第5章 C程式設計技術 80

5.1 管中窺豹學Linux下的C編程 80

5.2 GCC編譯器套用解析 81

5.2.1 編譯器的工作過程 81

5.2.2 GCC編譯選項 81

5.2.3 GCC編譯過程與遊戲編程 82

5.3 GDB調試技術 85

5.3.1 調試編譯與選項 86

5.3.2 程式調試設定 86

5.3.3 線上調試過程 87

5.3.4 在GDB中查看源程式 89

5.3.5 在GDB中查看棧信息 90

5.3.6 在GDB中查看運行數據 91

5.3.7 在GDB中改變程式的執行路線 93

5.3.8 在不同語言中使用GDB 93

5.4 Make工程管理器 94

5.4.1 Makefile檔案 94

5.4.2 make命令 95

5.4.3 makefile變數 96

5.4.4 Makefile規則 98

5.5 多檔案項目的Autotools套用 99

5.5.1 Autotools基本工具 99

5.5.2 Autotools製作Makefile基本流程例解 99

5.5.3 用make完成程式安裝和發布 102

5.6 Linux下的C程式設計實踐 103

5.6.1 檔案拷貝程式設計 103

5.6.2 猜數字遊戲設計 104

5.6.3 進程調用程式設計 105

5.6.4 管道通信程式設計 106

5.6.5 “巧抓竊賊”程式設計 106

5.7 實戰技巧:Linux啟動模式與定時任務設定 107

5.7.1 Linux系統的命令行與X圖形模式啟動的設定與切換 107

5.7.2 定時任務設定 108

第6章 LINUX檔案系統與編程 109

6.1 檔案系統概述 109

6.1.1 檔案系統的目錄樹 109

6.1.2 檔案系統的結構 110

6.1.3 Ext2檔案系統 111

6.1.4 VFS 115

6.2 設備檔案 116

6.2.1 設備檔案概述 116

6.2.2 設備驅動程式 116

6.2.3 中斷處理 116

6.2.4 設備驅動程式的框架 117

6.3 檔案的系統調用 117

6.3.1 檔案的創建和讀寫 117

6.3.2 檔案的各個屬性 119

6.3.3 目錄檔案的操作 120

6.4 檔案系統的設計與實現 121

6.5 實戰技巧:消除XWindows下的當機現象 133

第7章 進程調度與通信編程 134

7.1 Linux下的進程概述 134

7.1.1 進程的概念 134

7.1.2 Linux進程的PCB結構 135

7.1.3 Linux進程的組織方式 136

7.1.4 Linux進程的異常檢測 137

7.2 進程的系統調用 137

7.2.1 getpid的用法 137

7.2.2 fork的用法與多進程解惑 138

7.2.3 exit和_exit 139

7.3 進程間通信 141

7.3.1 管道通信 141

7.3.2 管道技術 142

7.3.3 無名管道編程 142

7.3.4 命名管道編程 145

7.3.5 信號通信 146

7.4 信號 148

7.4.1 信號常識 148

7.4.2 常用信號定義 148

7.4.3 信號的接收 148

7.4.4 信號的傳送 150

7.4.5 共享記憶體 151

7.4.6 訊息佇列 152

7.5 守護進程 155

7.5.1 守護進程基礎 155

7.5.2 守護進程的特點 156

7.5.3 守護進程的啟動方式 156

7.5.4 守護進程的錯誤輸出 156

7.5.5 守護進程的編程要點 157

7.5.6 守護進程案例 158

7.6 實戰技巧:巧妙使用Tab鍵 160

第8章 執行緒編程技術 161

8.1 執行緒thread的內涵 161

8.2 執行緒調用 161

8.2.1 執行緒的定義 161

8.2.2 執行緒的分類 162

8.2.3 執行緒的實現 162

8.2.4 Linux執行緒實現機制分析 163

8.3 多執行緒編程實踐 167

8.4 執行緒的數據處理 169

8.4.1 執行緒數據 169

8.4.2 互斥鎖 170

8.4.3 條件變數 173

8.4.4 信號量 175

8.5 多執行緒編程 177

8.5.1 執行緒的創建和終止 177

8.5.2 執行緒控制函式 177

8.5.3 執行緒間的互斥 178

8.5.4 執行緒間的同步 178

8.5.5 修改執行緒的屬性 178

8.5.6 多執行緒編程解決生產者和消費者問題 180

8.6 實戰技巧:拷貝與貼上的快捷程式 182

第9章 網路編程 183

9.1 Socket的概念 183

9.2 Socket的建立與配置 183

9.3 Socket的連線建立 185

9.4 數據傳輸 186

9.5 Socket編程實例 187

9.5.1 伺服器端的軟體程式 187

9.5.2 客戶端的軟體程式 188

9.5.3 阻塞和非阻塞 190

9.5.4 基於POP3客戶端實例 191

9.6 ping命令解析 192

9.6.1 命令基本功能 192

9.6.2 命令ping源碼例程 195

9.7 實戰技巧:光碟機與軟碟機的載入方法 197

9.7.1 光碟機的使用 197

9.7.2 軟碟機的使用 197

第10章 LINUX程式設計實踐項目 199

10.1 實踐項目一 虛擬機環境下的Linux安裝 199

10.1.1 實踐目的 199

10.1.2 實踐準備 199

10.1.3 實踐內容 200

10.2 實踐項目二 Linux的系統管理與基本命令 204

10.2.1 實踐目的 204

10.2.2 實踐內容 205

10.2.3 實踐步驟 205

10.3 實踐項目三 Vi編輯器練習 211

10.3.1 實驗目的 211

10.3.2 實驗內容 211

10.3.3 實驗步驟 211

10.4 實踐項目四 Shell程式設計 213

10.4.1 實踐目的 213

10.4.2 實踐內容 213

10.4.3 實踐步驟 214

10.5 實踐項目五 C程式設計與多檔案編譯 216

10.5.1 實踐目的 216

10.5.2 實踐要求 216

10.5.3 實踐內容 216

10.6 實踐項目六 記憶體動態分區管理 219

10.6.1 實踐目的 219

10.6.2 實踐內容 219

10.6.3 實踐程式及分析 219

10.7 實踐項目七 Linux檔案操作編程 224

10.7.1 實踐目的 224

10.7.2 實踐內容 224

10.7.3 實踐源程式清單 224

10.8 實踐項目八 系統調用與設備管理 227

10.8.1 實踐目的 227

10.8.2 實踐內容 227

10.8.3 實踐源程式清單 227

附錄 LINUX系統的安全防護技巧 229

參考文獻 232

相關詞條

熱門詞條

聯絡我們