Shell中的重定向和管道

1.重定向

1.1標準輸入重定向

標準輸入 用數(shù)字“0”表示 默認接受來自鍵盤的輸入
“<” 把輸入重定向給程序和命令

[root@centos7.3 ~]#cat a.txt  #查看文件內(nèi)容
total 4
-rw-r--r--. 1 root root 201 May 29 12:47 acl.txt #原文件內(nèi)容
drwxr-s---+ 2 root g1     6 May 29 12:34 dir
[root@centos7.3 ~]#tr 'a-z' 'A-Z' < a.txt > d.txt 把a.txt里的文件重定向到tr命令
在把輸出結(jié)果重定向到d.txt
[root@centos7.3 ~]#cat d.txt  #查看d.txt文件
TOTAL 4    #原來a.txt里的內(nèi)容全部被tr命令變成大寫再重定向到d.txt文件中
-RW-R--R--. 1 ROOT ROOT 201 MAY 29 12:47 ACL.TXT
DRWXR-S---+ 2 ROOT G1     6 MAY 29 12:34 DIR

1.2 標準輸出重定向

標準輸出 用數(shù)字“1”表示 默認輸出到終端窗口

“>”把標準輸出定重向到文件或者設備

[root@centos7.3 ~]#ls /home/ > a.txt  #把ls命令的標準輸出重定向到 a.txt 文件中
[root@centos7.3 ~]#cat a.txt          #查看a.txt文件的內(nèi)容
admin
alece
tom

但是“>”重定向到文件會覆蓋文件中原有的內(nèi)容

[root@centos7.3 ~]#ls /app/ > a.txt #把/app目錄下的文件列表重定向到a.txt
[root@centos7.3 ~]#cat a.txt        #再來看一下a.txt文件
acl.txt  #里面的內(nèi)容已經(jīng)被覆蓋了
dir
[root@centos7.3 ~]#

所以如果我們要往文件里添加內(nèi)容不覆蓋的話可以用“>>”把標準輸出重定向追加到文件中

[root@centos7.3 ~]#ll /root/ >> a.txt 
[root@centos7.3 ~]#cat a.txt 
acl.txt  
dir            #這兩行a.txt文件中原有的內(nèi)容
total 16
-rw-------. 1 root root 1892 May 24 17:48 anaconda-ks.cfg
-rw-r--r--. 1 root root   12 May 29 14:51 a.txt
drwxr-xr-x. 2 root root    6 May 24 18:08 Desktop
drwxr-xr-x. 2 root root    6 May 24 18:08 Documents
drwxr-xr-x. 2 root root    6 May 24 18:08 Downloads
-rw-r--r--. 1 root root 1923 May 24 18:08 initial-setup-ks.cfg
drwxr-xr-x. 2 root root    6 May 24 18:08 Music
drwxr-xr-x. 2 root root    6 May 24 18:08 Pictures
drwxr-xr-x. 2 root root    6 May 24 18:08 Public
drwxr-xr-x. 2 root root    6 May 24 18:08 Templates
drwxr-xr-x. 2 root root    6 May 24 18:08 Videos 
#這是a.txt文件中原有的內(nèi)容這些是我們把/root目錄下的文件列表追加進來的內(nèi)容
[root@centos7.3 ~]#

1.3標準錯誤重定向

標準錯誤 用數(shù)字“2”表示 默認輸出到終端窗口

“2>”把標準錯誤重定向到文件或者設備

[root@centos7.3 ~]#ls /aaa 2> b.txt  #把標準錯誤重定向到b.txt文件中
[root@centos7.3 ~]#cat b.txt  #查看b.txt文件中的內(nèi)容
ls: cannot access /aaa: No such file or directory #提示找不到/aaa目錄

“2>>”將一個標準錯誤輸出重定向追加到文件中

[root@centos7.3 ~]#ls /bbb 2>> b.txt #把ls /bbb的錯誤輸出重定向追加到b.txt文件中
[root@centos7.3 ~]#cat b.txt #查看追加結(jié)果
ls: cannot access /aaa: No such file or directory #這是上一條/aaa的報錯信息
ls: cannot access /bbb: No such file or directory #這是這一次追加的信息

1.4

我們想把標準輸出和標準錯誤重定向到一個文件或者設備的時候就可以用“&>”把所有的信息都重定向到一個地方

[root@centos7.3 ~]#ls /app/  /ccc &> c.txt #查看/app和/ccc目錄,把所有的輸出都重定向到c.txt文件中
[root@centos7.3 ~]#cat c.txt  #查看c.txt文件中的結(jié)果
ls: cannot access /ccc: No such file or directory #這是/ccc的報錯提示標準錯誤
/app/: #這是標準輸出
acl.txt
dir

“>&”這個也可以把所有輸出都重定向到一個文件或者設備和上一條命令的效果一樣

[root@centos7.3 ~]#ls /app/  /ccc >& c.txt

“> 2>&1”這個也可以實現(xiàn)同樣的效果

[root@centos7.3 ~]#ls /app/ /cc > c.txt 2>&1 
[root@centos7.3 ~]#cat c.txt 
ls: cannot access /cc: No such file or directory
/app/:
acl.txt
dir

如果要追加內(nèi)容可以用“>> 2>&1”來實現(xiàn)

[root@centos7.3 ~]#ls /home  /c  >> c.txt 2>&1 #查看/home和/c目錄下的文件列表,把所有輸出重定向到c.txt
[root@centos7.3 ~]#cat c.txt 
ls: cannot access /cc: No such file or directory  #這是幾行是原有的內(nèi)容
/app/:
acl.txt
dir 
ls: cannot access /c: No such file or directory #這個幾行是我們剛剛追加進來的內(nèi)容
/home:
admin
alece
tom  

“&>>”用這個字符也可以把所有的輸出追加到文件

[root@centos7.3 ~]#ls /home  /d  &>> c.txt
[root@centos7.3 ~]#cat c.txt 
ls: cannot access /c: No such file or directory #原來的內(nèi)容
/home:
admin
alece
tom 
ls: cannot access /d: No such file or directory #新追加的內(nèi)容
/home:
admin
alece
tom 

2.管道

管道符使用“|”來表示,用來把命令連接起來。

[root@centos7.3 ~]#ls /app/ | tr 'a-z' 'A-Z' #查看/app下的文件列表,再輸出結(jié)果用管道傳給tr命令處理
ACL.TXT #顯示在終端的結(jié)果變成了大寫字母
DIR

“|”管道符可以用來保存不同階段的輸出信息,可以同時查看和保存輸出信息

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,182評論 6 543
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,489評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,290評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,776評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,510評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,866評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,860評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,036評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,585評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,331評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,536評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,058評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,754評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,154評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,469評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,273評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,505評論 2 379

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