Linux Shell命令行及腳本編程實例詳解(第2版)

劉艷濤

  • 出版商: 清華大學
  • 出版日期: 2024-04-01
  • 售價: $599
  • 貴賓價: 9.5$569
  • 語言: 簡體中文
  • ISBN: 7302660190
  • ISBN-13: 9787302660194
  • 相關分類: Linux
  • 立即出貨

  • Linux Shell命令行及腳本編程實例詳解(第2版)-preview-1
  • Linux Shell命令行及腳本編程實例詳解(第2版)-preview-2
  • Linux Shell命令行及腳本編程實例詳解(第2版)-preview-3
Linux Shell命令行及腳本編程實例詳解(第2版)-preview-1

相關主題

商品描述

本書是獲得大量讀者好評的“Linux典藏大系”中的經典暢銷書《Linux Shell命令行及腳本編程實例詳解》的第2版。本書第1版累計13次印刷,銷量超過2萬冊,被ChinaUnix技術社區大力推薦。本書理論結合實踐,全面、系統地介紹Linux Shell(Bash)腳本編程的語法、命令和技巧等內容。《Linux Shell命令行及腳本編程實例詳解(第2版)》偏重於實踐,在講解理論知識時結合大量典型實例讓讀者瞭解理論知識在實際環境中的應用,並對易混淆和較難理解的知識點做了重點分析,以加深讀者對知識的理解。《Linux Shell命令行及腳本編程實例詳解(第2版)》提供教學視頻、實例源程序、思維導圖、教學PPT和習題參考答案等超值配套資源,以幫助讀者高效、直觀地學習。 《Linux Shell命令行及腳本編程實例詳解(第2版)》共15章,分為2篇。第1篇“Linux Shell基礎知識與命令”,主要內容包括Linux和Linux Shell簡介、初識Linux Shell、常用的Shell(Bash)命令、Shell命令進階;第2篇“Shell腳本編程”,主要內容包括Shell編程基礎、Shell的條件執行、Bash循環、Shell函數、正則表達式、腳本輸入處理、Shell重定向、管道和過濾器、捕獲、sed和awk、其他Linux Shell概述。 《Linux Shell命令行及腳本編程實例詳解(第2版)》非常適合初次接觸Linux Shell命令行和腳本編程的入門讀者閱讀,也適合有一定基礎而想進一步提升的進階讀者閱讀,還適合作為高等院校和Linux培訓機構的教材。對於基於Linux平臺的開發人員而言,《Linux Shell命令行及腳本編程實例詳解(第2版)》還是一本不可多得的案頭查詢手冊。

目錄大綱

(京東、當當目錄請直接傳目錄jpg圖)

目錄

  

第1篇  Linux Shell基礎知識與命令

第1章  Linux和Linux Shell簡介 2

1.1  關於Linux 2

1.1.1  什麽是Linux 2

1.1.2  誰創建了Linux 3

1.1.3  Linux在日常生活中的應用 3

1.1.4  Linux內核是什麽 3

1.1.5  Linux的理念 4

1.2  什麽是Linux Shell 4

1.3  Shell的種類 5

1.4  怎樣使用Shell 7

1.5  Shell腳本是什麽 7

1.6  為什麽使用Shell腳本 8

1.7  實例:創建第一個Shell腳本 8

1.8  小結 9

1.9  習題 10

第2章  初識Linux Shell 11

2.1  Bash概述 11

2.1.1  Bash簡介 11

2.1.2  Bash的改進 11

2.2  Shell在Linux環境中的角色 12

2.2.1  與登錄Shell相關的文件 12

2.2.2  Bash啟動腳本 12

2.2.3  實例:定製自己的Bash登錄腳本 13

2.2.4  Bash退出腳本 15

2.2.5  實例:定製自己的Bash退出腳本 15

2.2.6  有效地登錄Shell的路徑 15

2.3  Shell變量 16

2.3.1  變量的類型 16

2.3.2  實例:如何定義變量並給變量賦值 18

2.3.3  變量的命名規則 19

2.3.4  實例:使用echo和printf命令打印變量的值 20

2.3.5  變量的引用 23

2.3.6  實例:export語句的使用 24

2.3.7  實例:如何刪除變量 25

2.3.8  實例:如何檢查變量是否存在 26

2.4  Shell環境進階 26

2.4.1  實例:回調歷史命令 26

2.4.2  實例:Shell的擴展部分 28

2.4.3  實例:創建和使用別名 30

2.4.4  實例:修改Bash提示符 32

2.4.5  實例:設置Shell選項 34

2.5  小結 37

2.6  習題 38

第3章  常用的Shell(Bash)命令 39

3.1  查看文件和目錄 39

3.1.1  ls命令實例:列出文件名和目錄 39

3.1.2  cat命令實例:連接顯示文件內容 43

3.1.3  less和more命令實例:分屏顯示文件 45

3.1.4  head命令實例:顯示文件的頭部內容 47

3.1.5  tail命令實例:顯示文件的尾部內容 48

3.1.6  file命令實例:查看文件類型 49

3.1.7  wc命令實例:查看文件的統計信息 50

3.1.8  find命令實例:查找文件或目錄 51

3.2  操作文件和目錄 52

3.2.1  touch命令實例:創建文件 52

3.2.2  mkdir命令實例:創建目錄 53

3.2.3  cp命令實例:復制文件或目錄 54

3.2.4  ln命令實例:鏈接文件或目錄 55

3.2.5  mv命令實例:重命名文件或目錄 56

3.2.6  rm命令實例:刪除文件或目錄 57

3.3  管理文件和目錄的權限 58

3.3.1  ls -l:顯示文件和目錄的權限 58

3.3.2  chmod命令實例:修改權限 59

3.3.3  chown和chgrp命令實例:修改文件的所有者和用戶組 61

3.3.4  設置setuid和setgid權限位實例:設置用戶和組權限位 63

3.4  文本處理 64

3.4.1  sort命令實例:文本排序 64

3.4.2  uniq命令實例:文本去重 66

3.4.3  tr命令實例:替換或刪除字符 68

3.4.4  grep命令實例:查找字符串 69

3.4.5  diff命令實例:比較兩個文件 70

3.5  其他常用的命令 72

3.5.1  hostname命令實例:查看主機名 72

3.5.2  w和who命令實例:列出系統登錄的用戶 73

3.5.3  uptime命令實例:查看系統運行時間 74

3.5.4  uname命令實例:查看系統信息 74

3.5.5  date命令實例:顯示和設置系統日期和時間 75

3.5.6  id命令實例:顯示用戶屬性 76

3.6  小結 77

3.7  習題 78

第4章  Shell命令進階 80

4.1  文件處理和歸檔 80

4.1.1  paste命令實例:合並文件 80

4.1.2  dd命令實例:備份和復制文件 82

4.1.3  gzip和bzip2命令實例:壓縮和歸檔文件 83

4.1.4  gunzip和bunzip2命令實例:解壓縮文件 84

4.1.5  tar命令實例:打包和解包文件 84

4.2  監測和管理磁盤 86

4.2.1  mount和umount命令實例:掛載和卸載存儲介質 86

4.2.2  df命令實例:報告文件系統磁盤空間的利用率 88

4.2.3  du命令實例:評估文件空間的利用率 89

4.3  後台執行命令 91

4.3.1  crond和crontab命令實例:執行計劃任務 91

4.3.2  at命令實例:在指定時間執行命令 92

4.3.3  &控制操作符實例:將任務放在後台運行 94

4.3.4  nohup命令實例:運行一個對掛起“免疫”的命令 95

4.4  小結 95

4.5  習題 96

第2篇  Shell腳本編程

第5章  Shell編程基礎 100

5.1  Shell腳本的第一行“#!” 100

5.2  Shell腳本註釋 100

5.3  實例:如何設置腳本的權限並執行腳本 101

5.4  Shell變量進階 102

5.4.1  Bash的參數擴展 102

5.4.2  Bash的內部變量 106

5.4.3  Bash的位置參數和特殊參數 108

5.4.4  實例:使用declare指定變量的類型 110

5.4.5  Bash的數組變量 111

5.5  Shell算術運算 112

5.5.1  Bash的算術運算符 112

5.5.2  數字常量 114

5.5.3  使用算術擴展和let命令進行算術運算 115

5.5.4  實例:使用expr命令 116

5.6  退出腳本 117

5.6.1  退出狀態碼 117

5.6.2  實例:使用exit命令 118

5.7  實例:調試腳本 119

5.8  Shell腳本編程風格 121

5.9  小結 122

5.10  習題 123

第6章  Shell的條件執行 124

6.1  條件測試 124

6.1.1  實例:使用test命令 124

6.1.2  if結構的語法格式 129

6.1.3  實例:if…else…fi語句 130

6.1.4  實例:嵌套的if…else語句 131

6.1.5  實例:多級的if…elif…else…fi 132

6.2  條件執行 133

6.2.1  實例:邏輯與&& 133

6.2.2  實例:邏輯或|| 138

6.2.3  實例:邏輯非! 141

6.3  case語句實例 141

6.4  小結 143

6.5  習題 144

第7章  Bash循環 145

7.1  for循環 145

7.1.1  for循環的語法 145

7.1.2  實例:嵌套for循環語句 147

7.2  while循環 148

7.2.1  while循環的語法 148

7.2.2  實例:定義無限while循環 150

7.3  until循環語句實例 152

7.4  select循環語句實例 153

7.5  循環控制 154

7.5.1  實例:break語句 154

7.5.2  實例:continue語句 156

7.6  小結 157

7.7  習題 157

第8章  Shell函數 159

8.1  函數的定義 159

8.2  函數的參數、變量與返回值 160

8.2.1  實例:向函數傳遞參數 160

8.2.2  本地變量 161

8.2.3  實例:使用return命令 163

8.2.4  實例:函數返回值測試 163

8.3  函數的調用 164

8.3.1  實例:在Shell命令行中調用函數 164

8.3.2  實例:在腳本中調用函數 164

8.3.3  實例:從函數文件中調用函數 165

8.3.4  實例:遞歸函數調用 168

8.4  實例:將函數放在後台運行 168

8.5  小結 170

8.6  習題 170

第9章  正則表達式 171

9.1  正則表達式簡介 171

9.1.1  正則表達式的定義 171

9.1.2  正則表達式的類型 171

9.1.3  POSIX字符類 172

9.1.4  Bash正則表達式比較操作符 173

9.2  正則表達式應用基礎 174

9.2.1  實例:使用句點(.)匹配單字符 174

9.2.2  實例:使用插入符號(^)進行匹配 175

9.2.3  實例:使用美元符號($)進行匹配 175

9.2.4  實例:使用星號(*)進行匹配 175

9.2.5  實例:使用方括號([ ])進行匹配 176

9.2.6  實例:使用問號(?)進行匹配 176

9.2.7  實例:使用加號(+)進行匹配 176

9.2.8  實例:使用(?|regex)進行匹配 177

9.2.9  實例:使用(?<=regex) 和(?<!regex)進行匹配 177

9.3  小結 178

9.4  習題 178

第10章  腳本輸入處理 180

10.1  參數處理 180

10.1.1  實例:使用case語句處理命令行參數 180

10.1.2  實例:使用shift命令處理命令行參數 184

10.1.3  實例:使用for循環讀取多個參數 186

10.1.4  實例:讀取腳本名 188

10.1.5  實例:測試命令行參數 189

10.2  選項處理 191

10.2.1  實例:使用case語句處理命令行選項 191

10.2.2  實例:使用getopts處理多命令行選項 193

10.2.3  實例:使用getopt處理多命令行選項 198

10.3  獲得用戶的輸入信息 203

10.3.1  實例:基本信息的讀取 203

10.3.2  實例:輸入超時 204

10.3.3  實例:隱式地讀取用戶輸入的密碼 205

10.3.4  實例:從文件中讀取數據 206

10.4  小結 208

10.5  習題 210

第11章  Shell重定向 211

11.1  輸入和輸出 211

11.1.1  標準輸入 211

11.1.2  標準輸出 212

11.1.3  標準錯誤 213

11.2  重定向 214

11.2.1  文件重定向 214

11.2.2  實例:從文件中讀取信息 216

11.2.3  實例:從標準輸入中讀取文本或字符串 220

11.2.4  實例:創建空文件 222

11.2.5  實例:丟棄不需要的輸出 223

11.2.6  實例:標準錯誤重定向 223

11.2.7  實例:標準輸出重定向 224

11.2.8  實例:標準錯誤和輸出同時重定向 224

11.2.9  實例:追加重定向輸出 225

11.2.10  實例:在單命令行中進行標準輸入、輸出重定向 225

11.3  文件描述符 226

11.3.1  實例:使用exec命令 226

11.3.2  實例:指定用於輸入的文件描述符 228

11.3.3  實例:指定用於輸出的文件描述符 230

11.3.4  實例:關閉文件描述符 235

11.3.5  實例:打開用於讀和寫的文件描述符 236

11.3.6  實例:在同一個腳本中使用exec進行輸入和輸出重定向 237

11.4  小結 238

11.5  習題 240

第12章  管道和過濾器 241

12.1  管道 241

12.1.1  操作符“|”和“>”的區別 241

12.1.2  為什麽使用管道 242

12.1.3  實例:使用管道連接程序 242

12.1.4  實例:管道中的輸入重定向 244

12.1.5  實例:管道中的輸出重定向 245

12.2  過濾器 246

12.2.1  實例:在管道中使用awk命令 247

12.2.2  實例:在管道中使用cut命令 248

12.2.3  實例:在管道中使用grep命令 248

12.2.4  實例:在管道中使用tar命令 249

12.2.5  實例:在管道中使用head命令 250

12.2.6  實例:在管道中使用paste命令 250

12.2.7  實例:在管道中使用sed命令 251

12.2.8  實例:在管道中使用sort命令 252

12.2.9  實例:在管道中使用split命令 253

12.2.10  實例:在管道中使用strings命令 253

12.2.11  實例:在管道中使用tail命令 254

12.2.12  實例:在管道中使用tee命令 254

12.2.13  實例:在管道中使用tr命令 256

12.2.14  實例:在管道中使用uniq命令 257

12.2.15  實例:在管道中使用wc命令 257

12.3  小結 258

12.4  習題 258

第13章  捕獲 259

13.1  信號 259

13.1.1  Linux中的信號 259

13.1.2  信號的名稱和值 260

13.1.3  Bash中的信號 262

13.2  進程 263

13.2.1  什麽是進程 263

13.2.2  前臺進程和後台進程 264

13.2.3  進程的狀態 265

13.2.4  實例:怎樣查看進程 265

13.2.5  實例:向進程發送信號 268

13.2.6  關於子Shell 269

13.3  捕獲 273

13.3.1  trap語句 273

13.3.2  實例:使用trap語句捕獲信號 275

13.3.3  實例:移除捕獲 279

13.4  小結 280

13.5  習題 281

第14章  sed和awk 283

14.1  sed編輯器基礎 283

14.1.1  sed簡介 283

14.1.2  sed的模式空間 284

14.2  sed的基本命令 285

14.2.1  追加、更改和插入命令 286

14.2.2  刪除命令 288

14.2.3  替換命令 288

14.2.4  打印命令 290

14.2.5  打印行號命令 291

14.2.6  讀取下一行命令 292

14.2.7  讀和寫文件命令 293

14.2.8  退出命令 297

14.3  sed命令實例 298

14.3.1  實例:向文件中添加或插入行 298

14.3.2  實例:更改文件中指定的行 300

14.3.3  實例:刪除文件中的行 300

14.3.4  實例:替換文件中的內容 302

14.3.5  實例:打印文件中的行 305

14.3.6  實例:打印文件中的行號 308

14.3.7  實例:從文件中讀取和向文件中寫入 308

14.4  sed與Shell 312

14.4.1  實例:在sed中使用Shell變量 312

14.4.2  實例:從sed輸出中設置shell變量 318

14.5  awk基礎 319

14.5.1  awk簡介 319

14.5.2  awk的基本語法 320

14.5.3  第一個awk命令 321

14.5.4  使用awk打印指定的列 322

14.5.5  從awk程序文件中讀取awk命令 322

14.5.6  awk的BEGIN和END塊 323

14.5.7  在awk中使用正則表達式 323

14.5.8  awk的表達式和塊 323

14.5.9  awk的條件語句 324

14.5.10  awk的變量和操作符 325

14.5.11  awk的特殊變量 326

14.5.12  awk的循環結構 327

14.5.13  awk的數組 328

14.6  awk與Shell 329

14.6.1  實例:在awk中使用Shell變量 329

14.6.2  實例:從awk命令的輸出中設置Shell變量 330

14.7  awk命令實例 332

14.7.1  實例:使用awk編寫字符統計工具 332

14.7.2  實例:使用awk程序統計文件的總列數 333

14.7.3  實例:使用awk自定義顯示文件的屬性信息 334

14.7.4  實例:使用awk顯示ASCII字符 335

14.7.5  實例:使用awk獲取進程號 337

14.8  小結 339

14.9  習題 341

第15章  其他Linux Shell概述 343

15.1  C Shell概述 343

15.1.1  csh簡介 343

15.1.2  csh的特性 344

15.1.3  csh的內部變量 345

15.1.4  csh的內部命令 345

15.1.5  tcsh在csh基礎上的新特性 349

15.2  Korn Shell概述 358

15.2.1  ksh簡介 358

15.2.2  ksh的特性 359

15.2.3  ksh的內部變量 363

15.2.4  ksh的內部命令 365

15.2.5  增強的ksh93u+ 372

15.3  Z Shell概述 376

15.3.1  zsh簡介 377

15.3.2  zsh的特性 377

15.3.3  zsh的內部變量 377

15.3.4  zsh的內部命令 378

15.4  小結 378

15.5  習題 379

Linux Shell命令行及腳本編程實例詳解(第2版)

  

目錄

  

·XIV·

  

  

·XIII·