重定向以及管道

描述I/O設備的重定向

?????? I/O重定向與管道

一個程序最基礎的部分就是輸入數據,通過指令對其進行加工,輸出出一個結果。在這個過程中,我們輸入的數據(Input)和我們輸出的數據(Output)合稱為I/O設備。通常數據輸入來自于我們的鍵盤和鼠標,即人為的輸入。我們稱這個輸入叫做標準輸入(STDIN)–0;而輸出到終端端口的正確結果我們叫做標準輸出(STOUT)–1;輸出的錯誤結果叫做標準錯誤(STERR)–2。I/O重定向的意思就是改變默認的輸入輸出方式,即重新定義輸入的方式,使標準輸入不僅僅來自鍵盤,也可以來自上一個命令的標準輸出等。

?????? 把標準輸出和錯誤輸出重定向到文件

改變文件的輸出位置,將其輸出到指定文件中,其中包括標準輸出和標準錯誤。對于標準輸出我們可以通過 ” >? ”來重定向(原文件可不存在),對于標準錯誤通過” 2> ” 來重定向。具體操作格式為:

命令 操作符號 文件名

通過某些命令產生新的輸出,通過操作符號將其輸入到文件中(而不是默認的輸出到屏幕中)

也可以通過符號”&>和2>&1″將兩種輸出重定向到同一文件。若目標文件中有數據,符號”>”將清空原有數據并覆蓋??墒褂梅?#8221;>>”追加到目標文件,標準錯誤同理。

????? 從文件中導入標準輸入

從文件中導入標準輸入,不在通過人為的敲打字符,我們稱之為輸入重定向,通過符號”<“實現??赏ㄟ^輸入重定向將需要的數據通過命令來輸入。具體操作格式:

命令? 操作符號 文件名

通過某些命令來改變文件的數據使其作為標準輸入。(例如tr命令)

?????? tr命令

tr?? [optins]??? [set1] [set2]

tr命令可刪除或轉換字符(將第一字符集set1的內容轉換為set2),通過tr命令我們可以修改文本后將其作為標準輸入。例如tr? ‘a-z’? ‘A-Z’就是將指定文本的小寫字母轉換為大寫字母。tr命令也可預定義字符集,即tr? ‘[:lower:]’? ‘[:upper:]’

常用的選項

-c :取字符集的補集

-s:將連續重復的字符轉換為一個字符

-d:刪除字符集里面的字符

-t:將第一字符集的內容轉換成第二字符集的內容

????? 單行重定向與多行重定向

使用單行重定向時,在某些交互式重定向中(如’cat? >? file’),輸入文本后需要Ctrl+d退出,而且輸出的是純文本,并不能識別命令。多行重定向可以改變這些缺陷,多行重定向就是在文本開始時設置終符’>>EOF'(此時EOF為終止符)只有輸入終止符才算結束輸出,而且多行重定向中可識別命令,使重定向的文本內容更加靈活。

管道

管道技術就是使用符號”|”將多個命令鏈接在一起,使前一個命令的標本輸出作為后面命令的標準輸入。例如cmd1|cmd2|cmd3中,首先將cmd1的標準輸出作為cmd2的標準輸入,再將其標準輸出作為cmd3的標準輸入,以此類推。管道技術默認不可轉換標準錯誤,我們可以通過”2>&1和|&”將其轉換。

我們也可以在管道中使用tee命令將輸出重定向到多個目標。即在管道中加入”tee -a file”,這樣我們就可以在管道的中間查看和記錄不同階段的輸出,便于在出現問題時排除故障。

 

 

 

 

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/88644

(0)
yoyiccccyoyicccc
上一篇 2017-11-19 17:29
下一篇 2017-11-19 20:41

相關推薦

  • iptables

    iptables 包過濾型的防火墻 Firewall:防火墻,隔離工具;工作于主機或網絡邊緣,對于進出本主機或本網絡的報文根據事先定義的檢查規則作匹配檢測,對于能夠被規則匹配到的報文作出相應處理的組件; 主機防火墻網絡防火墻 軟件防火墻(軟件邏輯)硬件防火墻(硬件和軟件邏輯) 版本 ipfw (firewall framework):命令行工具,生成規則并送…

    Linux干貨 2017-06-13
  • 8.9_Linux文本處理三劍客之sed和文本編輯利器vim的使用

    本文處理三劍客之sed的使用   什么是sed? Stream EDitor(簡稱sed), 行編輯器,一次只讀一行,只處理一行,不對源文件做處理,至輸出到屏幕上。 sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩…

    Linux干貨 2016-08-11
  • Linux文本處理工具及組管理

    1、列出當前系統上所有已經登錄的用戶名,注意:同一個用戶登錄多次,只顯示一次即可 [root@centos ~]# who | cut -d' ' -f1 | sort -u     gentoo &…

    Linux干貨 2016-10-09
  • N26 第五周作業

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; [root@localhost ~]# cat /boot/grub/grub.conf | grep "^[[:space:]]" 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后…

    Linux干貨 2017-01-26
  • 優云老王(四)干貨總結:數據帶來的奇妙世界

    作為產品經理的我們,不僅僅需要業務敏感的直覺,還需要數據驅動我們的產品不斷創新!關于如何看數據,我列了主要的四個場景。 場景一:看頁面點擊,了解用戶關注什么,卡在哪里 給誰看:產品經理和交互設計師 看什么: 由于我們對Web應用的所有界面,可交互元素都做了埋點,那么我們就可以看用戶在頁面里都做了哪些點擊動作。首先是整個頁面的橫向比較,每個頁面本身的操作數(重…

    2016-09-19
  • 整型、浮點型在內存中的存儲方式

      在學習C語言的過程中,有時候會想,數據到底是以什么樣的方式在內存中存儲的呢?經過一段時間的查閱資料,小編終于整理了一些…… 以VC6.0編譯器為測試環境(int型為4Byte) 先簡介一下大小端模式,具體資料可參考 http://blog.csdn.net/ce123_zhouwei/article/details/6971544  …

    Linux干貨 2016-01-14
欧美性久久久久