方式:command1 | command2
Linux所提供的管道符“|”將兩個(gè)命令隔開,管道符左邊命令的輸出就會(huì)作為管道符右邊命令的輸入。連續(xù)使用管道意味著第一個(gè)命令的輸出會(huì)作為 第二個(gè)命令的輸入,第二個(gè)命令的輸出又會(huì)作為第三個(gè)命令的輸入,依此類推
利用一個(gè)管道
# rpm -qa|grep perl
這條命令使用一個(gè)管道符“|”建立了一個(gè)管道。管道將rpm -qa命令的輸出(包括系統(tǒng)中所有安裝的RPM包)作為grep命令的輸入,從而列出帶有perl字符的RPM包來。
利用多個(gè)管道
# cat /etc/passwd | grep /bin/bash | wc -l
這條命令使用了兩個(gè)管道,利用第一個(gè)管道將cat命令(顯示passwd文件的內(nèi)容)的輸出送給grep命令,grep命令找出含有“/bin /bash”的所有行;第二個(gè)管道將grep的輸出送給wc命令,wc命令統(tǒng)計(jì)出輸入中的行數(shù)。這個(gè)命令的功能在于找出系統(tǒng)中有多少個(gè)用戶使用bash
&放在啟動(dòng)參數(shù)后面表示設(shè)置此進(jìn)程為后臺(tái)進(jìn)程
方式:command1 &
默認(rèn)情況下,進(jìn)程是前臺(tái)進(jìn)程,這時(shí)就把Shell給占據(jù)了,我們無法進(jìn)行其他操作,對(duì)于那些沒有交互的進(jìn)程,很多時(shí)候linux命令大全,我們希望將其在后臺(tái)啟動(dòng),可以在啟動(dòng)參數(shù)的時(shí)候加一個(gè)'&'實(shí)現(xiàn)這個(gè)目的。
shell 在執(zhí)行某個(gè)命令的時(shí)候,會(huì)返回一個(gè)返回值,該返回值保存在 shell 變量 $? 中。當(dāng) $? == 0 時(shí),表示執(zhí)行成功;當(dāng) $? == 1 時(shí)(我認(rèn)為是非0的數(shù),返回值在0-255間)linux命令大全,表示執(zhí)行失敗。
有時(shí)候,下一條命令依賴前一條命令是否執(zhí)行成功。如:在成功地執(zhí)行一條命令之后再執(zhí)行另一條命令,或者在一條命令執(zhí)行失敗后再執(zhí)行另一條命令等。shell 提供了 && 和 || 來實(shí)現(xiàn)命令執(zhí)行控制的功能,shell 將根據(jù) && 或 || 前面命令的返回值來控制其后面命令的執(zhí)行。
語法格式如下:
command1 | command2 | command3。command1 $(command2)。command1 || command2 或者。
命令之間使用 && 連接,實(shí)現(xiàn)邏輯與的功能。
只有在 && 左邊的命令返回真(命令返回值 $? == 0),&& 右邊的命令才會(huì)被執(zhí)行。
只要有一個(gè)命令返回假(命令返回值 $? == 1),后面的命令就不會(huì)被執(zhí)行。
邏輯或的功能
語法格式如下:
command1 || command2 [|| command3 ...]
命令之間使用 || 連接,實(shí)現(xiàn)邏輯或的功能。
只有在 || 左邊的命令返回假(命令返回值 $? == 1),|| 右邊的命令才會(huì)被執(zhí)行。這和 c 語言中的邏輯或語法功能相同,即實(shí)現(xiàn)短路邏輯或操作。
只要有一個(gè)命令返回真(命令返回值 $? == 0),后面的命令就不會(huì)被執(zhí)行。 –直到返回真的地方停止執(zhí)行。
舉例,ping命令判斷存活主機(jī)
ping -c 1 -w 1 192.168.1.1 &> /dev/null && result=0 ||result=1 if [ "$result" == 0 ];then echo "192.168.1.1 is UP!" else echo "192.168.2.1 is DOWN!" fi
注意 &>要連起來寫。