linux命令行和shell腳本編程寶典是一本linux系統命令行和shell腳本編程手冊,由美國系統網絡管理員Richard Blum編著。本書基礎部分需要學習的內容很多,不僅簡明扼要的介紹了開源linux軟件的結構,并且展示了如何摒棄笨重的linux圖形用戶界面,而使用一種更加快速而有效的方式——命令行和自動化腳本。你將學習如何在不使用GUI的情況下管理文件系統的文件,啟動和終止程序,使用數據庫,甚至執行Web編程。linux命令行和shell腳本編程寶典詳細的介紹了linux桌面和各種命令行參數,介紹了文件系統導航、文件處理、bash shell命令的基礎,管理嵌套結構化命令,使用sed、gawk和正則表達式等等,適用于linux系統的學員閱讀。

內容介紹

Linux系統中,命令和shell腳本是非常重要的內容,它們的功能非常強大,使用它們可以完成各種操作。Linux命令行和sheell腳本編程寶典分為5部分。第1部分介紹Linux shell的基礎知識;第2部分介紹shell腳本;第3部分介紹shell腳本編程的高級內容;第4部分介紹如何使用Linux環境中的各種shell編寫shell腳本;第5部分演示如何在實際情況中使用shell腳本。本書非常全面地介紹了Linux命令行和shell命令,并且提供了很多實踐教程和實例應用程序信息,為學習的內容提供了相關環境,是Linux的愛好者以及Linux系統管理員的首選。

章節目錄

第1部分 Linux命令行 
第1章 Linux shell入門 3 
1.1 什么是Linux 3 
1.1.1 深入研究Linux內核 4 
1.1.2 GNU實用程序 9 
1.1.3 Linux桌面環境 10 
1.2 Linux發行版 13 
1.2.1 核心Linux發行版 13 
1.2.2 特定Linux發行版 14 
1.2.3 Linux LiveCD 14 
1.3 小結 15 
第2章 了解shell 17 
2.1 終端模擬 17 
2.1.1 圖形功能 18 
2.1.2 鍵盤 20 
2.2 terminfo數據庫 21 
2.3 Linux控制臺 23 
2.4 xterm終端 24 
2.4.1 命令行參數 24 
2.4.2 xterm主菜單 25 
2.4.3 VT選項菜單 26 
2.4.4 VT字體菜單 28 
2.5 Konsole終端 29 
2.5.1 命令行參數 29 
2.5.2 會話 30 
2.5.3 菜單欄 31 
2.6 GNOME終端 34 
2.6.1 命令行參數 34 
2.6.2 選項卡 35 
2.6.3 菜單欄 35 
2.7 小結 37 
第3章 基本的bash shell命令 38 
3.1 啟動shell 38 
3.2 shell提示符 39 
3.3 bash手冊 40 
3.4 文件系統導航 41 
3.4.1 Linux文件系統 41 
3.4.2 瀏覽目錄 43 
3.5 文件和目錄列表 44 
3.5.1 基本列表 44 
3.5.2 修改顯示的信息 45 
3.5.3 完整的參數列表 46 
3.5.4 過濾列表輸出 48 
3.6 文件處理 48 
3.6.1 創建文件 48 
3.6.2 復制文件 49 
3.6.3 鏈接文件 50 
3.6.4 重命名文件 51 
3.6.5 刪除文件 52 
3.7 目錄處理 53 
3.7.1 創建目錄 53 
3.7.2 刪除目錄 53 
3.8 查看文件內容 54 
3.8.1 查看文件統計數據 54 
3.8.2 查看文件類型 54 
3.8.3 查看整個文件 55 
3.8.4 查看部分文件 57 
3.9 小結 58 
第4章 更多bash shell命令 59 
4.1 監控程序 59 
4.1.1 進程查看 59 
4.1.2 實時進程監控 64 
4.1.3 停止進程 66 
4.2 監控磁盤空間 67 
4.2.1 掛載介質 68 
4.2.2 使用df命令 70 
4.2.3 使用du命令 71 
4.3 操作數據文件 71 
4.3.1 數據排序 72 
4.3.2 搜索數據 74 
4.3.3 壓縮數據 75 
4.3.4 歸檔數據 78 
4.4 小結 79 
第5章 使用Linux環境變量 80 
5.1 什么是環境變量 80 
5.1.1 全局環境變量 80 
5.1.2 本地環境變量 81 
5.2 設置環境變量 83 
5.2.1 設置本地環境變量 83 
5.2.2 設置全局環境變量 84 
5.3 移除環境變量 84 
5.4 默認的shell環境變量 85 
5.5 設置PATH環境變量 87 
5.6 定位系統環境變量 88 
5.6.1 登錄shell 88 
5.6.2 交互式shell 90 
5.6.3 非交互式shell 92 
5.7 變量數組 92 
5.8 使用命令別名 93 
5.9 小結 94 
第6章 理解Linux文件權限 96 
6.1 Linux安全性 96 
6.1.1 /etc/passwd文件 96 
6.1.2 /etc/shadow文件 98 
6.1.3 添加新用戶 98 
6.1.4 刪除用戶 100 
6.1.5 修改用戶 100 
6.2 使用Linux用戶組 102 
6.2.1 /etc/group文件 103 
6.2.2 創建新用戶組 103 
6.2.3 修改用戶組 104 
6.3 解碼文件權限 104 
6.3.1 使用文件權限符號 105 
6.3.2 默認文件權限 105 
6.4 修改安全設置 107 
6.4.1 修改權限 107 
6.4.2 修改所有者 108 
6.5 共享文件 108 
6.6 小結 109 
第7章 使用編輯器 111 
7.1 vim編輯器 111 
7.1.1 vim基本用法 111 
7.1.2 編輯數據 113 
7.1.3 復制和粘貼 113 
7.1.4 搜索和替換 114 
7.2 emacs編輯器 114 
7.2.1 在控制臺中使用emacs 114 
7.2.2 在X Windows中使用emacs 118 
7.3 KDE系列編輯器 119 
7.3.1 KWrite編輯器 119 
7.3.2 Kate編輯器 121 
7.4 GNOME編輯器 124 
7.4.1 啟動gedit 124 
7.4.2 基本gedit特性 125 
7.4.3 設置首選項 125 
7.5 小結 128 
第2部分 shell腳本的基礎知識 
第8章 基本腳本編譯 131 
8.1 使用多條命令 131 
8.2 創建腳本文件 131 
8.3 顯示消息 133 
8.4 使用變量 134 
8.4.1 環境變量 134 
8.4.2 用戶變量 135 
8.4.3 反引號 136 
8.5 重定向輸入輸出 137 
8.5.1 輸出重定向 137 
8.5.2 輸入重定向 137 
8.6 管道 138 
8.7 數學計算 140 
8.7.1 expr命令 140 
8.7.2 使用括號 141 
8.7.3 浮點解決方案 142 
8.8 退出腳本 145 
8.8.1 核對退出狀態 145 
8.8.2 退出命令 146 
8.9 小結 147 
第9章 使用結構化命令 148 
9.1 使用if-then語句 148 
9.2 if-then-else語句 150 
9.3 嵌套if語句 150 
9.4 test命令 151 
9.4.1 數值比較 151 
9.4.2 字符串比較 152 
9.4.3 文件比較 155 
9.5 復合條件檢查 161 
9.6 if-then的高級特征 161 
9.6.1 使用雙圓括號 162 
9.6.2 使用雙方括號 162 
9.7 case命令 163 
9.8 小結 164 
第10章 更多結構化命令 165 
10.1 for命令 165 
10.1.1 讀取列表中的值 165 
10.1.2 讀取列表中的復雜值 166 
10.1.3 從變量讀取列表 168 
10.1.4 讀取命令中的值 168 
10.1.5 改變字段分隔符 169 
10.1.6 使用通配符讀取目錄 170 
10.2 C式的for命令 171 
10.2.1 C語言中的for命令 171 
10.2.2 使用多個變量 172 
10.3 while命令 173 
10.3.1 while的基本格式 173 
10.3.2 使用多條測試命令 174 
10.4 until命令 175 
10.5 嵌套循環 176 
10.6 文件數據的循環 178 
10.7 控制循環 178 
10.7.1 break命令 179 
10.7.2 continue命令 181 
10.8 處理循環的輸出 183 
10.9 小結 184 
第11章 處理用戶輸入 185 
11.1 命令行參數 185 
11.1.1 讀取參數 185 
11.1.2 讀取程序名稱 187 
11.1.3 測試參數 188 
11.2 特殊的參數變量 188 
11.2.1 參數計數 188 
11.2.2 獲取所有數據 190 
11.3 移位 190 
11.4 處理選項 191 
11.4.1 找出選項 191 
11.4.2 使用getopt命令 194 
11.4.3 更高級的getopts命令 196 
11.5 標準化選項 197 
11.6 獲取用戶輸入 198 
11.6.1 基本讀取 198 
11.6.2 計時 199 
11.6.3 默讀 200 
11.6.4 讀取文件 200 
11.7 小結 201 
第12章 顯示數據 202 
12.1 了解輸入和輸出 202 
12.1.1 標準文件描述符 202 
12.1.2 重定向錯誤 204 
12.2 在腳本中重定向輸出 205 
12.2.1 臨時重定向 205 
12.2.2 永久重定向 206 
12.3 在腳本中重定向輸入 207 
12.4 創建自己的重定向 207 
12.4.1 創建輸出文件描述符 207 
12.4.2 重定向文件描述符 208 
12.4.3 創建輸入文件描述符 208 
12.4.4 創建讀取/寫入文件描述符 209 
12.4.5 關閉文件描述符 210 
12.5 列出開放文件描述符 210 
12.6 禁止命令輸出 212 
12.7 使用臨時文件 212 
12.7.1 創建本地臨時文件 213 
12.7.2 在/temp中創建臨時文件 213 
12.7.3 創建臨時目錄 214 
12.8 記錄消息 215 
12.9 小結 216 
第13章 腳本控制 217 
13.1 處理信號 217 
13.1.1 Linux信號回顧 217 
13.1.2 生成信號 218 
13.1.3 捕獲信號 219 
13.1.4 捕獲腳本退出 220 
13.1.5 移除捕獲 220 
13.2 以后臺模式運行腳本 221 
13.2.1 以后臺模式運行 221 
13.2.2 運行多個后臺作業 222 
13.2.3 退出終端 222 
13.3 在不使用控制臺的情況下運行腳本 222 
13.4 作業控制 223 
13.4.1 查看作業 223 
13.4.2 重新啟動停止的作業 225 
13.5 變得更好 225 
13.5.1 nice命令 226 
13.5.2 renice命令 226 
13.6 準確無誤地運行 227 
13.6.1 使用at命令調度作業 227 
13.6.2 使用batch命令 229 
13.6.3 調度定期腳本 229 
13.7 從頭開始 230 
13.7.1 在啟動時啟動腳本 231 
13.7.2 隨新shell一起啟動 232 
13.8 小結 232 
第3部分 高級shell腳本編程 
第14章 創建函數 235 
14.1 基本腳本函數 235 
14.1.1 創建函數 235 
14.1.2 使用函數 236 
14.2 返回值 237 
14.2.1 默認退出狀態 237 
14.2.2 使用return命令 238 
14.2.3 使用函數輸出 239 
14.3 在函數中使用變量 239 
14.3.1 向函數傳遞參數 240 
14.3.2 在函數中處理變量 241 
14.4 數組變量與函數 243 
14.4.1 向函數傳遞數組 243 
14.4.2 從函數返回數組 244 
14.5 函數遞歸 245 
14.6 創建庫 246 
14.7 在命令行中使用函數 247 
14.7.1 在命令行創建函數 247 
14.7.2 在.bashrc文件中定義函數 248 
14.8 小結 249 
第15章 在腳本中添加顏色 250 
15.1 創建文本菜單 250 
15.1.1 創建菜單布局 250 
15.1.2 創建菜單函數 251 
15.1.3 添加菜單邏輯 252 
15.1.4 將其全部組合在一起 252 
15.1.5 使用select命令 253 
15.2 添加顏色 254 
15.2.1 ANSI轉義碼 254 
15.2.2 顯示ANSI轉義碼 255 
15.2.3 在腳本中使用顏色 256 
15.3 制作窗口 257 
15.3.1 dialog軟件包 257 
15.3.2 dialog選項 261 
15.3.3 在腳本中使用dialog命令 263 
15.4 獲取圖形 265 
15.4.1 KDE環境 265 
15.4.2 GNOME環境 267 
15.5 小結 270 
第16章 sed和gawk介紹 271 
16.1 文本處理 271 
16.1.1 sed編輯器 271 
16.1.2 gawk程序 273 
16.2 sed編輯器基礎知識 278 
16.2.1 更多替換選項 278 
16.2.2 使用地址 279 
16.2.3 刪除行 281 
16.2.4 插入和附加文本 282 
16.2.5 更改行 283 
16.2.6 變換命令 284 
16.2.7 打印命令溫習 284 
16.2.8 將文件用于sed 286 
16.3 小結 288 
第17章 正則表達式 289 
17.1 正則表達式是什么 289 
17.1.1 正則表達式的定義 289 
17.1.2 正則表達式的類型 290 
17.2 定義BRE模式 290 
17.2.1 純文本 290 
17.2.2 特殊字符 291 
17.2.3 定位符 292 
17.2.4 點字符 293 
17.2.5 字符類 294 
17.2.6 否定字符類 295 
17.2.7 使用范圍 296 
17.2.8 特殊字符類 296 
17.2.9 星號 297 
17.3 擴展的正則表達式 298 
17.3.1 問號 298 
17.3.2 加號 299 
17.3.3 使用大括號 299 
17.3.4 管道符號 300 
17.3.5 將表達式分組 300 
17.4 正則表達式實戰 301 
17.4.1 計算目錄文件 301 
17.4.2 驗證電話號碼 302 
17.4.3 解析電子郵件地址 303 
17.5 小結 304 
第18章 高級sed編程 306 
18.1 多行命令 306 
18.1.1 next命令 306 
18.1.2 多行刪除命令 309 
18.1.3 多行打印命令 310 
18.2 保留空間 310 
18.3 否定命令 311 
18.4 更改命令流 313 
18.4.1 分支 313 
18.4.2 測試 314 
18.5 模式替換 315 
18.5.1 與號 315 
18.5.2 替換個別單詞 315 
18.6 在腳本中使用sed 316 
18.6.1 使用包裝器 316 
18.6.2 重定向sed輸出 317 
18.7 創建sed工具 317 
18.7.1 雙倍行距 318 
18.7.2 對可能有空行的文件使用雙倍行距 318 
18.7.3 對文件中的行記數 319 
18.7.4 打印最后幾行 319 
18.7.5 刪除行 320 
18.7.6 刪除HTML標記 322 
18.8 小結 323 
第19章 高級gawk編程 324 
19.1 使用變量 324 
19.1.1 內置變量 324 
19.1.2 用戶定義的變量 328 
19.2 使用數組 329 
19.2.1 定義數組變量 329 
19.2.2 在數組變量中遞歸 330 
19.2.3 刪除數組變量 330 
19.3 使用模式 331 
19.3.1 正則表達式 331 
19.3.2 匹配操作符 331 
19.3.3 數學表達式 332 
19.4 結構化命令 332 
19.4.1 if語句 333 
19.4.2 while語句 334 
19.4.3 do-while語句 335 
19.4.4 for語句 335 
19.5 格式化打印 335 
19.6 內置函數 337 
19.6.1 數學函數 337 
19.6.2 字符串函數 338 
19.6.3 時間函數 339 
19.7 用戶定義的函數 340 
19.7.1 定義函數 340 
19.7.2 使用自己的函數 340 
19.7.3 創建函數庫 341 
19.8 小結 341 
第4部分 可選的Linux shell 
第20章 ash shell 345 
20.1 什么是ash shell 345 
20.2 原始ash shell 346 
20.2.1 原始ash命令行參數 346 
20.2.2 原始ash內置命令 347 
20.2.3 ash shell文件 349 
20.3 dash shell 349 
20.3.1 dash命令行參數 349 
20.3.2 dash環境變量 350 
20.3.3 dash內置命令 352 
20.4 在dash中編寫腳本 355 
20.4.1 創建ash和dash腳本 355 
20.4.2 失效的特性 355 
20.5 小結 359 
第21章 tcsh shell 360 
21.1 什么是tcsh shell 360 
21.2 tcash shell的組成部分 360 
21.2.1 tcsh命令行參數 361 
21.2.2 tcsh文件 361 
21.2.3 tcsh登錄文件 362 
21.2.4 shell啟動文件 362 
21.2.5 退出文件 363 
21.2.6 tcsh環境變量 364 
21.2.7 shell變量 364 
21.2.8 環境變量 367 
21.2.9 在tcsh中設置變量 369 
21.2.10 使用set命令 369 
21.2.11 使用setenv命令 369 
21.2.12 tcsh內置命令 370 
21.3 在tcsh中編寫腳本 372 
21.3.1 處理變量 372 
21.3.2 數組變量 372 
21.3.3 處理數學運算 372 
21.3.4 結構化命令 373 
21.3.5 if語句 373 
21.3.6 foreach語句 375 
21.3.7 while語句 375 
21.3.8 switch命令 375 
21.4 小結 376 
第22章 Korn shell 378 
22.1 Korn shell的歷史 378 
22.2 ksh93 shell的組成部分 378 
22.2.1 命令行參數 379 
22.2.2 默認文件 380 
22.2.3 環境變量 380 
22.2.4 內置命令 385 
22.3 在ksh93 shell中編寫腳本 387 
22.3.1 數學運算 387 
22.3.2 結構化命令 389 
22.3.3 命令重定向 391 
22.3.4 規程函數 391 
22.4 小結 392 
第23章 zsh shell 393 
23.1 zsh shell的歷史 393 
23.2 zsh shell的組成部分 393 
23.2.1 shell選項 394 
23.2.2 zsh shell文件 396 
23.2.3 環境變量 398 
23.2.4 內置命令 401 
23.3 使用zsh編寫腳本 405 
23.3.1 數學運算 405 
23.3.2 結構化命令 406 
23.3.3 函數 406 
23.4 小結 408 
第5部分 高級主題 
第24章 使用數據庫 411 
24.1 MySQL數據庫 411 
24.1.1 安裝MySQL 411 
24.1.2 完成MySQL配置 413 
24.1.3 MySQL客戶端接口 414 
24.1.4 創建MySQL數據庫對象 417 
24.2 PostgreSQL數據庫 419 
24.2.1 安裝PostgreSQL 419 
24.2.2 PostgreSQL命令接口 421 
24.2.3 創建PostgreSQL數據庫對象 422 
24.3 處理表 424 
24.3.1 創建表 424 
24.3.2 插入和刪除數據 425 
24.3.3 查詢數據 426 
24.4 在腳本中使用數據庫 427 
24.4.1 連接到數據庫 427 
24.4.2 向服務器發送命令 428 
24.4.3 格式化數據 431 
24.5 小結 432 
第25章 使用Web 433 
25.1 Lynx程序 433 
25.1.1 安裝Lynx 434 
25.1.2 Lynx命令行 434 
25.1.3 Lynx配置文件 438 
25.1.4 Lynx環境變量 439 
25.1.5 從Lynx捕獲數據 439 
25.2 cURL程序 441 
25.2.1 安裝cURL 441 
25.2.2 cURL命令行 442 
25.2.3 研究curl 444 
25.3 使用zsh連接網絡 445 
25.3.1 TCP模塊 445 
25.3.2 客戶端/服務器模型 446 
25.3.3 使用zsh進行客戶端/服務器編程 446 
25.4 小結 449 
第26章 使用電子郵件 450 
26.1 Linux電子郵件基礎知識 450 
26.1.1 Linux中的電子郵件 450 
26.1.2 郵件傳輸代理 451 
26.1.3 郵件分發代理 452 
26.1.4 郵件用戶代理 452 
26.2 設置服務器 454 
26.2.1 sendmail 455 
26.2.2 Postfix 456 
26.3 使用Mailx發送消息 459 
26.4 Mutt程序 461 
26.4.1 安裝Mutt 461 
26.4.2 Mutt命令行 462 
26.4.3 使用Mutt 462 
26.5 小結 463 
第27章 管理員使用的shell腳本 465 
27.1 監視系統統計信息 465 
27.1.1 監視磁盤空閑空間 465 
27.1.2 誰在霸占磁盤資源 467 
27.1.3 監視CPU和內存使用情況 469 
27.2 執行備份 474 
27.2.1 歸檔數據文件 474 
27.2.2 脫機存儲備份文件 477 
27.3 小結 478 
附錄A bash命令快速指南 479 
A.1 內置命令 479 
A.2 bash命令 480 
A.3 環境變量 481 
附錄B sed和gawk快速指南 484 
B.1 sed編輯器 484 
B.1.1 啟動sed編輯器 484 
B.1.2 sed命令 484 
B.2 gawk程序 487 
B.2.1 gawk命令格式 487 
B.2.2 使用gawk 487 
B.2.3 gawk變量 488 
B.2.4 gawk程序功能 489 
附錄C shell版本比較 491 
C.1 變量 491 
C.1.1 環境變量 491 
C.1.2 用戶定義的變量 491 
C.1.3 數組變量 492 
C.2 結構化命令 492 
C.2.1 if-then、while和until語句 492 
C.2.2 for語句 493 
C.3 數學計算 493 

使用說明

1、下載并解壓,得出pdf文件

2、如果打不開本文件,請務必下載pdf閱讀器
3、安裝后,在打開解壓得出的pdf文件
4、雙擊進行閱讀

linux命令行和shell腳本編程寶典下載 pdf掃描版下載地址

遠程下載