Bash新手指南

2021-04-24 19:12:55 字數 4966 閱讀 2697

bash新手指南

xalasys.com

目錄

介紹1. 本指南由來

2. 誰應該閱讀此書?

3. 新版本和取得方法

4. 歷史修訂

5. 貢獻

6. 反饋

7. 版權資訊

8. 你需要什麼?

9. 本文件約定

10. 本文件組織結構

1. bash和bash指令碼

1.1. 常用的shell程式

1.1.1. shell的普遍作用

1.1.2. shell型別

1.2. bourne again shell的優勢

1.2.1. bash是gnu shell

1.2.2. bash獨有的特性

1.3. 執行命令

1.3.1. 概要

1.3.2. shell內建命令

1.3.3. 從指令碼執行程式

1.4. 建立塊

1.4.1. shell建立塊

1.5. 開發優良指令碼

1.5.1. 優良指令碼的要素

1.5.2. 結構

1.5.3. 術語

1.5.4. 關於順序和邏輯

1.5.5. 乙個bash指令碼的例子:mysystem.sh

1.5.6. init指令碼例子

1.6. 總結

1.7. 練習

2. 編寫和除錯指令碼

2.1. 建立並且執行乙個指令碼

2.1.1. 編寫與命名

2.1.2. script1.sh

2.1.3. 執行指令碼

2.2. 指令碼基礎

2.2.1. 哪個shell來執行指令碼?

2.2.2. 加入注釋

2.3. 除錯bash指令碼

2.3.1. 除錯整個指令碼

2.3.2. 除錯部分指令碼

2.4. 總結

2.5. 練習

3. bash環境

3.1. shell初始化檔案

3.1.1. 跨系統配置檔案

3.1.2. 單獨使用者配置檔案

3.1.3. 改變shell配置檔案

3.2. 變數

3.2.1. 變數的型別

3.2.2. 建立變數

3.2.3. 匯出變數exporting variables

3.2.4. 保留變數

3.2.5. 特殊引數

3.2.6. 指令碼借助變數的迴圈使用

3.3. 引用字元

3.3.1. why?

3.3.2. 轉義字元

3.3.3. 單引號

3.3.4. 雙引號

3.3.5. ansi-c引用

3.3.6. 場合

3.4. shell擴充套件

3.4.1. 概要

3.4.2. 括號擴充套件

3.4.3. ~擴充套件

3.4.4. shell引數和變數擴充套件

3.4.5. 命令替換

3.4.6. 算術擴充套件

3.4.7. 過程替換process substitution

3.4.8. 字分割

3.4.9. 檔名擴充套件

3.5. 別名

3.5.1. 什麼是別名?

3.5.2. 建立和移除別名

3.6. 更多 bash 選項

3.6.1. 顯示選項

3.6.2. 改變選項

3.7. 總結

3.8. 練習

4. 正規表示式

4.1. 正規表示式

4.1.1. 什麼是正規表示式?

4.1.2. 正規表示式特殊字元

4.1.3. 基本和擴充套件正規表示式

4.2. 使用grep的例子

4.2.1. 什麼是grep?

4.2.2. grep與正規表示式

4.3. pattern匹配使用bash特性

4.3.1. 字元範圍

4.3.2. 字元族

4.4. 總結

4.5. 練習

5. gnu sed流編輯器

5.1. 介紹

5.1.1. 什麼是sed?

5.1.2. sed命令

5.2. 互動編輯

5.2.1. 列印包含pattern的行

5.2.2. 刪除包含pattern的輸入行

5.2.3. 行的範圍

5.2.4. 用sed來查詢替換

5.3. 非互動編輯

5.3.1. 從檔案讀取sed命令

5.3.2. 寫輸出檔案

5.4. 總結

5.5. 練習

6. gnu awk程式語言

6.1. gawk上路

6.1.1. 什麼是gawk?

6.1.2. gawk命令

6.2. 列印程式

6.2.1. 列印選擇的域

6.2.2. 格式化域

6.2.3. print命令和正規表示式

6.2.4. 特殊的patterns

6.2.5. gawk指令碼

6.3. gawk變數

6.3.1. 輸入域的分隔符

6.3.2. 輸出分隔符

6.3.3. 記錄的數量

6.3.4. 使用者定義的變數

6.3.5. 更多例子

6.3.6. printf程式

6.4. 總結

6.5. 練習

7. 條件語句

7.1. 介紹if

7.1.1. 概要

7.1.2. if的簡單應用

7.2. 更多if的高階使用方法

7.2.1. if/then/else結構

7.2.2. if/then/elif/else結構

7.2.3. if巢狀語句

7.2.4. 布林操作

7.2.5. 使用exit語句和if

7.3. 使用case語句

7.3.1. 簡單的條件

7.3.2. 初始指令碼例子

7.4. 總結

7.5. 練習

8. 編寫互動指令碼

8.1. 顯示使用者訊息

8.1.1. 互動與否?

8.1.2. 使用內建命令echo

8.2. 捕捉使用者輸入

8.2.1. 使用內建命令read

8.2.2. 提示使用者輸入

8.2.3. 重定向和檔案描述符

8.2.4. 檔案輸入和輸出

8.3. 總結

8.4. 練習

9. 重複性任務

9.1. for迴圈

9.1.1. 如何工作?

9.1.2. 例子

9.2. while迴圈

9.2.1. 什麼是while迴圈?

9.2.2. 例子

9.3. until迴圈

9.3.1. 什麼是until迴圈?

9.3.2. 例子

9.4. i/0 重定向和迴圈

9.4.1. 輸入重定向

9.4.2. 輸出重定向

9.5. break 和 continue

9.5.1. break 內建命令

9.5.2. continue 內建命令

9.5.3. 例子

9.6. 使用select內建命令來製作選單

9.6.1. 概要

9.6.2. 子選單

9.7. shift內建命令

9.7.1. what does it do?

9.7.2. 例子

9.8. 總結

9.9. 練習

10. 變數高階

10.1. 變數的型別

10.1.1. 普通的變數賦值

10.1.2. 使用 declare 內建命令built-in

10.1.3. 常量

10.2. 陣列變數

10.2.1. 建立陣列

10.2.2. 對陣列的變數解引用

10.2.3. 刪除陣列變數

10.2.4. 陣列的例子

10.3. 變數的操作

10.3.1. 變數算術運算

10.3.2. 變數的長度

10.3.3. 變數的轉化

10.4. 總結

10.5. 練習

11. 函式

11.1. 介紹

11.1.1. 什麼是函式?

11.1.2. 函式語法

11.1.3. 函式中的位置引數

11.1.4. 顯示函式

11.2. 函式在指令碼中的例子

11.2.1. 迴圈利用

11.2.2. 設定路徑

11.2.3. 遠端備份

11.3. 總結

11.4. 練習

12. 捕捉訊號

12.1. 訊號

12.1.1. 介紹

12.1.2. kill訊號的使用

12.2. 陷阱

12.2.1. 概要

12.2.2. bash怎樣解釋陷阱

12.2.3. 更多例子

12.3. 總結

12.4. 練習

a.1. 普通特性

a.2. 不同的特性

b.1. preamble

b.3. verbatim copying

b.4. copying in quantity

b.5. modifications

b.6. combining documents

b.7. collections of documents

b.8. aggregation with independent works

b.9. translation

b.10. termination

b.11. future revisions of this license

b.12. how to use this license for your documents

術語表index

介紹

nginx 新手指南

官網 可以使用 nginx 的幫助命令檢視可以使用的命令 nginx h 或者 nginx root gray sbin nginx h nginx version openresty 1.11.2.2 usage nginx hvvttq s signal c filename p prefix ...

nginx新手指南

記錄nginx在centos上的安裝,開啟過程。其實也就是翻譯兩篇nginx上的文件的部分。install beginner s guide nginx name nginx repo baseurl gpgcheck 0 enabled 1 usr sbin nginx 這是開啟nginx的檔案 ...

Swift 新手指南

本文講的是swift 新手指南,表達他們對這一過時語言的困擾。var greeting string hello world var greeting hello world 推斷為字串型別var greeting hello world 推斷為字串型別 greeting hello swift l...