一、引用符
引用符號在解析器中保護特殊元字元和引數擴充套件,其使用方法有3種:反斜槓(\),單引號(』『),雙引號(「」)。
單引號和雙引號必須匹配使用,均可在解析器中保護特殊元字元和萬用字元,但是單引號(硬轉義)主要用於資訊的原樣輸出,防止任何變數的擴充套件,雙引號(軟轉義)允許變數擴充套件、轉義符和命令替換。單引號保護雙引號,雙引號保護單引號。
反斜槓
反斜槓通過解析器將1個字元轉化為引用符號或轉義。
1)在單引號內使用反斜槓,反斜槓不會被解析,保持原樣輸出。
2)在雙引號內使用反斜槓,主要用於美元符號($),反單引號(「),雙引號(」」),單引號(」)的輸出,以及轉義符的解析,其中單引號的輸出中,反斜槓和雙引號不能同時使用。
3)不使用單引號和雙引號(如:echo \,輸出為空),則反斜槓可以被看做自動忽略。
單引號
1)單引號內不允許任何變數、元字元、萬用字元、轉義符的解析,均被原樣輸出。
2)使用雙引號或反斜槓轉義可顯示輸出單引號,但是雙引號和反斜槓不能被同時使用。
如命令:echo 「\』」,輸出結果會為(\』),而不是(』)
3)可解析正規表示式,與sed和grep命令配合使用
雙引號
保護特殊元字元和萬用字元不被shell解析,但是允許變數和命令替換,以及轉義符的解析。
二、萬用字元字元
含義例項
*匹配乙個或多個字元
a*b a與b之間可以有任意長度的字元
?匹配任意乙個字元
a?b a與b之間必須也只能有乙個字元
[list]
匹配list中任意單一字元
a[xyz]b a與b之間必須也只能有乙個[xyz]之間的字元 a[0-9]b a與b之間必須也只能有乙個0-9之間的數字字元
a[!0-9]b a與b之間有且只有乙個字元,同時字元不能為0-9
匹配字串列表中的任一字串
ab a與b之間只能為abc或xyz或123
需要說明的是,萬用字元與正規表示式語句有些相似,但它與正規表示式不同,只能將其理解為shell特殊字元即可,而且只涉及*,?,和{}。
三、元字元
字元說明
;命令分隔符,在前乙個命令結束時,忽略其返回值,繼續執行下乙個命令
&後台執行命令,最大的好處是無需等待命令執行結束,就可以在同一命令列下繼續輸入命令
=變數名=值,為變數賦值。注意」=」左右緊跟變數名和值,中間不要有空格
$變數值替換,」$變數名」替換為shell變數的」值」,為避免在文字連線時混淆,請使用$
>
輸出重定向,prog > file 將標準輸出重定向到檔案(覆蓋原檔案內容)
>>
輸出重定向,prog >> file 將標準輸出追加到檔案
<
輸入重定向,prog < file 從檔案file中獲取標準輸入
|管道命令,例:p1 | p2 將p1的標準輸出作為p2的標準輸入
()在子shell中執行命令,或用於運算,或用於命令替換($(command))
{}在當前shell中執行命令,或用在變數替換的界定範圍(例如上面的$用法)
&&||
!執行歷史記錄(history列表)中的命令,如!1
~使用者主目錄
四、轉義符
shell提供的轉義符有3中:單引號(」),雙引號(」」),反斜槓(\)。轉義符已在上述內容中進行了詳細介紹,在此只是對其做乙個簡單總結。
字元說明
」(單引號)
硬轉義,其內部所有的shell元字元、萬用字元等都不會被解析,用於引數的原樣輸出。注意,硬轉義中不允許再出現單引號
「」(雙引號)
軟轉義,可用於保護元字元和萬用字元,但是允許變數和命令替換的擴充套件,也允許反斜槓轉義符的解析
\(反斜槓)
轉義,保護元字元或萬用字元不被shell解析,主要用於雙引號,單引號,反單引號和美元符號
與echo和sed連用時,常用的反斜槓轉義字元如下表所示:
轉義符意義
\a響鈴字元
\b後退符,即刪除前乙個字元
\c輸出不換行,與/n作用相反
\d以「星期、月、日」表示日期
\f換行,但游標仍停留在原處
\h或\h
顯示基本主機名或顯示完整的主機名
\t或\t
24小時或12小時制時間
\n輸出換行
\r游標移至行首,並且不換行
\s當前shell的名稱,如bash
\t插入tab鍵
\u當前登入shell的使用者名稱
\vbash版本
\w當前工作目錄
\w當前工作目錄的基名
\\反斜槓\\,有無雙引號,結果相同
\$美元符號$,有無雙引號,結果相同
\」雙引號「,有無雙引號,結果相同
\』單引號』,不能與雙引號同時使用
\`反單引號`,有無雙引號,結果相同
\nnn
插入八進位製所代表的ascii字元
引用:
linux中的萬用字元 元字元 轉義符
example reference 每條linux命令中的每個character都是以下兩種之一 literal 普通純文字 保留字 萬用字元 元字元 轉義字元 萬用字元是由shell處理的 不是由所涉及到命令語句處理的,其實我們在shell各個命令中也沒有發現有這些萬用字元介紹 它只會出現在命令的...
Linux Shell 萬用字元 元字元 轉義符使用
shell常見萬用字元 字元含義例項 匹配 0 或多個字元 a b a與b之間可以有任意長度的任意字元,也可以乙個也沒有,如aabcb,axyzb,a012b,ab。匹配任意乙個字元 a?b a與b之間必須也只能有乙個字元,可以是任意字元,如aab,abb,acb,a0b。list 匹配 list ...
linuxshell轉義符元字元萬用字元特殊字元彙總
萬用字元是由shell處理的 不是由所涉及到命令語句處理的,其實我們在shell各個命令中也沒有發現有這些萬用字元介紹 它只會出現在命令的 引數 裡 它不用在命令名稱裡,也不用在操作符上 當shell在 引數 中遇到了萬用字元時,shell會將其當作路徑或檔名去在磁碟上搜尋可能的匹配 若符合要求的匹...