Linux編程基礎(第2版)
黑馬程序員
商品描述
目錄大綱
目錄
第1章初識Linux操作系統1
1.1Linux操作系統概述1
1.1.1Linux操作系統的
起源與發展1
1.1.2Linux操作系統的
發行版本2
1.1.3Linux操作系統的
特點6
1.1.4Linux操作系統的
應用領域7
1.2安裝Linux操作系統7
1.2.1安裝VMware虛擬
機軟件7
1.2.2下載CentOS Stream 9
操作系統鏡像文件8
1.2.3安裝CentOS Stream 9
操作系統9
1.3通過VMware管理Linux
操作系統23
1.3.1系統關機、掛起與
重啟23
1.3.2快照24
1.4Linux操作系統的用戶
界面25
1.4.1圖形用戶界面簡介25
1.4.2Shell簡介26
1.4.3打開Shell終端27
1.4.4Shell終端的命令
操作28
1.5遠程終端訪問——
FinalShell30
1.6本章小結32
1.7本章習題32
第2章Linux操作系統常用
命令工具33
2.1用戶和用戶組管理命令33
2.1.1用戶和用戶組33
2.1.2用戶管理命令34
2.1.3用戶組管理命令38
2.1.4用戶切換命令39
2.1.5用戶權限提升命令41
2.2文件管理的相關概念和
命令43
2.2.1Linux文件系統43
2.2.2Linux目錄結構44
2.2.3Linux文件類型46
2.2.4目錄管理命令47
2.2.5文件查找命令50
2.2.6文件內容顯示命令52
2.2.7文件復制、移動、
刪除54
2.2.8壓縮解壓命令57
2.2.9權限管理63
2.3軟件管理命令66
2.3.1RPM66
2.3.2DNF69
2.4進程管理命令72
2.4.1進程查看命令72
2.4.2進程終止命令77
2.4.3服務管理78
2.5網絡管理與通信命令79
2.5.1ping79
2.5.2ssh80
2.5.3ip80
2.6幫助命令82
2.6.1man82
2.6.2info83
2.7vim編輯器84
2.7.1vim編輯器的基本
操作84
2.7.2vim編輯器的工作
模式86
2.8本章小結89
2.9本章習題89
第3章Shell編程90
3.1Shell腳本的創建與執行90
3.2Shell變量91
3.2.1用戶自定義變量91
3.2.2環境變量94
3.2.3位置變量98
3.2.4預定義變量99
3.3Shell的輸入輸出100
3.3.1read命令與echo
命令100
3.3.2標準I/O與重
定向102
3.4Shell中的特殊符號104
3.4.1引號104
3.4.2通配符105
3.4.3連接符106
3.4.4管道107
3.5數值運算107
3.5.1let命令107
3.5.2$(())108
3.5.3expr命令108
3.6Shell條件語句109
3.6.1條件判斷110
3.6.2if條件語句111
3.6.3case語句114
3.7Shell循環語句115
3.7.1for循環語句115
3.7.2while循環語句116
3.7.3until循環語句118
3.7.4select語句119
3.8Shell函數120
3.8.1函數的定義與
調用120
3.8.2函數中的變量121
3.9Shell數組123
3.10本章小結125
3.11本章習題125
第4章Linux C編譯調試環境126
4.1GCC編譯工具126
4.1.1GCC簡介126
4.1.2gcc命令127
4.2GDB調試工具129
4.2.1GDB簡介129
4.2.2gdb調試實例131
4.3make工具133
4.3.1引入make工具134
4.3.2Makefile文件中的
偽目標137
4.3.3Makefile文件中的
變量138
4.3.4Makefile文件的隱
式規則139
4.4本章小結140
4.5本章習題140
第5章文件I/O操作141
5.1文件概述141
5.1.1文件存儲方式141
5.1.2文件描述符142
5.2文件基本操作143
5.2.1文件的創建與
刪除143
5.2.2文件的打開與
關閉145
5.2.3文件讀寫147
5.2.4文件定位150
5.2.5文件移動152
5.3文件屬性操作154
5.3.1文件屬性概述154
5.3.2獲取文件屬性155
5.3.3檢測文件權限157
5.3.4修改文件權限158
5.3.5修改文件屬主和
屬組159
5.4目錄基本操作161
5.4.1目錄的創建與
刪除161
5.4.2獲取當前工作
目錄162
5.4.3切換當前工作
目錄163
5.4.4目錄的打開與
關閉164
5.4.5目錄的讀取165
5.4.6目錄的定位167
5.5文件I/O重定向170
5.6文件I/O錯誤處理173
5.7本章小結176
5.8本章習題176
第6章Linux進程管理177
6.1進程概述177
6.1.1進程的概念177
6.1.2進程的狀態178
6.1.3進程的結構179
6.2獲取進程屬性181
6.3進程控制182
6.3.1創建進程182
6.3.2exec系列函數185
6.3.3進程休眠190
6.4進程終止190
6.5僵屍進程與孤兒進程193
6.5.1僵屍進程194
6.5.2孤兒進程195
6.6進程等待196
6.6.1wait()函數196
6.6.2waitpid()函數199
6.7守護進程201
6.8本章小結204
6.9本章習題204
第7章信號205
7.1信號概述205
7.1.1信號的概念及
分類205
7.1.2信號的生命周期207
7.2信號發送208
7.2.1kill()函數208
7.2.2raise()函數211
7.2.3alarm()函數213
7.3信號自定義處理214
7.3.1signal()函數214
7.3.2signal()函數的
缺陷216
7.3.3sigaction()函數219
7.4信號集222
7.4.1信號集與操作
函數222
7.4.2信號屏蔽224
7.4.3獲取懸掛信號225
7.5等待指定信號228
7.6利用SIGCHLD信號回收
子進程230
7.7本章小結232
7.8本章習題232
第8章進程間通信233
8.1進程間通信概述233
8.2管道234
8.2.1管道概述234
8.2.2無名管道234
8.2.3命名管道239
8.2.4popen()函數和
pclose()函數242
8.3消息隊列245
8.3.1消息隊列概述245
8.3.2消息隊列相關
函數246
8.3.3消息隊列通信
實例251
8.4共享內存252
8.4.1共享內存概述252
8.4.2共享內存相關
函數252
8.4.3共享內存通信
實例255
8.5信號量256
8.5.1信號量概述256
8.5.2信號量相關函數257
8.5.3信號量通信實例260
8.6本章小結260
8.7本章習題260
第9章線程261
9.1線程概述261
9.2線程基本操作263
9.2.1獲取線程ID263
9.2.2線程創建263
9.2.3線程退出265
9.2.4線程掛起266
9.2.5線程分離268
9.2.6線程取消271
9.2.7線程取消狀態
設置273
9.3線程屬性275
9.3.1線程屬性對象的
初始化與銷毀276
9.3.2線程狀態276
9.3.3線程調度策略277
9.3.4線程調度參數277
9.3.5線程繼承性278
9.3.6線程作用域279
9.3.7線程棧279
9.3.8線程屬性設置
實例281
9.4線程並發284
9.5線程同步286
9.5.1互斥鎖實現線程
同步286
9.5.2條件變量實現線
程同步289
9.5.3信號量實現線程
同步291
9.6本章小結293
9.7本章習題293
第10章socket網絡編程294
10.1socket簡介294
10.1.1socket通信
過程294
10.1.2socket地址
結構295
10.1.3socket屬性297
10.2socket通信基礎知識297
10.2.1字節序298
10.2.2IP地址轉換298
10.3socket通信流程300
10.4socket編程接口302
10.4.1socket()302
10.4.2bind()302
10.4.3listen()304
10.4.4connect()305
10.4.5accept()305
10.4.6send()307
10.4.7recv()308
10.4.8close()309
10.5socket網絡編程實例310
10.5.1C/S模型——
TCP通信310
10.5.2C/S模型——
UDP通信315
10.6本章小結317
10.7本章習題317
第11章並發服務器318
11.1多進程並發服務器318
11.2多線程並發服務器318
11.3I/O多路復用318
11.4本章小結319
11.5本章習題319