linux引用符 萬用字元 元字元 轉義符

2021-09-20 10:07:49 字數 2971 閱讀 5018

一、引用符

引用符號在解析器中保護特殊元字元和引數擴充套件,其使用方法有3種:反斜槓(\),單引號(』『),雙引號(「」

單引號和雙引號必須匹配使用,均可在解析器中保護特殊元字元和萬用字元,但是單引號(硬轉義)主要用於資訊的原樣輸出,防止任何變數的擴充套件,雙引號(軟轉義)允許變數擴充套件、轉義符和命令替換。單引號保護雙引號,雙引號保護單引號。

反斜槓

反斜槓通過解析器將1個字元轉化為引用符號或轉義。

1)在單引號內使用反斜槓,反斜槓不會被解析,保持原樣輸出。

2)在雙引號內使用反斜槓,主要用於美元符號($),反單引號(「),雙引號(」」),單引號(」)的輸出,以及轉義符的解析,其中單引號的輸出中,反斜槓和雙引號不能同時使用。

3)不使用單引號和雙引號(如:echo \,輸出為空),則反斜槓可以被看做自動忽略。

單引號

1)單引號內不允許任何變數、元字元、萬用字元、轉義符的解析,均被原樣輸出。

2)使用雙引號或反斜槓轉義可顯示輸出單引號,但是雙引號和反斜槓不能被同時使用。

如命令:echo 「\』」,輸出結果會為(\』),而不是(』)

3)可解析正規表示式,與sedgrep命令配合使用

雙引號

保護特殊元字元和萬用字元不被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會將其當作路徑或檔名去在磁碟上搜尋可能的匹配 若符合要求的匹...