重定向與管道

 

   本次內容

   1.三種I/O設備

   2.把I/O從定向入文件

   3.命令tr

   4.使用管道鏈接命令

   5.tee

 

我們都知道程序是由:指令+數據

       讀入數據:Input

       輸出數據:output

而打開的文件都有一個fd: file
descriptor (文件描述符)

同時也有三種I/O設備:

                標準輸入 0  默認是由接受鍵盤輸入

                標準輸出 1  默認是輸出到終端窗口顯示屏

                標準錯誤 2   默認是輸出到終端窗口顯示屏

 

   I/O重定向:改變默認位置

   標準輸出的不管是錯誤或默認輸出都可以重定向到文件之中它的格式為:    

  命令  操作符號 文件名


   支持符號包括

   >  把標準輸出重定向到文件中

   2> 把錯誤重定向到文件中

   &> 把所有(不管是正確還是標準輸出錯誤)的重定向到文件中

 重定向與管道

 重定向與管道

 重定向與管道

 

注意:

       用重定向符號時> ,2> ,
&> 時原來的文件內容會被覆蓋

 重定向與管道

 

在原來基礎上,追加內容  >>

 重定向與管道

 

?2>: 覆蓋重定向錯誤輸出數據流

?2>>:
追加重定向錯誤輸出數據流

重定向與管道


準輸出和錯誤輸出各自定向至不同位置

OMMAND >
/path/to/file.out2> /path/to/error.out

合并標準輸出和錯誤輸出為同一個數據流進行重定向

?&>覆蓋重定向

?&>>
追加重定向

?COMMAND
> /path/to/file.out 2>&1 (順序很重要)

?COMMAND
>> /path/to/file.out 2>&1

 

 重定向與管道

 

  注意:>>& 排序是錯誤的

 重定向與管道

 

  標準輸出 <

 重定向與管道

    tr轉換和刪除字符

?tr[OPTION]…
SET1 [SET2]

?選項:

-c–C –complement:取反(除了)

-d–delete:刪除所有屬于第一字符集的字符

-s  連續的壓縮

 重定向與管道

 

使用“<<終止詞”命令從鍵盤把多行重導向給STDIN

?

直到終止詞位置的所有文本都發送給STDIN

?有時被稱為就地文

 重定向與管道

 

   管道 

管道(使用符號“|”表示)用來連接命令

命令1 | 命令2 | 命令3 | … 

   表示用命令1的輸出作為命令2的輸入命令2的輸出作為命令3的輸入

   注意:STDERR默認不能通過管道轉發,可利用2>&1 或|& 實現

 重定向與管道

 

將/home 里面的文件打包,但打包的數據不是記錄到文件,而是傳送到stdout,經過管道后,將tar -cvf-/home 傳送給后面的tar -xvf-, 后面的這個-則是取前一個命令的stdout,因此,就不需要使用臨時file了

?tar -cvf-/home | tar -xvf-

 

?命令1 | tee[-a ] 文件名| 命令2

把命令1的STDOUT保存在文件中,做為命令2的輸入

-a 追加

?使用:

?保存不同階段的輸出

?復雜管道的故障排除

?同時查看和記錄輸出

重定向與管道

一道很有意思的題目,不用循環,可以用管道

   計算1+2+3+..+99+100的總和

重定向與管道

 

原創文章,作者:m25Chronos,如若轉載,請注明出處:http://www.www58058.com/82473

(0)
m25Chronosm25Chronos
上一篇 2017-07-23 17:45
下一篇 2017-07-23 18:02

相關推薦

  • History,Help——Linux基本命令(6)

    1.     history   當你在玩Linux的時候,如果你經常使用命令行來控制你的Linux系統,那么有效地使用命令歷史機制將會使效率獲得極大提升。 history是shell的內置命令,其內容在系統默認的shell的man手冊中。 一些用法: history[-c] [-d offset] [n] …

    2017-07-15
  • ?grub應用之提供單獨bash系統

    grub應用之提供單獨bash系統     1.掛載新硬盤,并創建好三個分區,第一分區為boot分區,第三分區為根分區              2.創建掛載目錄,并掛boot分區   &n…

    Linux干貨 2017-01-13
  • Linux基礎之正則表達式

    正則表示式語法及在grep命令中的引用

    2017-09-09
  • 網絡接口配置bonding

    Bonding 就是將多塊網卡綁定同一IP地址對外提供服務,可以實現高可用或者負載均衡。當然,直接給兩塊網卡設置同一IP地址是不可能的。通過bonding,虛擬一塊網卡對外提供連接,物理網卡的被修改為相同的MAC地址。 Bonding的工作模式 Mode 0 (balance-rr)     輪轉(…

    Linux干貨 2016-09-09
  • Linux的簡介

    Linux的簡介 馮諾依曼體系結構 主要特點:使用存儲器,采用二進制(據說,采用二進制的靈感來源于中國的八卦,2變4,4變8…) 體系介紹:其由幾大部分組成,輸入設備,運算器,控制器,內部存儲器,外部存儲器,輸出設備。 目前,輸入設備就是指鍵盤鼠標, 運算器和控制器現在統稱CPU。其實已經內置了兩個功能。 內部存儲器就是內存,某種意義上,緩存也算…

    Linux干貨 2016-10-28
  • 8-5作業

    1、取本機ip地址 ifconfig |grep -E -o  '(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])' 2、取各分區利…

    Linux干貨 2016-08-08
欧美性久久久久