黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Linux中命令鏈接操作符的十個(gè)最佳實(shí)例

系統(tǒng) 2865 0

Linux命令中的鏈接的意思是,通過(guò)操作符的行為將幾個(gè)命令組合執(zhí)行。Linux中的鏈接命令,有些像你在shell中寫(xiě) 短小的shell腳本 ,并直接在終端中執(zhí)行。鏈接使得自動(dòng)處理變得更方便。不僅如此,一個(gè)無(wú)人看管的機(jī)器在鏈接操作符的幫助下能夠十分有條理地運(yùn)行。

Linux中命令鏈接操作符的十個(gè)最佳實(shí)例

Linux中的10個(gè)鏈接操作符

?

本文旨在介紹一些常用的 鏈接操作符 ,通過(guò)簡(jiǎn)短的描述和相關(guān)的例子幫助讀者提高生產(chǎn)力、降低系統(tǒng)負(fù)載、寫(xiě)出更加簡(jiǎn)短有意義的代碼。

?

1. 和號(hào)操作符 (&)

& ’的作用是使命令在后臺(tái)運(yùn)行。只要在命令后面跟上一個(gè)空格和 ‘ & ’。你可以一口氣在后臺(tái)運(yùn)行多個(gè)命令。

在后臺(tái)運(yùn)行一個(gè)命令:

      tecmint@localhost:~$ ping -c5 www.tecmint.com &
    
?

同時(shí)在后臺(tái)運(yùn)行兩個(gè)命令:

      root@localhost:/home/tecmint# apt-get update & mkdit test &
    

?

2. 分號(hào)操作符 (;)

分號(hào)操作符使你可以一口氣運(yùn)行幾個(gè)命令,命令順序執(zhí)行。

      root@localhost:/home/tecmint# apt-get update ; apt-get upgrade ; mkdir test
    

上述命令先后執(zhí)行了update和upgrade,最后在當(dāng)前工作目錄下創(chuàng)建了一個(gè)‘ test ’文件夾

?

3. 與操作符 (&&)

如果第一個(gè)命令執(zhí)行成功, 與操作符 (&&) 才會(huì)執(zhí)行第二個(gè)命令,也就是說(shuō),第一個(gè)命令退出狀態(tài)是 0 。(譯注:原文的這里明顯寫(xiě)錯(cuò)了,我們進(jìn)行了改譯,有興趣的讀者可以參看原文以及原文下面的評(píng)論。在UNIX里面,0表示無(wú)錯(cuò)誤,而所有非0返回值都是各種錯(cuò)誤)。這個(gè)命令在檢查最后一個(gè)命令的執(zhí)行狀態(tài)時(shí)很有用。

比如,我想使用 links 命令 在終端中訪問(wèn)網(wǎng)站 tecmint.com ,但在這之前我需要檢查主機(jī)是否 在線 不在線

      root@localhost:/home/tecmint# ping -c3 www.tecmint.com && links www.tecmint.com
    

?

4. 或操作符 (||)

或操作符 (||) 很像編程中的 else 語(yǔ)句。上面的操作符允許你在第一個(gè)命令失敗的情況下執(zhí)行第二個(gè)命令,比如,第一個(gè)命令的退出狀態(tài)是 1

舉例來(lái)說(shuō),我想要在非root帳戶中執(zhí)行‘ apt-get update ‘,如果第一個(gè)命令失敗了,接著會(huì)執(zhí)行第二個(gè)命令‘ links www.tecmint.com ‘。

      tecmint@localhost:~$ apt-get update || links tecmint.com
    

?

上面的命令中,由于該 用戶 不允許 更新 系統(tǒng),這意味著第一個(gè)命令的退出狀態(tài)是’ 1 ′,因此最后一個(gè)命令‘ links tecmint.com ‘會(huì)執(zhí)行。

如果第一個(gè)命令成功執(zhí)行并且退出狀態(tài)是‘ 0 ‘呢?很明顯的,第二個(gè)命令不會(huì)執(zhí)行。

      tecmint@localhost:~$ mkdir test || links tecmint.com
    

?

這里,用戶在家目錄創(chuàng)建了一個(gè)‘ test ‘文件夾,這是被允許的。命令成功的執(zhí)行,退出狀態(tài)是‘ 0 ‘,因此,最后的命令不會(huì)執(zhí)行。

?

5. 非操作符 (!)

非操作符 (!) 很像 except 語(yǔ)句。這個(gè)命令會(huì)執(zhí)行除了提供的條件外的所有的語(yǔ)句。要理解這點(diǎn),在你的主目錄創(chuàng)建一個(gè)目錄‘ tecmint ’,并‘ cd ’到它這里。

      tecmint@localhost:~$ mkdir tecmint 
tecmint@localhost:~$ cd tecmint
    
?

接下來(lái),在文件夾‘ tecmint ’下創(chuàng)建不同類(lèi)型的文件。

      tecmint@localhost:~/tecmint$ touch a.doc b.doc a.pdf b.pdf a.xml b.xml a.html b.html
    

?

看一下我們?cè)谖募A‘ tecmint ’創(chuàng)建的新文件。

      tecmint@localhost:~/tecmint$ ls 

a.doc  a.html  a.pdf  a.xml  b.doc  b.html  b.pdf  b.xml
    
?

用一種聰明的辦法馬上刪除除了 ‘ html ’之外的所有文件。

      tecmint@localhost:~/tecmint$ rm -r !(*.html)
    
?

驗(yàn)證一下上次的執(zhí)行結(jié)果,使用 ls 命令 列出可見(jiàn)所有文件。

      tecmint@localhost:~/tecmint$ ls 

a.html  b.html
    

?

6. 與或操作符 (&& – ||)

上面的操作符實(shí)際上是‘ ’和‘ ’操作符的組合。它很像‘ if-else ‘語(yǔ)句。

比如,我們ping tecmint.com ,如果成功打印‘ 已驗(yàn)證 ’,否則打印‘ 主機(jī)故障 ’。

      tecmint@localhost:~/tecmint$ ping -c3 www.tecmint.com && echo "Verified" || echo "Host Down"
    
?

示例輸出

      PING www.tecmint.com (212.71.234.61) 56(84) bytes of data. 
64 bytes from www.tecmint.com (212.71.234.61): icmp_req=1 ttl=55 time=216 ms 
64 bytes from www.tecmint.com (212.71.234.61): icmp_req=2 ttl=55 time=224 ms 
64 bytes from www.tecmint.com (212.71.234.61): icmp_req=3 ttl=55 time=226 ms 

--- www.tecmint.com ping statistics --- 
3 packets transmitted, 3 received, 0% packet loss, time 2001ms 
rtt min/avg/max/mdev = 216.960/222.789/226.423/4.199 ms 
Verified
    
?

現(xiàn)在,斷開(kāi)我們現(xiàn)在的網(wǎng)絡(luò)連接誒,再試一下相同的命令。

      tecmint@localhost:~/tecmint$ ping -c3 www.tecmint.com && echo "verified" || echo "Host Down"
    

?

實(shí)例輸出

      ping: unknown host www.tecmint.com 
Host Down
    

?

7. 管道操作符 (|)

PIPE 在將第一個(gè)命令的輸出作為第二個(gè)命令的輸入時(shí)很有用。比如,‘ ls -l ’的輸出通過(guò)管道到‘ less ’,并看一下輸出。

      tecmint@localhost:~$ ls -l | less
    

?

8. 命令合并操作符 {}

合并兩個(gè)或多個(gè)命令,第二個(gè)命令依賴于第一個(gè)命令的執(zhí)行。

比如,檢查一下文件‘ xyz.txt ’是否在 Downloads 目錄下,如果不存在則創(chuàng)建之并輸出提示信息。

      tecmint@localhost:~$ [ -f /home/tecmint/Downloads/xyz.txt ] || touch /home/tecmint/Downloads/xyz.txt; echo "The file does not exist"
    

?

但是這樣的命令的運(yùn)行結(jié)果并不如我們預(yù)期的運(yùn)行,會(huì)始終都輸出提示信息。因此需要使用{}操作符來(lái)合并命令:

      tecmint@localhost:~$ [ -f /home/tecmint/Downloads/xyz1.txt ] || {touch /home/tecmint/Downloads/xyz.txt; echo "The file does not exist"}

“The file does not exist”
    

?

(譯注:原文這里應(yīng)該也是復(fù)制或書(shū)寫(xiě)的時(shí)候,出現(xiàn)了一些問(wèn)題,例子中并沒(méi)有出現(xiàn)小標(biāo)題中的"{}"操作符,所以這里我們進(jìn)行了修改)

?

9. 優(yōu)先操作符 ()

這個(gè)操作符()可以讓命令以優(yōu)先順序執(zhí)行。

      Command_x1 &&Command_x2 || Command_x3 && Command_x4.
    

?

在上面的偽代碼中,如果 Command_x1 執(zhí)行失敗了會(huì)怎么樣, Command_x2 , Command_x3 , Command_x4 沒(méi)有一個(gè)會(huì)執(zhí)行,對(duì)于這種情況,我們使用 優(yōu)先操作符

      (Command_x1 &&Command_x2) || (Command_x3 && Command_x4)
    

?

在上面的偽代碼中,如果 Command_x1 執(zhí)行失敗, Command_x2 不會(huì)執(zhí)行,但是 Command_x3 會(huì)繼續(xù)執(zhí)行, Command_x4 會(huì)依賴于 Command_x3 的退出狀態(tài)。

?

10. 連接符 (\)

連接符 \ 如它名字所說(shuō),被用于連接shell中那些太長(zhǎng)而需要分成多行的命令。可以在輸入一個(gè)“\”之后就回車(chē),然后繼續(xù)輸入命令行,直到輸入完成。比如,下面的命令會(huì)打開(kāi)文本文件 test(1).txt

      tecmint@localhost:~/Downloads$ nano test\
1.txt
    

?

今天就到這里,我會(huì)近日開(kāi)始另外一個(gè)有趣的文章。不要走開(kāi),繼續(xù)關(guān)注 我們 。不要忘記在評(píng)論欄里提出有價(jià)值的反饋。


via: http://www.tecmint.com/chaining-operators-in-linux-with-practical-examples/

譯者: geekpi 校對(duì): Mr小眼兒

原文由 LCTT 原創(chuàng)翻譯, Linux中國(guó) 榮譽(yù)推出

原文地址: http://linux.cn/thread/12205/1/1/

?

Linux中命令鏈接操作符的十個(gè)最佳實(shí)例


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論