命令執(zhí)行順序控制與管道

1. 命令執(zhí)行順序控制

  • && 表示如果前面的命令執(zhí)行結(jié)果(不是表示終端輸出的內(nèi)容,而是表示命令執(zhí)行狀態(tài)的結(jié)果)返回0則執(zhí)行后面的版仔,否則不執(zhí)行:
shiyanlou:~/ $ which cowsay>/dev/null && echo "Haha"                 [12:25:56]
Haha
shiyanlou:~/ $ echo $?                                               [12:26:08]
0

環(huán)境變量$?獲取上一次命令的返回結(jié)果。cowsay已安裝,返回0敞曹,執(zhí)行echo "Haha"胜卤。
<p>

  • || 表示如果前面的命令執(zhí)行結(jié)果不為0則執(zhí)行后面的命令:
shiyanlou:~/ $ which cowsay>/dev/null || echo "hah"                  [12:26:30]
shiyanlou:~/ $ echo $?                                               [12:33:29]
0

||前面的返回0疆导,則不執(zhí)行后面的命令,不輸出結(jié)果瑰艘。
<p>

  • &&|| 結(jié)合使用
shiyanlou:~/ $ which cowsay>/dev/null && echo "exist" || echo "not exist"
exist
shiyanlou:~/ $ which cowsay>/dev/null || echo "not exist" && echo "exist"
exist

由結(jié)果可見(jiàn)是鬼,&&|| 可以任意順序,不影響結(jié)果紫新。下圖是上述第一行代碼的流程圖:


<p>
<p>

2. 管道

管道表現(xiàn)出來(lái)的形式就是將前面每一個(gè)進(jìn)程的輸出(stdout)直接作為下一個(gè)進(jìn)程的輸入(stdin)均蜜。分為具名管道匿名管道。具名管道簡(jiǎn)單的說(shuō)就是有名字的管道芒率,通常只會(huì)在源程序中用到具名管道囤耳。匿名管道則在命令行中由 | 分隔符表示。

  • | 之前進(jìn)程的輸出是之后進(jìn)程的輸入
$ ls -al /etc | less

通過(guò)管道將前一個(gè)命令ls的輸出作為下一個(gè)命令less的輸入。一行一行地查看ls命令輸出的結(jié)果充择,即/etc目錄下的文件和目錄德玫。
<p>

  • cut 打印每一行的某個(gè)字段
shiyanlou:~/ $ cat /etc/passwd                                       [12:49:36]
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
# 以上為部分結(jié)果

先用cat 查看/etc/passwd,發(fā)現(xiàn)其中每一行記錄都是以:來(lái)分隔字段的椎麦。所以想查看按:分割之后的第一個(gè)字段和第六個(gè)字段宰僧,可以如下使用cut命令:

shiyanlou:~/ $ cut /etc/passwd -d ':' -f 1,6                         [12:56:27]
root:/root
daemon:/usr/sbin
bin:/bin
# 以上為部分結(jié)果

也可以用-c參數(shù)來(lái)打印每一行的第N個(gè)字符:

# 前五個(gè)(包含第五個(gè))
shiyanlou:~/ $ cut /etc/passwd -c -5                                 [13:00:55]
root:
daemo
bin:x
# 前五個(gè)之后的(包含第五個(gè))
shiyanlou:~/ $ cut /etc/passwd -c 5-                                 [13:03:49]
:x:0:0:root:/root:/bin/bash
on:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
x:2:2:bin:/bin:/usr/sbin/nologin
# 第五個(gè)
shiyanlou:~/ $ cut /etc/passwd -c 5                                  [13:04:49]
:
o
x
# 2到5之間的(包含第5個(gè))
shiyanlou:~/ $ cut /etc/passwd -c 2-5                                [13:06:03]
oot:
aemo
in:x

<p>

  • grep 命令,在文本中或 stdin 中查找匹配字符串
    一般形式:grep [命令選項(xiàng)]... 用于匹配的表達(dá)式 [文件]...
    如下观挎,搜索/home/shiyanlou目錄下所有包含"shiyanlou"的所有文本文件琴儿,并顯示出現(xiàn)在文本中的行號(hào):
shiyanlou:~/ $ grep -rnI "shiyanlou" ~                               [13:06:31]
/home/shiyanlou/.zshrc:2:  export ZSH=/home/shiyanlou/.oh-my-zsh
/home/shiyanlou/Code/shiyanlou_cs1/README.md:1:shiyanlou_cs1

其中,-r參數(shù)表示遞歸搜索子目錄中的文件,-n表示打印匹配項(xiàng)行號(hào)嘁捷,-I表示忽略二進(jìn)制文件造成。
<p>

  • wc命令,簡(jiǎn)單小巧的計(jì)數(shù)工具
    wc命令用于統(tǒng)計(jì)并輸出一個(gè)文件中行雄嚣、單詞和字節(jié)的數(shù)目晒屎。應(yīng)用如下:
# 概覽
shiyanlou:~/ $ wc /etc/passwd                                        [13:15:03]
  28   35 1370 /etc/passwd
# 行數(shù)
shiyanlou:~/ $ wc /etc/passwd -l                                     [13:21:08]
28 /etc/passwd
# 單詞數(shù)
shiyanlou:~/ $ wc /etc/passwd -w                                     [13:21:26]
35 /etc/passwd
# 字節(jié)數(shù)
shiyanlou:~/ $ wc /etc/passwd -c                                     [13:21:40]
1370 /etc/passwd
# 字符數(shù)
shiyanlou:~/ $ wc /etc/passwd -m                                     [13:21:53]
1370 /etc/passwd
# 最長(zhǎng)行字節(jié)數(shù)
shiyanlou:~/ $ wc /etc/passwd -L                                     [13:22:59]
81 /etc/passwd

** 運(yùn)用管道和 wc統(tǒng)計(jì) /etc下面所有目錄數(shù):*

shiyanlou:~/ $ ls -dl /etc/*/ | wc -l                                [13:27:15]
103

<p>

  • sort排序命令
    通常在查看命令后面結(jié)合管道使用,如:
# 默認(rèn)排序
$ cat /etc/passswd | sort
# 逆序
$ cat /etc/passswd | sort

還可以按照特定字段排序:

$ cat /etc/passwd | sort -t':' -k 3 -n

上面的-t參數(shù)用于指定字段的分隔符缓升,這里是以":"作為分隔符鼓鲁;-k字段號(hào)
用于指定對(duì)哪一個(gè)字段進(jìn)行排序。
<p>

  • uniq 去重命令
    需要注意的是仔沿,uniq命令只能去連續(xù)重復(fù)的行坐桩,不是全文去重,所以要達(dá)到預(yù)期效果封锉,可以在去重之前先排序绵跷。
shiyanlou:~/ $ history | cut -c 8- | cut -d ' ' -f 1 | sort | uniq 

** 其中 history指之前執(zhí)行過(guò)的語(yǔ)句*

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市成福,隨后出現(xiàn)的幾起案子碾局,更是在濱河造成了極大的恐慌,老刑警劉巖奴艾,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件净当,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蕴潦,警方通過(guò)查閱死者的電腦和手機(jī)像啼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)潭苞,“玉大人忽冻,你說(shuō)我怎么就攤上這事〈苏睿” “怎么了僧诚?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵遮婶,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我湖笨,道長(zhǎng)旗扑,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任慈省,我火速辦了婚禮臀防,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘边败。我一直安慰自己清钥,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布放闺。 她就那樣靜靜地躺著,像睡著了一般缕坎。 火紅的嫁衣襯著肌膚如雪怖侦。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,475評(píng)論 1 312
  • 那天谜叹,我揣著相機(jī)與錄音匾寝,去河邊找鬼。 笑死荷腊,一個(gè)胖子當(dāng)著我的面吹牛艳悔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播女仰,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼猜年,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了疾忍?” 一聲冷哼從身側(cè)響起乔外,我...
    開(kāi)封第一講書(shū)人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎一罩,沒(méi)想到半個(gè)月后杨幼,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡聂渊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年差购,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汉嗽。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡欲逃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诊胞,到底是詐尸還是另有隱情暖夭,我是刑警寧澤锹杈,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站迈着,受9級(jí)特大地震影響竭望,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜裕菠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一咬清、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奴潘,春花似錦旧烧、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至奈虾,卻和暖如春夺谁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肉微。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工匾鸥, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人碉纳。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓勿负,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親劳曹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子奴愉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 一、實(shí)驗(yàn)介紹 1.1 實(shí)驗(yàn)內(nèi)容 順序執(zhí)行铁孵、選擇執(zhí)行躁劣、管道、cut 命令库菲、grep 命令账忘、wc 命令、sort 命令...
    harrytc閱讀 839評(píng)論 0 1
  • 基本概念 本文旨在幫助你了解linux中順序執(zhí)行熙宇、選擇執(zhí)行鳖擒、管道、cut命令烫止、grep 命令蒋荚、wc命令、sort命...
    和奇谷樸閱讀 878評(píng)論 0 3
  • 高效率的使用Linux通常都需要結(jié)合命令的順序控制以及管道一起實(shí)現(xiàn)馆蠕。這里主要總結(jié)一下Linux命令的執(zhí)行順序控制和...
    EldonZhao閱讀 561評(píng)論 0 0
  • 本文筆記源自這里——[實(shí)驗(yàn)樓]歡迎大家在下面交流其中有問(wèn)題的地方喜歡請(qǐng)點(diǎn)收藏期升,每日更新(全部已親自實(shí)踐). 一. ...
    東皇Amrzs閱讀 3,999評(píng)論 7 54
  • 沽酒非買(mǎi)醉惊奇,騎驢慢賦詩(shī)。尋歸忘路徐來(lái)雨播赁,暮天未垂時(shí)颂郎。 倚聲猜古調(diào),卜居憶相知容为。閑眺疏藤驚更綠乓序,碧蘚貯新池。
    淮揚(yáng)先生閱讀 263評(píng)論 2 5