對應剛接觸linux命令的小夥伴們來講,這些符號必定是很困擾的下面咱們一塊兒來看這些符號區別和用法java
& 表示任務在後臺執行,如要在後臺運行
如:linux
[root@localhost local]# java -jar test.jar > log.txt &
運行 test.jar程序 ,而且置於後臺執行,執行的日誌重定向 到當前默認的log.txt文件中bash
&& 表示前一條命令執行成功時,才執行後一條命令
如:日誌
[root@localhost tmp]# ls -l && cd ..
總用量 4
-rw-r–r–. 1 root root 2252 1月 4 22:25 log.txt
-rw——-. 1 root root 0 1月 3 23:23 yum.log
[root@localhost /]#進程
| 表示管道,上一條命令的輸出,做爲下一條命令參數(輸入)io
如 :
[root@localhost ~]# ps -aux | grep aux
Warning: bad syntax, perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.8/FAQ
root 53 0.0 0.0 0 0 ? S 16:33 0:00 [ata_aux]
root 2379 4.0 0.1 110224 1172 pts/2 R+ 22:55 0:00 ps -aux
root 2380 0.0 0.0 103316 868 pts/2 D+ 22:55 0:00 grep aux
查詢所有進程後輸出結果在進行過濾跟 進行中包含aux的進程。test
|| 表示上一條命令執行失敗後,才執行下一條命令,後臺
如:二進制
[root@localhost tmp]# als -l || cd ..
-bash: als: command not found
[root@localhost /]#grep
來看>符號是指:將正常信息重定向
如: find / -name 「*.txt」 > /tmp/log.txt
在跟目錄下根據名字來查找*.tx輸入的日誌放置/tmp/log.txt文件中
&>能夠將錯誤信息或者普通訊息都重定向輸出
---------------------
&& 和 || 屬於邏輯運算符號
& 和 | 屬於位操做符
--------------------------------------------------------------------------------------------------------------------
1、&&和&的區別
1.1 相同點:
&和&&均可以用做邏輯與的運算符,表示邏輯與(and),當運算符兩邊的表達式的結果都爲true時,整個運算結果才爲true,不然,只要有一方爲false,則結果爲false。
1.2不一樣點:
1.2.1. &&還具備短路的功能,即若是第一個表達式爲false,則再也不計算第二個表達式。
例如,對於if(str != null && !str.equals(「」))表達式。
當str爲null時,後面的表達式不會執行,因此不會出現NullPointerException
若是將&&改成&,則會拋出NullPointerException異常。
再好比,If(x==33 & ++y>0) y會增加,If(x==33 && ++y>0)不會增加
1.2.2.&做爲爲運算時,&是按位與操做,參加運算的兩個數據按照二進制位進行「與」運算。
若是兩個相應的二進制位都爲1,那該位的結果值就是1,不然爲0,即0&0=0,0&1=0,1&1=1,1&0=0。
好比:3&5並不等於8,應該按位與,00000011&00000001=00000001。
備註:這道題先說二者的共同點,再說出&&和&的特殊之處,並列舉一些經典的例子來代表本身理解透徹深刻、實際經驗豐富。
--------------------------------------------------------------------------------------------------------------------
2、|| 和 | 的區別
2.1 相同點 :當兩者表示或的時候,兩者都true則true,不然爲false。
2.2 不一樣點:
2.2.1 || 也存在短路的問題,當前者爲true時,則不會判斷後面的表達(與上面的&&相似)
2.2.2 |是按位或操做,參加運算的兩個數據按照二進制位進行「或」運算,若是兩個相應的二進制位中只要有一個爲1,則該位結果就是1,即爲0|1=一、1|1=一、1|0=一、0|0=0。
||是邏輯或運算符,直接看意思,a||b,若a、b中有一個爲真,則a||b結果爲真。
--------------------------------------------------------------------------------------------------------------------
補充下:~與!
~是一個單目運算符,用來對一個二進制位按位取反,即0變成1,1變成0,好比~00001111=11110000。
!是邏輯非運算符,咱們仍是直接來看他的意思,!a的意思是:若a爲真,則!爲假,若a爲假則!a爲真。---------------------