Linux命令行與shell腳本編程大全(第3版)
引言
讀者對象
本書結構
警告、竅門與說明
代碼下載
最低需求
下一步做什么
第一部分 Linux 命令行
1 初識Linux shell
1.1 什么是Linux
1.1.1 深入探究Linux內核
1.1.2 GNU工具
1.1.3 Linux桌面環境
1.2 Linux發行版
1.2.1 核心Linux發行版
1.2.2 特定用途的Linux發行版
1.2.3 Linux LiveCD
1.3 小結
2 走進shell
2.1 進入命令行
2.1.1 控制台終端
2.1.2 圖形化終端
2.2 通過Linux控制台終端訪問CLI
2.3 通過圖形化終端仿真訪問CLI
2.4 使用GNOME Terminal仿真器
2.4.1 訪問GNOME Terminal
2.4.2 菜單欄
2.5 使用Konsole Terminal仿真器
2.5.1 訪問Konsole Terminal
2.5.2 菜單欄
2.6 使用xterm終端仿真器
2.6.1 訪問xterm
2.6.2 命令行參數
2.7 小結
3 基本的bash shell命令
3.1 啟動shell
3.2 shell提示符
3.3 bash手冊
3.4 瀏覽文件系統
3.4.1 Linux文件系統
3.4.2 遍歷目錄
3.5 文件和目錄列表
3.5.1 基本列表功能
3.5.2 顯示長列表
3.5.3 過濾輸出列表
3.6 處理文件
3.6.1 創建文件
3.6.2 復制文件
3.6.3 制表鍵自動補全
3.6.4 鏈接文件
3.6.5 重命名文件
3.6.6 刪除文件
3.7 處理目錄
3.7.1 創建目錄
3.7.2 刪除目錄
3.8 查看文件內容
3.8.1 查看文件類型
3.8.2 查看整個文件
3.8.3 查看部分文件
3.9 小結
4 更多的bash shell命令
4.1 監測程序
4.1.1 探查進程
4.1.2 實時監測進程
4.1.3 結束進程
4.2 監測磁盤空間
4.2.1 掛載存儲媒體
4.2.2 使用df命令
4.2.3 使用du命令
4.3 處理數據文件
4.3.1 排序數據
4.3.2 搜索數據
4.3.3 壓縮數據
4.3.4 歸檔數據
4.4 小結
5 理解shell
5.1 shell的類型
5.2 shell的父子關系
5.2.1 進程列表
5.2.2 別出心裁的子shell用法
5.3 理解shell的內建命令
5.3.1 外部命令
5.3.2 內建命令
5.4 小結
6 使用Linux環境變量
6.1 什么是環境變量
6.1.1 全局環境變量
6.1.2 局部環境變量
6.2 設置用戶定義變量
6.2.1 設置局部用戶定義變量
6.2.2 設置全局環境變量
6.3 刪除環境變量
6.4 默認的shell環境變量
6.5 設置PATH環境變量
6.6 定位系統環境變量
6.6.1 登錄shell
6.6.2 交互式shell進程
6.6.3 非交互式shell
6.6.4 環境變量持久化
6.7 數組變量
6.8 小結
7 理解Linux文件權限
7.1 Linux的安全性
7.1.1 etcpasswd文件
7.1.2 etcshadow文件
7.1.3 添加新用戶
7.1.4 刪除用戶
7.1.5 修改用戶
7.2 使用Linux組
7.2.1 etcgroup文件
7.2.2 創建新組
7.2.3 修改組
7.3 理解文件權限
7.3.1 使用文件權限符
7.3.2 默認文件權限
7.4 改變安全性設置
7.4.1 改變權限
7.4.2 改變所屬關系
7.5 共享文件
7.6 小結
8 管理文件系統
8.1 探索Linux文件系統
8.1.1 基本的Linux文件系統
8.1.2 日志文件系統
8.1.3 寫時復制文件系統
8.2 操作文件系統
8.2.1 創建分區
8.2.2 創建文件系統
8.2.3 文件系統的檢查與修復
8.3 邏輯卷管理
8.3.1 邏輯卷管理布局
8.3.2 Linux中的LVM
8.3.3 使用Linux LVM
8.4 小結
9 安裝軟件程序
9.1 包管理基礎
9.2 基於Debian的系統
9.2.1 用aptitude管理軟件包
9.2.2 用aptitude安裝軟件包
9.2.3 用aptitude更新軟件
9.2.4 用aptitude卸載軟件
9.2.5 aptitude倉庫
9.3 基於Red Hat的系統
9.3.1 列出已安裝包
9.3.2 用yum安裝軟件
9.3.3 用yum更新軟件
9.3.4 用yum卸載軟件
9.3.5 處理損壞的包依賴關系
9.3.6 yum軟件倉庫
9.4 從源碼安裝
9.5 小結
10 使用編輯器
10.1 vim編輯器
10.1.1 檢查vim軟件包
10.1.2 vim基礎
10.1.3 編輯數據
10.1.4 復制和粘貼
10.1.5 查找和替換
10.2 nano編輯器
10.3 emacs編輯器
10.3.1 檢查emacs軟件包
10.3.2 在控制台中使用emacs
10.3.3 在GUI環境中使用emacs
10.4 KDE系編輯器
10.4.1 KWrite編輯器
10.4.2 Kate編輯器
10.5 GNOME編輯器
10.5.1 啟動gedit
10.5.2 基本的gedit功能
10.5.3 設定偏好設置
10.6 小結
第二部分 shell 腳本編程基礎
11 構建基本腳本
11.1 使用多個命令
11.2 創建shell腳本文件
11.3 顯示消息
11.4 使用變量
11.4.1 環境變量
11.4.2 用戶變量
11.4.3 命令替換
11.5 重定向輸入和輸出
11.5.1 輸出重定向
11.5.2 輸入重定向
11.6 管道
11.7 執行數學運算
11.7.1 expr命令
11.7.2 使用方括號
11.7.3 浮點解決方案
11.8 退出腳本
11.8.1 查看退出狀態碼
11.8.2 exit命令
11.9 小結
12 使用結構化命令
12.1 使用if-then語句
12.2 if-then-else語句
12.3 嵌套if
12.4 test命令
12.4.1 數值比較
12.4.2 字符串比較
12.4.3 文件比較
12.5 復合條件測試
12.6 if-then的高級特性
12.6.1 使用雙括號
12.6.2 使用雙方括號
12.7 case命令
12.8 小結
13 更多的結構化命令
13.1 for命令
13.1.1 讀取列表中的值
13.1.2 讀取列表中的復雜值
13.1.3 從變量讀取列表
13.1.4 從命令讀取值
13.1.5 更改字段分隔符
13.1.6 用通配符讀取目錄
13.2 C語言風格的for命令
13.2.1 C語言的for命令
13.2.2 使用多個變量
13.3 while命令
13.3.1 while的基本格式
13.3.2 使用多個測試命令
13.4 until命令
13.5 嵌套循環
13.6 循環處理文件數據
13.7 控制循環
13.7.1 break命令
13.7.2 continue命令
13.8 處理循環的輸出
13.9 實例
13.9.1 查找可執行文件
13.9.2 創建多個用戶賬戶
13.10 小結
14 處理用戶輸入
14.1 命令行參數
14.1.1 讀取參數
14.1.2 讀取腳本名
14.1.3 測試參數
14.2 特殊參數變量
14.2.1 參數統計
14.2.2 抓取所有的數據
14.3 移動變量
14.4 處理選項
14.4.1 查找選項
14.4.2 使用getopt命令
14.4.3 使用更高級的getopts
14.5 將選項標准化
14.6 獲得用戶輸入
14.6.1 基本的讀取
14.6.2 超時
14.6.3 隱藏方式讀取
14.6.4 從文件中讀取
14.7 小結
15 呈現數據
15.1 理解輸入和輸出
15.1.1 標准文件描述符
15.1.2 重定向錯誤
15.2 在腳本中重定向輸出
15.2.1 臨時重定向
15.2.2 永久重定向
15.3 在腳本中重定向輸入
15.4 創建自己的重定向
15.4.1 創建輸出文件描述符
15.4.2 重定向文件描述符
15.4.3 創建輸入文件描述符
15.4.4 創建讀寫文件描述符
15.4.5 關閉文件描述符
15.5 列出打開的文件描述符
15.6 阻止命令輸出
15.7 創建臨時文件
15.7.1 創建本地臨時文件
15.7.2 在/tmp目錄創建臨時文件
15.7.3 創建臨時目錄
15.8 記錄消息
15.9 實例
15.10 小結
16 控制腳本
16.1 處理信號
16.1.1 重溫Linux信號
16.1.2 生成信號
16.1.3 捕獲信號
16.1.4 捕獲腳本退出
16.1.5 修改或移除捕獲
16.2 以后台模式運行腳本
16.2.1 后台運行腳本
16.2.2 運行多個后台作業
16.3 在非控制台下運行腳本
16.4 作業控制
16.4.1 查看作業
16.4.2 重啟停止的作業
16.5 調整謙讓度
16.5.1 nice命令
16.5.2 renice命令
16.6 定時運行作業
16.6.1 用at命令來計划執行作業
16.6.2 安排需要定期執行的腳本
16.6.3 使用新shell啟動腳本
16.7 小結
第三部分 高級 shell 腳本編程
17 創建函數
17.1 基本的腳本函數
17.1.1 創建函數
17.1.2 使用函數
17.2 返回值
17.2.1 默認退出狀態碼
17.2.2 使用return命令
17.2.3 使用函數輸出
17.3 在函數中使用變量
17.3.1 向函數傳遞參數
17.3.2 在函數中處理變量
17.4 數組變量和函數
17.4.1 向函數傳數組參數
17.4.2 從函數返回數組
17.5 函數遞歸
17.6 創建庫
17.7 在命令行上使用函數
17.7.1 在命令行上創建函數
17.7.2 在.bashrc文件中定義函數
17.8 實例
17.8.1 下載及安裝
17.8.2 構建庫
17.8.3 shtool庫函數
17.8.4 使用庫
17.9 小結
18 圖形化桌面環境中的腳本編程
18.1 創建文本菜單
18.1.1 創建菜單布局
18.1.2 創建菜單函數
18.1.3 添加菜單邏輯
18.1.4 整合shell腳本菜單
18.1.5 使用select命令
18.2 制作窗口
18.2.1 dialog包
18.2.2 dialog選項
18.2.3 在腳本中使用dialog命令
18.3 使用圖形
18.3.1 KDE環境
18.3.2 GNOME環境
18.4 小結
19 初識sed和gawk
19.1 文本處理
19.1.1 sed編輯器
19.1.2 gawk程序
19.2 sed編輯器基礎
19.2.1 更多的替換選項
19.2.2 使用地址
19.2.3 刪除行
19.2.4 插入和附加文本
19.2.5 修改行
19.2.6 轉換命令
19.2.7 回顧打印
19.2.8 使用sed處理文件
19.3 小結
20 正則表達式
20.1 什么是正則表達式
20.1.1 定義
20.1.2 正則表達式的類型
20.2 定義BRE模式
20.2.1 純文本
20.2.2 特殊字符
20.2.3 錨字符
20.2.4 點號字符
20.2.5 字符組
20.2.6 排除型字符組
20.2.7 區間
20.2.8 特殊的字符組
20.2.9 星號
20.3 擴展正則表達式
20.3.1 問號
20.3.2 加號
20.3.3 使用花括號
20.3.4 管道符號
20.3.5 表達式分組
20.4 正則表達式實戰
20.4.1 目錄文件計數
20.4.2 驗證電話號碼
20.4.3 解析郵件地址
20.5 小結
21 sed進階
21.1 多行命令
21.1.1 next命令
21.1.2 多行刪除命令
21.1.3 多行打印命令
21.2 保持空間
21.3 排除命令
21.4 改變流
21.4.1 分支
21.4.2 測試
21.5 模式替代
21.5.1 &符號
21.5.2 替代單獨的單詞
21.6 在腳本中使用sed
21.6.1 使用包裝腳本
21.6.2 重定向sed的輸出
21.7 創建sed實用工具
21.7.1 加倍行間距
21.7.2 對可能含有空白行的文件加倍行間距
21.7.3 給文件中的行編號
21.7.4 打印末尾行
21.7.5 刪除行
21.7.6 刪除HTML標簽
21.8 小結
22 gawk進階
22.1 使用變量
22.1.1 內建變量
22.1.2 自定義變量
22.2 處理數組
22.2.1 定義數組變量
22.2.2 遍歷數組變量
22.2.3 刪除數組變量
22.3 使用模式
22.3.1 正則表達式
22.3.2 匹配操作符
22.3.3 數學表達式
22.4 結構化命令
22.4.1 if語句
22.4.2 while語句
22.4.3 do-while語句
22.4.4 for語句
22.5 格式化打印
22.6 內建函數
22.6.1 數學函數
22.6.2 字符串函數
22.6.3 時間函數
22.7 自定義函數
22.7.1 定義函數
22.7.2 使用自定義函數
22.7.3 創建函數庫
22.8 實例
22.9 小結
23 使用其他shell
23.1 什么是dash shell
23.2 dash shell的特性
23.2.1 dash命令行參數
23.2.2 dash環境變量
23.2.3 dash內建命令
23.3 dash腳本編程
23.3.1 創建dash腳本
23.3.2 不能使用的功能
23.4 zsh shell
23.5 zsh shell的組成
23.5.1 shell選項
23.5.2 內建命令
23.6 zsh腳本編程
23.6.1 數學運算
23.6.2 結構化命令
23.6.3 函數
23.7 小結
第四部分 創建實用的腳本
24 編寫簡單的腳本實用工具
24.1 歸檔
歸檔數據文件
24.2 管理用戶賬戶
24.2.1 需要的功能
24.2.2 創建腳本
24.2.3 運行腳本
24.3 監測磁盤空間
24.3.1 需要的功能
24.3.2 創建腳本
24.3.3 運行腳本
24.4 小結
25 創建與數據庫、Web及電子郵件相關的腳本
25.1 MySQL數據庫
25.1.1 使用MySQL
25.1.2 在腳本中使用數據庫
25.2 使用Web
25.2.1 安裝Lynx
25.2.2 lynx命令行
25.2.3 Lynx配置文件
25.2.4 從Lynx中獲取數據
25.3 使用電子郵件
25.4 小結
26 一些小有意思的腳本
26.1 發送消息
26.1.1 功能分析
26.1.2 創建腳本
26.2 獲取格言
26.2.1 功能分析
26.2.2 創建腳本
26.3 編造借口
26.3.1 功能分析
26.3.2 創建腳本
26.4 小結
附錄 A bash命令快速指南
A.1 內建命令
A.2 常見的bash命令
A.3 環境變量
附錄 B sed和gawk快速指南
B.1 sed編輯器
B.1.1 啟動sed編輯器
B.1.2 sed命令
B.2 gawk程序
B.2.1 gawk命令格式
B.2.2 使用gawk
B.2.3 gawk變量
B.2.4 gawk程序的特性
思維導圖
防止博客圖床圖片失效,防止圖片源站外鏈:
http://www.processon.com/chart_image/5e5b2842e4b0d4dc8776bcdc.png)
思維導圖在線編輯鏈接: