linux入門之?dāng)?shù)據(jù)流重定向

基本概念

什么是數(shù)據(jù)流顺献?

  • 定義:以規(guī)定順序被讀取一次的數(shù)據(jù)序列。最初在1998年由Henzinger在文獻(xiàn)87中提出這個概念。
  • 類別分為三種:標(biāo)準(zhǔn)輸入(stdin),標(biāo)準(zhǔn)輸出(stdout)和標(biāo)準(zhǔn)錯誤輸出(stderr)扬虚。
  • 標(biāo)準(zhǔn)輸出: 指的是命令執(zhí)行所回傳的正確信息。
  • 標(biāo)準(zhǔn)錯誤輸出:指的是命令執(zhí)行失敗后球恤,所回傳的錯誤信息辜昵。
  • 默認(rèn)都是將信息打印在屏幕上的。

如下表所示:

文件描述符 設(shè)備文件 說明
0 /dev/stdin 標(biāo)準(zhǔn)輸入
1 /dev/stdout 標(biāo)準(zhǔn)輸出
2 /dev/stderr 標(biāo)準(zhǔn)錯誤

什么是重定向咽斧?什么是重定向描述符路鹰?

  • 重定向:重新定個方向轉(zhuǎn)到正確位置贷洲。在之前l(fā)inux入門系列文章中已經(jīng)多次出現(xiàn)過>或>>操作了收厨,并知道他們分別是將標(biāo)準(zhǔn)輸出導(dǎo)向一個文件或追加到一個文件中晋柱。這其實就是重定向。
  • 重定向描述符: & 是一個描述符诵叁,若1或2前不加&雁竞,會被當(dāng)成一個普通文件。
  • 常用的方法詳見下表:
表達(dá)式 含義
1>&2 把標(biāo)準(zhǔn)輸出重定向到標(biāo)準(zhǔn)錯誤
2>&1 把標(biāo)準(zhǔn)錯誤輸出重定向到標(biāo)準(zhǔn)輸出
&>filename 把標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤輸出都重定向到文件filename 中

什么是數(shù)據(jù)流重定向拧额?

改變數(shù)據(jù)流的標(biāo)準(zhǔn)流向碑诉,使之流向指定的文件或設(shè)備。


本文重點

介紹如何在Linux中利用shell把執(zhí)行命令所回傳的正確信息(標(biāo)準(zhǔn)輸出信息)流向一個文件侥锦,而將所回傳的錯誤信息(標(biāo)準(zhǔn)錯誤輸出)流向別一個文件进栽,并把這兩個文件的信息保存下來,而在屏幕上不出現(xiàn)任何該命令執(zhí)行所回傳的信息恭垦。

實例操作

"實踐出真知"快毛,還是讓我們一起通過如下幾個實驗來深入理解上面的概念吧。

1) 標(biāo)準(zhǔn)輸出重定向

重定向標(biāo)準(zhǔn)輸出到文件番挺,這是一個很實用的操作唠帝。詳見如下實例:

$ echo 'hello shiyanlou' > test.txt
$ echo 'www.shiyanlou.com' >> test.txt
$ cat  test.txt

其中 ,“>”和“>>”分別是將標(biāo)準(zhǔn)輸出導(dǎo)向一個文件或追加到一個文件中玄柏。
“>” :相當(dāng)于清空源文件內(nèi)容襟衰,重新寫入新的內(nèi)容。
“>>” :相當(dāng)于保留源文件內(nèi)容粪摘,在最后一行追加內(nèi)容瀑晒。
如果源文件不存在,兩者都會新建源文件徘意。

2)Cat輸出重定向

利用cat的連續(xù)輸出(heredoc方式)重定向標(biāo)準(zhǔn)輸出到一個文件

$ cat 
(按Ctrl+C退出)

cat重定向到test.c文檔苔悦,在heredoc里輸入內(nèi)容,然后使用end結(jié)束輸入映砖。其中“<< end ”指的是結(jié)束輸入內(nèi)容间坐。

操作實現(xiàn)如下:


cat重定向
cat重定向

3)標(biāo)準(zhǔn)錯誤重定向

將標(biāo)準(zhǔn)錯誤重定向同樣是一個很實用的操作∫赝耍可以將標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤分別重定向不同的兩個文件竹宋,亦可以重定向到同一個文件。根據(jù)實際項目的需要地技,可自行判斷蜈七。此處僅給出相關(guān)實例,供大家參考使用莫矗。

  • 重定向到兩個文件
$ pwd
/home/shiyanlou/
$ cd mybin
$ back.sh   1>>/home/shiyanlou/Code/back.log 2>>/home/shiyanlou/Code/error.log

將正常日志輸出到back.log 飒硅;將錯誤日志輸出到error.log砂缩。

  • 重定向到一個文件
$ pwd
/home/shiyanlou/
$ cd mybin
$ back.sh >>/home/shiyanlou/back.log  2>>&1 

將正常日志和錯誤日志都輸出到back.log 。

4)巧用 /dev/null

  • /dev/null 或稱空設(shè)備三娩,是一個特殊的設(shè)備文件庵芭,它通常被用于丟棄不需要的輸出流,或作為用于輸入流的空文件雀监,這些操作通常由重定向完成双吆。讀取它則會立即得到一個EOF。
# 清空一個日志文件 back.log
$  cat /dev/null  > back.log  

5)標(biāo)準(zhǔn)輸入重定向

  • 這里用wall來廣播一下之前編輯的autorun.log文件会前,
# wall 0<  autorun.log

意思就是將autorun.log中的文件內(nèi)容廣播出去好乐,如下圖廣播效果。


wall輸入重定向
wall輸入重定向

作業(yè)

給大家來一個彩色的火焰瓦宜,祝愿大家紅紅火火蔚万!


紅紅火火
紅紅火火

友情提示

我正在實驗樓擼代碼,你也快來临庇!800+編程實戰(zhàn)教程反璃,無需搭環(huán)境,直接練習(xí)苔巨!用我的鏈接注冊版扩,你我都能獲得3個實驗豆!http://www.shiyanlou.com/register?inviter=NTY0MzE5MTkxNzAx


感謝您花費時間閱讀這篇文章V对蟆礁芦!通過上述講解是不是讓您對linux的數(shù)據(jù)流重定向的情況有了進(jìn)一步的了解了呢?是的話請給個贊吧悼尾!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末柿扣,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子闺魏,更是在濱河造成了極大的恐慌未状,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件析桥,死亡現(xiàn)場離奇詭異司草,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)泡仗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進(jìn)店門埋虹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人娩怎,你說我怎么就攤上這事搔课。” “怎么了截亦?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵爬泥,是天一觀的道長柬讨。 經(jīng)常有香客問我,道長袍啡,這世上最難降的妖魔是什么踩官? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮葬馋,結(jié)果婚禮上卖鲤,老公的妹妹穿的比我還像新娘。我一直安慰自己畴嘶,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布集晚。 她就那樣靜靜地躺著窗悯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪偷拔。 梳的紋絲不亂的頭發(fā)上蒋院,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天,我揣著相機(jī)與錄音莲绰,去河邊找鬼欺旧。 笑死,一個胖子當(dāng)著我的面吹牛蛤签,可吹牛的內(nèi)容都是我干的辞友。 我是一名探鬼主播,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼震肮,長吁一口氣:“原來是場噩夢啊……” “哼称龙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起戳晌,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤鲫尊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后沦偎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疫向,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年豪嚎,在試婚紗的時候發(fā)現(xiàn)自己被綠了搔驼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡疙渣,死狀恐怖匙奴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情妄荔,我是刑警寧澤泼菌,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布谍肤,位于F島的核電站,受9級特大地震影響哗伯,放射性物質(zhì)發(fā)生泄漏荒揣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一焊刹、第九天 我趴在偏房一處隱蔽的房頂上張望系任。 院中可真熱鬧,春花似錦虐块、人聲如沸俩滥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽霜旧。三九已至,卻和暖如春儡率,著一層夾襖步出監(jiān)牢的瞬間挂据,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工儿普, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留崎逃,地道東北人。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓眉孩,卻偏偏與公主長得像个绍,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子勺像,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,926評論 2 361

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