管道命令符「|」的做用是將前一個命令的標準輸出看成後後一個命令的標準輸入,格式爲「命令A|命令B」。linux
向zhusaiwei-hbza用戶發送一封郵件:bash
[root@zhusaiwei-hbza ~]# echo "Content" | mail -s "Subject" zhusaiwei-hbza架構
對於輸出重定向符有這些狀況:spa
符號命令行 |
做用ci |
命令 > 文件文檔 |
將標準輸出重定向到一個文件中(清空原有文件的數據)it |
命令 2> 文件io |
將錯誤輸出重定向到一個文件中(清空原有文件的數據)table |
命令 >> 文件 |
將標準輸出重定向到一個文件中(追加到原有內容的後面) |
命令 2>> 文件 |
將錯誤準輸出重定向到一個文件中(追加到原有內容的後面) |
命令 >> 文件 2>$1 |
將標準輸出與錯誤輸出共同寫入到文件中(追加到原有內容的後面) |
對於輸入重定向有這些狀況:
符號 |
做用 |
命令 < 文件 |
將文件做爲命令的標準輸入 |
命令 << 分界符 |
從標準輸入中讀入,直到碰見「分界符」才中止 |
命令 < 文件1 > 文件2 |
將文件1做爲命令的標準輸入並將標準輸出到文件2 |
將man命令的幫助文檔寫入到/root/man.txt中:
[root@zhusaiwei-hbza ~]# man bash > /root/man.txt
向readme.txt文件中寫入一行文字:
[root@zhusaiwei-hbza ~]# echo "Welcome to LinuxProbe.Com" > readme.txt
向readme.txt中追加一行文字:
[root@zhusaiwei-hbza ~]# echo "Quality linux learning materials" >> readme.txt
查看readme.txt中的內容:
[root@zhusaiwei-hbza ~]# cat readme.txt
Welcome to LinuxProbe.Com
Bash解釋器的支持多種文本通配符包括:
通配符 |
含義 |
* |
匹配零個或多個字符。 |
? |
匹配任意單個字符。 |
[0-9] |
匹配範圍內的數字。 |
[abc] |
匹配已出的任意字符。 |
查看sda開頭的全部設備文件:
[root@zhusaiwei-hbza ~]# ls /dev/sda*
/dev/sda /dev/sda1 /dev/sda2
查看sda後面有一個字符的設備文件:
[root@zhusaiwei-hbza ~]# ls /dev/sda?
/dev/sda1 /dev/sda2
查看sda後面包含0-9數字的設備文件:
[root@linuxprobe ~]# ls /dev/sda[0-9]
/dev/sda1 /dev/sda2
查看sda後面是1或3或5的設備文件:
[root@zhusaiwei-hbza ~]# ls /dev/sda[135]
/dev/sda1
另外bash解釋器還支持不少的特殊字符擴展:
字符 |
做用 |
\(反斜槓) |
轉義後面單個字符 |
''(單引號) |
轉義全部的字符 |
""(雙引號) |
變量依然生效 |
``(反引號) |
執行命令語句 |
定義名稱爲PRICE的變量值爲5:
[root@zhusaiwei-hbza ~]# PRICE=5
想要輸出」價格是5″:
[root@zhusaiwei-hbza ~]# echo "Price is $PRICE"
Price is 5
想要輸出」價格是$5″,但由於美圓符號與表明變量取值的$符號衝突了,因此報錯了:
[root@zhusaiwei-hbza ~]# echo "Price is $$PRICE"
Price is 3767PRICE
添加一個反斜槓,將第一個$符號轉義:
[root@zhusaiwei-hbza ~]# echo "Price is \$$PRICE"
Price is $5
使用單引號,變量將再也不被取值:
[root@zhusaiwei-hbza ~]# echo 'Price is \$$PRICE'
Price is \$$PRICE
執行uname -a後能夠查看到本機內核的版本與架構信息(反引號裏面的命令會被執行):
[root@zhusaiwei-hbza ~]# echo `uname -a`
Linux zhusaiwei-hbza.com 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux