1. 程式人生 > >linux資料流重定向,管道以及搭配grep等命令

linux資料流重定向,管道以及搭配grep等命令

資料流重定向

  • 基礎概念:
華麗分割 stdin(輸入) stdout(正確輸出) stderr(錯誤輸出)
對應資料值 0 1 2

可以將原本打到螢幕上的資料輸出到指定的地方,比如可以將根目錄下的檔案放到當前目錄下

ll -a / > ./rootfile
  • > 和 >>區別在於前者是覆蓋原有內容,後者是在原有內容的基礎上追加

  • /dev/null 垃圾桶黑洞裝置,有一些產生之後對我們沒用的垃圾資訊,我們可以將資料流重定向到 /dev/null這;比較典型的例子,就是我們執行一些定時任務,本身已經打出錯誤日誌等,所以不需要再獲取錯誤資訊。例子如下:

php auto_add_pv.php >/dev/
null 2>&1

這裡的話是將可能會出錯的資訊,輸出到標準輸出1所輸出的位置

  • 上面說完輸出,我們再來看看輸入 < 以及 <<,前者為從其他資料來源輸入檔案內容到指定檔案,<<指定輸入結束符,我們可以在鍵盤上輸入我們想輸入的內容,並結束輸入
cat >taskfile << 1;//輸入1後,便會停止輸入
cat > taskFile < srcFile;//原始檔內容輸入目標檔案中

命令執行次序

  • ;依次執行 cd a && cd b
  • &&與執行 a && b a執行後得到的$?的返回值為0,則執行b
  • ||或執行 q || b a執行後得到的$?返回值為0,則不執行b,如果a執行錯誤,才執行b

管道命令(|)

前一個命令的輸出作為下一個命令的輸入,有許多經典的搭配,例如:
grep:

ll / | grep home

wc -l 列出行

cat /etc/man.config | wc -l