linux資料流重定向,管道以及搭配grep等命令
阿新 • • 發佈:2019-01-07
資料流重定向
- 基礎概念:
華麗分割 | 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