內容簡介
本書共10章,內容包括:Linux實驗環境搭建,檔案管理類命令,進程和作業管理類命令,設備I/O管理類命令,用戶和工作組管理類命令,批處理操作接口(Shell),sed非互動式文本處理器,awk非互動式文本處理器,並發進程/執行緒同步、互斥與通信程式設計,開發環境安裝與套用測試。
本書集教材、實驗指導、手冊於一體,書中實例完整、豐富,便於入門和提高。
本書可作為高等院校計算機及軟體類本、專科專業的基礎教材,也可作為專業人員的培訓教材以及相關工程技術人員的參考書。
目 錄
第1章 Linux實驗環境搭建............................... 1
1.1 物理安裝..................................................... 1
1.2 虛擬安裝..................................................... 4
1.3 部分基礎操作............................................. 7
上機操作1........................................................... 9
第2章 檔案管理類命令.................................... 10
2.1 目錄及檔案基本操作命令....................... 10
2.1.1 顯示目錄列表命令(ls)...................... 10
2.1.2 顯示當前工作目錄命令(pwd).......... 15
2.1.3 切換用戶當前工作目錄命令(cd)..... 15
2.1.4 創建目錄命令(mkdir)....................... 16
2.1.5 複製目錄或檔案命令(cp)................. 17
2.1.6 移動或重命名目錄或檔案命令(mv)..... 19
2.1.7 刪除目錄或檔案命令(rm)................ 22
2.1.8 創建空白檔案命令(touch)................ 22
2.2 檔案查找命令........................................... 22
2.2.1 普通檔案查找命令(find).................. 22
2.2.2 程式檔案查找命令(whereis)............ 27
2.2.3 查找命令所在位置命令(which)....... 28
2.3 檔案內容查看命令................................... 28
2.3.1 查看檔案內容命令(cat).................... 28
2.3.2 逐屏查看檔案內容命令(more)......... 29
2.3.3 查看文本檔案內容命令(less)........... 30
2.4 檔案編輯處理命令................................... 31
2.4.1 檔案內容查找命令(grep).................. 31
2.4.2 域排序命令(sort)............................... 32
2.4.3 記錄連線命令(join)........................... 38
2.4.4 文本剪下命令(cut)............................ 42
2.4.5 文本貼上命令(paste)......................... 45
2.4.6 檔案分割命令(split).......................... 47
2.4.7 字元替換、壓縮或刪除命令(tr)...... 51
2.5 檔案共享操作—建立連結檔案........... 55
2.5.1 建立符號連結檔案........................... 55
2.5.2 建立硬連結檔案............................... 56
2.6 檔案/目錄屬性操作.................................. 58
2.6.1 變更檔案/目錄許可權命令(chmod) ... 58
2.6.2 變更檔案或目錄所有者命令(chown) ...... 61
2.6.3 變更檔案或目錄屬組命令(chgrp) ............ 64
2.7 檔案壓縮與解壓縮(gzip、gunzip) ......... 66
2.7.1 使用gzip、gunzip壓縮與解壓縮檔案...... 66
2.7.2 使用bzip2、bunzip2壓縮與解壓縮檔案.. 68
2.8 檔案打包、解包(tar)................................ 70
2.8.1 檔案及目錄打包............................... 70
2.8.2 檔案及目錄解包............................... 71
2.8.3 檔案打包並調用gzip壓縮............... 73
2.8.4 tar調用gunzip解壓縮檔案並解包....... 74
2.8.5 檔案打包並調用bzip2壓縮............. 75
2.8.6 tar調用bunzip2解壓縮檔案並解包...... 76
上機操作2......................................................... 77
第3章 進程和作業管理類命令........................ 81
3.1 查看進程命令........................................... 81
3.1.1 監視進程命令(ps)............................. 81
3.1.2 查看進程樹命令(pstree)................... 83
3.1.3 即時跟蹤進程信息命令(top)............ 84
3.1.4 查看占用檔案的進程命令(lsof)....... 85
3.1.5 查看進程標識號命令(pidof)............ 86
3.1.6 查看後台任務命令(jobs).................. 86
3.2 進程控制命令........................................... 87
3.2.1 向進程傳送信號命令(kill)................ 87
3.2.2 將後台任務調至前台運行命令(fg)......... 89
3.2.3 使後台暫停執行的命令繼續執行命令(bg)...... 89
上機操作3......................................................... 90
第4章 設備I/O管理類命令............................. 91
4.1 輸入輸出重定向操作符........................... 91
4.1.1 輸出重定向操作符(>、>>).............. 91
4.1.2 輸入重定向操作符(<、<<).............. 92
4.2 管道操作符(|)............................................ 92
4.3 列印管理操作命令................................... 94
上機操作4......................................................... 94
第5章 用戶和工作組管理類命令.................... 96
5.1 查看用戶................................................... 99
5.1.1 查看用戶信息命令(id)...................... 99
5.1.2 顯示用戶名稱命令(logname)......... 100
5.1.3 查看用戶操作命令(history)............ 100
5.2 用戶組管理............................................. 101
5.2.1 創建一個用戶組命令(groupadd)..... 101
5.2.2 更改用戶組名命令(groupmod)...... 101
5.2.3 新增用戶賬號命令(useradd).......... 102
5.2.4 為用戶設定口令命令(passwd)....... 102
5.2.5 查看用戶所屬組命令(groups)........ 103
5.2.6 變更用戶賬號信息命令(usermod)... 103
5.2.7 切換用戶身份命令(su)................... 104
5.2.8 查看當前登錄用戶名命令(w、who、users、whoami)..... 105
5.2.9 刪除用戶命令(userdel).................... 106
5.2.10 創建工作目錄並將所有權交給工作組命令(chgrp)..... 107
5.2.11 刪除用戶組命令(groupdel)........... 108
上機操作5 ..................................................... 108
第6章 批處理操作接口(Shell)...................... 110
6.1 Shell內部命令........................................ 110
6.1.1 判斷命令(type)................................ 110
6.1.2 設定別名命令(alias)........................ 111
6.1.3 取消別名命令(unalias).................... 112
6.1.4 多命令執行..................................... 112
6.2 Shell編程............................................. 114
6.2.1 變數賦值(=).................................... 115
6.2.2 變數引用($變數名)......................... 115
6.2.3 清除變數值(unset).......................... 115
6.2.4 查看某些環境變數值(echo)........... 116
6.2.5 設定或顯示環境變數(export)......... 116
6.2.6 Shell腳本程式命令行參數訪問....... 117
6.2.7 查看命令返回值($?)..................... 119
6.2.8 數組賦值、引用、操作................. 119
6.2.9 變數作用域:全局變數與局部變數...... 123
6.2.10 轉義............................................... 126
6.2.11 引用............................................... 126
6.2.12 命令替換....................................... 128
6.2.13 測試............................................... 129
6.2.14 if/else判斷.................................... 134
6.2.15 case判斷....................................... 136
6.2.16 for循環.......................................... 138
6.2.17 while循環...................................... 143
6.2.18 until循環....................................... 146
6.2.19 select循環.................................... 148
6.2.20 函式............................................... 151
6.2.21 指定位置參數值........................... 154
6.2.22 移動位置參數............................... 155
6.2.23 自定義函式館............................... 156
6.2.24 遞歸函式....................................... 157
6.2.25 非編輯器環境文本創建............... 159
6.2.26 腳本範例....................................... 159
上機操作6................................................. 161
第7章 sed非互動式文本處理器............. 163
7.1 sed原理與基本語法.......................... 163
7.1.1 sed工作原理................................... 163
7.1.2 sed命令的執行方式....................... 163
7.1.3 sed命令選項................................... 163
7.1.4 sed編輯命令................................... 164
7.1.5 文本行的指定方式......................... 165
7.1.6 sed元字元....................................... 165
7.2 文本編輯命令..................................... 166
7.2.1 文本顯示命令(p、n)....................... 166
7.2.2 文本插入命令(i).............................. 170
7.2.3 文本追加命令(a)............................. 172
7.2.4 文本刪除命令(d)............................. 174
7.2.5 文本替換命令(s)............................. 179
7.2.6 替換整行命令(c)............................. 189
7.2.7 處理匹配行的下一行命令(n)......... 191
7.2.8 字元替換命令(y)............................. 192
7.3 檔案讀/寫命令................................... 193
7.3.1 讀檔案命令(r)................................. 193
7.3.2 寫檔案命令(w)................................ 196
7.4 引用變數............................................. 197
7.5 多命令執行(e、;)............................... 198
7.6 sed命令腳本檔案(f).............................200
7.7 保持空間操作命令(h、H、g、G、x)... 200
上機操作7................................................... 203
第8章 awk非互動式文本處理器.............. 205
8.1 awk工作原理....................................... 205
8.1.1 awk處理的輸入檔案結構.............. 205
8.1.2 awk工作流程.................................. 205
8.1.3 awk的執行方式.............................. 205
8.1.4 awk的內置變數(預定義變數)....... 206
8.1.5 awk的運算符.................................. 207
8.1.6 awk的控制結構.............................. 208
8.1.7 awk的函式...................................... 208
8.2 文本域列印命令..................................... 209
8.2.1 列印全部域命令($0)....................... 209
8.2.2 列印部分域命令($i)........................ 210
8.2.3 域分隔設定指定命令......................... 212
8.2.4 列印各行行號、域數命令(NR、NF)..... 214
8.3 篩選符合條件的行、域..................... 215
8.3.1 列印字元串匹配行(~)..................... 216
8.3.2 列印字元串非匹配行命令(!~)........ 218
8.3.3 使用關係運算符、邏輯運算符以及正則表達式篩選符合條件的行、域命令..... 218
8.3.4 列印或者修改條件匹配行、域命令(if-else)....... 220
8.3.5 使用awk腳本檔案......................... 220
8.4 寫檔案命令............................................. 221
8.5 awk程式設計......................................... 223
8.5.1 使用變數表達式統計文本行......... 223
8.5.2 使用腳本檔案執行程式段............. 223
8.5.3 使用printf函式輸出格式化信息項 ............. 224
8.6 字元串替換......................................... 225
8.7 向awk命令傳遞參數............................ 227
8.7.1 使用 -v傳遞命令行參數................ 227
8.7.2 向awk程式腳本檔案傳遞命令行參數.......... 228
8.8 循環......................................................... 229
8.8.1 for循環............................................ 229
8.8.2 while循環........................................ 230
8.8.3 do-while循環.................................. 231
8.9 數組......................................................... 231
上機操作8 ..................................................... 238
第9章 並發進程/執行緒同步、互斥與通信程式設計..... 240
9.1 C語言編譯器gcc................................... 241
9.2 並發進程/執行緒同步與互斥.................... 242
9.2.1 並發進程/執行緒異步性.................... 242
9.2.2 並發執行緒同步與互斥..................... 253
9.2.3 生產者-消費者同步與互斥問題......... 256
9.3 進程通信................................................. 276
9.3.1 管道通信......................................... 276
9.3.2 共享記憶體通信................................. 282
9.3.3 訊息傳遞通信................................. 290
9.3.4 套接字通信..................................... 296
上機操作9 ................................................ 307
第10章 開發環境安裝與套用測試........... 308
10.1 jdk安裝與套用測試.......................... 308
10.1.1 安裝............................................... 308
10.1.2 配置............................................... 310
10.1.3 套用測試....................................... 311
10.2 GTK安裝與套用測試....................... 316
10.2.1 安裝............................................... 316
10.2.2 查看GTK庫版本......................... 317
10.2.3 套用測試....................................... 317
10.3 Eclipse安裝與套用測試...................320
10.3.1 安裝............................................... 321
10.3.2 套用測試....................................... 322
10.3.3 為Eclipse創建桌面捷徑...... 328
10.4 MySQL安裝與套用測試..................329
10.4.1 安裝............................................... 329
10.4.2 資料庫命令套用測試................... 330
10.4.3 編寫C、C++ 程式訪問資料庫....337
上機操作10............................................... 343
參考文獻............................. 344