注意:箭頭流向便是數據的流向.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 | 定向到空(同上一個) |
通配符:通配符是bash的內置功能,其適用範圍在命令行中的普通命令及腳本編程中,跟linux正則表達式有一些區別. git
符號 | 含義 |
######路徑位置 | |
. | 當前目錄 |
.. | 上一級目錄 |
- | 上一次所在目錄 |
~ | 用戶家目錄 |
######模糊匹配 | |
* | 匹配全部(正則表達式中表明任意長度的任意字符) |
? | 匹配任意單個字符,有且只有一個字符(正則表達式中表明任意單個字符) |
! | 取反 |
[] | 匹配指定範圍內(中括號內)的任意單個字符 |
[^] | 匹配指定範圍外(中括號以外)的任意單個字符(非) |
[!] | 取反,等價於[^] |
######引號 | |
'' | 單引號,強引用,所見即所得,不會作解釋 |
"" | 雙引號,弱引用,雙引號中的變量或命令或轉移字符會先被解釋 |
`` | 反引號,引用命令,解釋命令(等價於 $() 或 ${} ) |
######其餘特殊符號 | |
\ | 轉義字符,還原本來的意義 |
; | 多個命令之間的分隔符(-exec命令中,分號;表明bash的特殊意義) |
| | 管道COMMAND1 | COMMAND2 | COMMAND3| …後一個命令會將前一個正則表達式 命令的標準輸出,當作要執行的對象shell |
$ | 1)表明普通用戶的提示符; 2)$(string)表明字符串變量內容 |
# | 1)在文本中,前面加#表明行內容被註釋; 2)超級管理員的提示符 |
{} | 1)能夠生成序列; 2)shell腳本編程中,用做引用變量,做爲變量與普通字符的編程 分隔,讓變量成爲一個總體bash |
注意:專用字符在命令行中通常需加中括號[]括起來,因此,下表整理成對出現.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:]] | 十六進制字符 |
注意:命令行
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) |
將命令放到後臺去執行;若是&兩邊都是命令,則前面的命令會被放到後臺執行, 後面的命令也會同時執行,這二者之間沒有邏輯關係,命令是並行執行的. |