1. 程式人生 > >Linux中常用命令pipe

Linux中常用命令pipe

必須 強調 std 而且 ss命令 strong 目錄下的文件 文件 last

大多數linux命令處理數據後都會輸出到標準輸出,但是如果數據要經過系列列的步驟處理後,才是需要的數據個數,這種需求就需要管道來幫助完成。

管道命令使用"|"作為界定符,將界定符前的命令的執行結果作為界定符後的命令的輸入繼續處理。這裏的執行方式和“連續執行命令”是不一樣的。管道命令不僅強調界定符前後命令的依賴關系,而且還有一個非常重要的限制:
界定符前命令產生的執行結果必須輸出到標準輸出,界定符後的命令必須能夠接收標準輸入作為處理數據

下面通過幾個例子熟悉下管道命令:

  1. /etc目錄下的文件非常多,通常直接ls查看,屏幕無法全部顯示,這是可以使用管道命令:
ls -al /etc | less

ls命令會將目錄下的文件詳細信息輸出到標準輸出,less能夠接受標準輸入作為處理數據。這樣就重復利用了less命令前後查看的能力,甚至檢索能力,幫組我們有效的查看需要的文件。

  1. 查看最近的有多少用戶登錄常使用last命令,但是last會輸出非常多信息,如果要篩選只查看用戶:
last | cut -d ‘ ‘ -f 1

last將最近的登錄信息都輸出到標準輸出,cut接受標準輸入作為入參,進行處理,最後再輸出到標準輸出進行顯示。

使用管道命令的核心要點

  • 管道命令前的命令僅能處理標準輸出,對於標準錯誤輸出無處理能力;
  • 管道命令後的命令必須要能接受來自前一個命令的數據成為標準輸入繼續處理;

必須ls、cp等命令就不能接受來自stdin的數據。tail、head、less、more等就可以接受標準輸入。

Linux中常用命令pipe