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


1. 重定向符號及含義

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

數字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正則表達式有一些區別. 

  通配符的目的:bash中用於實現文件名"通配",通配符僅僅匹配字符. 

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

管道COMMAND1 | COMMAND2 | COMMAND3| …后一個命令會將前一個

命令的標准輸出,當做要執行的對象

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

1)可以生成序列;  2)shell腳本編程中,用作引用變量,作為變量與普通字符的

分隔,讓變量成為一個整體

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

  注意:專用字符在命令行中一般需加中括號[]括起來,所以,下表整理成對出現.

字符 含義
[[: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)

將命令放到后台去執行;如果&兩邊都是命令,則前面的命令會被放到后台執行,

后面的命令也會同時執行,這兩者之間沒有邏輯關系,命令是並行執行的.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM