歡迎您光臨本站 註冊首頁

輸入輸出重定向和管道

←手機掃碼閱讀     火星人 @ 2014-03-08 , reply:0

輸入輸出重定向和管道

  • 輸入輸出重定向:

在linux中,標準的輸入:鍵盤,用0表示;標準的輸出:顯示器,用1表示;標準的錯誤輸出:顯示器,用2表示;

重定向:

輸出重定向用“>”表示,追加輸出重定向用“>>”表示;

輸入重定向用“<”表示,追加輸入重定向不用“<<”表示;

錯誤輸出重定向用“2>”表示,追加錯誤輸出重定向用“2>>”表示;

整合錯誤輸出和標準輸出的數據流到同一個文件中,用“&>”表示;

如果用數字錶示的話,將錯誤輸出重定向到標準輸出上,可以表示如下形式:2>&1;

如下例子實現暫時關閉覆蓋輸出重定向,並隨時使用覆蓋輸出重定向:

說明:1、# set -C 禁止使用覆蓋輸出重定向功能,事先確定/tmp/test.out文件非空,此命令才起作用.

2、# date >| /tmp/test.out,此時臨時允許使用覆蓋輸出重定向功能.

3、所以,# set C 打開覆蓋輸出重定向功能.

set命令:用於打開或者關閉shell的某種功能.

  • 命令執行結束后,都有一個退出碼:

1、成功執行,返回值為0;

2、錯誤執行,返回值為1-255;

3、使用echo $? ,獲取上一個命令的退出碼.

  • /dev/null,位桶,相當於一個黑洞,將所有定向為它的數據統統吞噬掉.
  • 輸入重定向的作用:

1、# cat < /etc/profile ,將/etc/profile 文件的內容給cat予以顯示.但此時的<可以省略掉.

2、tr命令中的< 不可以省略掉.例如:# tr 'a-z' 'A-Z' < /etc/profile ,將/etc/profile文件的內容給tr命令,並使其修改其顯示形式,而後顯示出來.

mail命令中的<不可以省略掉.例如:# mail redhat < /etc/profile ,即將/etc/profile 文件的內容作為郵件的正文發送給redhat用戶.

  • <<的作用:

echo -e "First line.\nSecond line." > /tmp/out ,使用echo命令生成一篇文檔,並輸入到/tmp/out文件中去.也可以使用如下方法代替:

cat > /tmp/out << END ,表示使用cat命令在此生成一個文檔,當遇到END結束符時,該文檔結束,並被保存在/tmp/out文件里.註:END是可以替換成其他的字元的,並且大小寫都可以.

  • 管道,用|表示:把前一個命令的輸出當做后一個命令的輸入.可以完成這樣的任務:連接多個小程序完成複雜任務.
  • tee :從標準輸入讀取數據到標準輸出中,並保存在文件中.

例如:ls /var | tee /tmp/var.out,將目錄/var下面的所有文件保存到/tmp/var.out中,並顯示到屏幕上.

也可以使用tee -a 表示追加輸入重定向.


[火星人 ] 輸入輸出重定向和管道已經有310次圍觀

http://coctec.com/docs/linux/show-post-45907.html