Linux作業系統之shell與shell基本操作
一、shell與shell基本操作
1.1、shell基本功能與概念
shell是使用者和Linux核心之間的介面程式,作為人機互動的橋樑。
功能有6方面:命令解釋執行,檔名及各種替換、I/O重定向、通訊管道建立、系統環境設定和shell程式設計。
shell的另一個重要特性就是它自身就是一個解釋型的程式設計語言。
1.2、字元與保留字
1.2.1、字元
白空格:在Unix/Linux系統中,空格和Tab鍵稱為白空格,主要用於命令列中命令名、引數以及選項的分隔。在特殊情況下,白空格中也可包含回車字元。
萬用字元
萬用字元含義舉例模式串 | 意義 |
* | 當前目錄下所有檔名 , 但不包含以“.”開頭的檔案。eg: abc是,但.abc 不是 |
*Text* | 當前目錄下所有檔名中包含有Text的檔案,但不包括“.”開頭的檔案。 |
[ab-fm]* | 當前目錄下所有以a,b,c,d,e,f和m開頭的檔案 |
[ab-fm]? | 當前目錄下所有以a,b,c,d,e,f和m開頭且後面只跟一個字元的檔名。 |
[!ab-fm]?或[^ab-fm]? | 當前目錄下所有不以a,b,c,d,e,f和m開頭且後面只跟一個字元的檔名。 |
/dev/sd? | 目錄/dev下所有以sd開頭且只有三個字元的檔名。 |
註釋符與註釋
在所有程式語言中都有註釋,以增加程式的可讀性。在shell命令或shell程式設計中,規定從字元“#”開始以後到末行的部分作為註釋,因此以“#”開頭的行是註釋行。(特例:$#表示命令列引數的個數,而${#name}表示變數name的值作為字串的長度。)
若在行中需要使用“#”引導註釋,則“#”前至少要有一個空白格。
轉義字元
字元 | 意義 |
\a | 響鈴符 |
\b | 退格符 |
\f | 換頁 |
\n | 換行 |
\x?? | 十六進位制表示 |
\0??? | 八進位制表示 |
\t | Tab鍵 |
\v | 垂直進位制符 |
\\ | \ |
\' | ' |
\” | " |
\e | ESC |
1.2.2、特殊鍵
Linux系統部分特殊鍵
特殊鍵 | 意義 |
Ctrl+D | 結束當前程式輸入或結束當前程式,或從系統中登出 |
Ctrl+C | 終止當前程式的執行 |
Ctrl+\ | 終止當前程式的執行(系統內部處理時不同於Ctrl+C),可能產生記憶體映像檔案 |
Ctrl+Z | 掛起當前程式執行 |
Ctrl+S/Ctrl+Q | 暫停/繼續螢幕的輸出滾動,必須配合使用 |
ScrolLock | 暫停/繼續螢幕的輸出滾動,開關鍵 |
Ctrl+Alt+Del | 預設動作為重啟系統 |
Alt+F# | 字元終端切換,如Alt+F2將終端切換至F2 |
Ctrl+Alt+F# | 從圖形介面切換終端到字元終端,如Ctrl+Alt+F1從圖形介面切換至F1 |
1.2.3、保留字
任何程式語言或系統都有一定數量的保留字,bash的部分保留字如下。
!、[, ]、(, )、{, }、break、continue、cd、echo、eval、exec、exit、export、funtion、getopts、hash、pwd、read、readonly、return、select、set、shift、test、time、trap、type、ulimit、unset、unmask、wait、for、do、done、case、in、esac、if、else、elif、fi、while、until... ...