linux中的特殊符號及其含義梳理

1. 重定向符號及含義

  注意:箭頭流向便是數據的流向.linux

數字0:標準輸入(standard input,簡寫stdin),數據從右往左方向流動
數字1:標準正確輸出(standard output,簡寫stdout),數據從左往右流動
數字2:標準錯誤輸出(standard error output,簡寫stderr),數據從左往右流動
>  或  1> 把正確的進行輸出(標準輸出),覆蓋
>>  或  1>> 把正確的進行輸出(標準輸出),追加
2> 把錯誤的進行輸出,覆蓋
2>> 把錯誤的進行輸出,追加
<  或  0< 通常經過文件來輸入重定向,如tr命令使用較多(0通常省略不寫)
<<  或  0<< 追加輸入重定向,通常cat命令用的多,在shell腳本中(0通常省略不寫)
&> 合併正確和錯誤輸出,覆蓋重定向
&>> 合併正確和錯誤輸出,追加劇定向
COMMAND > /path 2> /path2 正確或錯誤(標準輸出和標準輸入)輸出至不一樣位置
COMMAND > /path 2> &1 把錯誤輸出導入正確輸出的文件中
COMMAND > /path 2>> &1 追加
&>/dev/null 正確和錯誤的都重定向到空
COMMAND > /dev/null 2>&1 定向到空(同上一個)

2. 特殊符號/通配符及含義

  通配符:通配符是bash的內置功能,其適用範圍在命令行中的普通命令及腳本編程中,跟linux正則表達式有一些區別.  git

符號 含義
######路徑位置
. 當前目錄
.. 上一級目錄
- 上一次所在目錄
~ 用戶家目錄
######模糊匹配
* 匹配全部(正則表達式中表明任意長度的任意字符)
? 匹配任意單個字符,有且只有一個字符(正則表達式中表明任意單個字符)
! 取反
[] 匹配指定範圍內(中括號內)的任意單個字符
[^] 匹配指定範圍外(中括號以外)的任意單個字符(非)
[!] 取反,等價於[^]
######引號
'' 單引號,強引用,所見即所得,不會作解釋
"" 雙引號,弱引用,雙引號中的變量或命令或轉移字符會先被解釋
`` 反引號,引用命令,解釋命令(等價於 $() 或 ${} )
######其餘特殊符號
\ 轉義字符,還原本來的意義
; 多個命令之間的分隔符(-exec命令中,分號;表明bash的特殊意義)
|

管道COMMAND1 | COMMAND2 | COMMAND3| …後一個命令會將前一個正則表達式

命令的標準輸出,當作要執行的對象shell

$ 1)表明普通用戶的提示符;  2)$(string)表明字符串變量內容
# 1)在文本中,前面加#表明行內容被註釋;  2)超級管理員的提示符
{}

1)能夠生成序列;  2)shell腳本編程中,用做引用變量,做爲變量與普通字符的編程

分隔,讓變量成爲一個總體bash

3. 專用字符集合及其含義

  注意:專用字符在命令行中通常需加中括號[]括起來,因此,下表整理成對出現.spa

字符 含義
[[:alnum:]] 任意數字或字母,匹配大小寫字母和數字,等價於字符類'[:alpha:]'與字符類'[:digit:]'的和
[[:alpha:]] 任意大小寫字母,匹配大小寫字母,等價於字符類'[:lower:]'和字符類'[:upper:]'的和
[[:blank:]] 空白字符類,包括:空格和製表符
[[:cntrl:]] 控制字符
[[:digit:]] [0-9]  中的任意數字
[[:graph:]] 圖片和圖形
[[:lower:]] [a-z]  任意小寫字母
[[:print:]] 可打印字符,字符類'[:alnum:]'與字符類'[:punct:]'和空格的和
[[:punct:]] 任意標點符號
[[:space:]] 任意空格字符
[[:upper:]] [A-Z] 任意大寫字母
[[:xdigit:]] 十六進制字符

4. bash中的邏輯運算符

  注意:命令行

  1)邏輯運算符遵循從左往右的順序進行運算,邏輯運算符&&和||是短路符號,符號左右兩邊的命令之間具備邏輯關係.對象

  2)聯合使用 && 和 || 的時候,先判斷 邏輯與 再判斷 邏輯或圖片

符號 含義

&&

(COMMAND1 && COMMAND2)

與運算and.COMMAND1執行成功,沒有報錯,COMMAND2纔會執行;

若COMMAND1執行報錯,則COMMAND2不會被執行.

判斷命令執行是否成功的依據是echo $? ,若結果是0,

則是命令執行成功,如果其餘數值,都是表明命令執行失敗.

||

(COMMAND1 || COMMAND2)

或運算or.當COMMAND1執行成功,沒有報錯,COMMAND2不會被執行;

若COMMAND1執行報錯,則COMMAND2會被執行

! 1)在bash中表示取反;  2)調用history最近歷史命令

;

(COMMAND1;COMMAND2)

分號前面的命令出錯也不影響後面的命令執行,即COMMAND 1;

COMMAND2都會被執行

&

(COMMAND1 & COMMAND2)

將命令放到後臺去執行;若是&兩邊都是命令,則前面的命令會被放到後臺執行,

後面的命令也會同時執行,這二者之間沒有邏輯關係,命令是並行執行的.

相關文章
相關標籤/搜索