Linux之重定向

cat -連接文件

sort -排序文本行

uniq -報道或省略重複行

105

grep -打印匹配行

wc -打印文件中換行符,字,和字節個數

head -輸出文件第一部分

tail - 輸出文件最後一部分

 

標準輸入,輸出,和錯誤

I/O 重定向允許我們可以更改輸出走向和輸入來向。一般地,輸出送到屏幕,輸入來自鍵

盤,但是通過 I/O 重定向,我們可以改變輸入輸出方向。

 

重定向標準輸出

ls -l /usr/local > ls-output.txt

把目錄換成一個不存在的目錄

文件長度成爲零!這是因爲,當我們使用 “>” 重定向符來重定向輸出結果時,目標文件總

是從開頭被重寫。因爲我們 ls 命令沒有產生運行結果,只有錯誤信息,重定向操作開始重寫文

件,然後由於錯誤而停止,導致文件內容刪除。

事實上,如果我們需要刪除一個文件內容(或者創建一個新的空文件),可以使用這樣的技巧:

把重定向結果追加到文件內容後面,而不是從開頭重寫文件?爲了這個目的,我們使用 “>>” 重定向符

ls -l /usr/local >> ls-output.txt

重定向標準錯誤

標準輸入,輸出和錯誤, shell 內部參考它們爲文件描述符 0, 1 和 2

ls -l /bin/usr 2> ls-error.txt

重定向標準輸出和錯誤到同一個文件

方法一:ls -l /bin/usr > ls-output.txt 2>&1

方法二:現在的 bash 版本提供了第二種方法,更精簡合理的方法來執行這種聯合的重定向

處理不需要的輸出

通過重定向輸出結果到一個特殊的叫做 “/dev/null” 的文件。這個文件是系統設備,叫做位存儲桶,它可以接受輸入,並且對輸入不做任何處理。爲了隱瞞命令錯誤信息,我們這樣做

ls -l /bin/usr 2> /dev/null

cat -連接文件

cat 命令讀取一個或多個文件,然後複製它們到標準輸出     cat [file]

可以使用 cat 來顯示文件而沒有分頁

 

將會顯示文件 ls-output.txt 的內容。cat 經常被用來顯示簡短的文本文件。因爲 cat 可以接

受不只一個文件作爲參數,所以它也可以用來把文件連接在一起。比方說我們下載了一個大型

文件,這個文件被分離成多個部分( USENET 中的多媒體文件經常以這種方式分離),我們想

把它們連起來。如果文件命名爲:

movie.mpeg.001 movie.mpeg.002 ... movie.mpeg.099

we could join them back together with this command:

我們能用這個命令把它們連接起來:

cat movie.mpeg.0* > movie.mpeg

 

輸入不帶參數的 “cat” 命令 ,

如果 cat 沒有給出任何參數,它會從標準輸入讀入數據,因爲標準輸入,默認情況下,連接到鍵盤。

由於文件名參數的缺席, cat 複製標準輸入到標準輸出,所以我們看到文本行重複出現。我

們可以使用這種行爲來創建簡短的文本文件

重定向標準輸入

管道線

命令可以從標準輸入讀取數據,然後再把數據輸送到標準輸出,命令的這種能力被一個shell 特性所利用,這個特性叫做管道線。使用管道操作符 “|”(豎槓),一個命令的標準輸出可以管道到另一個命令的標準輸入:

command1 | command2

用 less 來一頁一頁地顯示任何命令的輸出,命令把它的運行結果輸送到標準輸出

 ls -l /usr/bin | less

過濾器

把目錄/bin 和/usr/bin 中的可執行程序都聯合在一起,再把它們排序,然後瀏覽執行結果

ls /bin /usr/bin | sort | less

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章