
- 1 三種標準輸入輸出
- 2 什么是重定向?如何重定向?
- (1)什么是重定向?
- (2)如何重定向?
- 3 管道符以及和它容易混淆的一些符號使用
- (1)管道符 |
- (2)&和&&、|和|| 區別、分號(;)用法
- 4 nohup 后臺啟動行程命令和案例
- 5 小結
1 三種標準輸入輸出
- 標準輸入(STDIN),檔案描述符號為:0,默認從鍵盤獲取輸入;
- 標準輸出(STDOUT),檔案描述符號為:1,默認輸出到顯示終端;
- 標準錯誤輸出(STDERR),檔案描述符號為:2,默認輸出到顯示終端;
2 什么是重定向?如何重定向?
(1)什么是重定向?
IO 重定向是為了改變默認輸入、輸出的位置,如默認情況下標準輸出(STDOUT),標準錯誤輸出(STDERR)都是輸出到顯示終端,如對標準輸出、標準錯誤輸出改變其默認輸出位置,可重定向輸出到指定的檔案中(實際作業中經常這么使用),要重定向就要配合一些語法符號,
(2)如何重定向?
- Linux Shell 使用 " > " 和 ">>" 進行對檔案描述符進行重定向
- ">" # 使用本次輸出內容替換原有檔案的內容;
- ">>" 把本次輸出追加到原檔案的后面;
- 常見的一些輸出重定向(標準輸出和標準錯誤輸出)表示
- 【>】標準輸出覆寫重定向
- 【>>】標準輸出追加重定向
- 【2>】標準錯誤輸出覆寫重定向
- 【2>>】標準錯誤輸出追加重定向
- 【&>】將標準輸出和標準錯誤輸出都同時覆寫重定向
- 【&>>】將標準輸出和標準錯誤輸出都同時追加重定向
3 管道符以及和它容易混淆的一些符號使用
(1)管道符 |
- 格式 : 命令1 | 命令2 ...
- 解釋: 命令1 的輸出作為命令2的操作物件
(2)&和&&、|和|| 區別、分號(;)用法
- & 表示任務在后臺執行;
- && 邏輯與,只有前一條命令執行成功時,才執行后一條命令 ,如 echo '1' && echo '2';
- | 表示管道,上一條命令的輸出,作為下一條命令操作物件;
- || 邏輯或,只有上一條命令執行失敗后,才執行下一條命令;
- ";" 用法方式:command1 ; command2,用 ; 號隔開每個命令,每個命令按照從左到右的順序執行,彼此之間不關心是否失敗, 所有命令都會執行,
4 nohup 后臺啟動行程命令和案例
- nohup 讓某個行程在后臺運行,
- nohup 英文全稱 no hang up(不掛起),用于在系統后臺不掛斷地運行命令,退出終端不會影響程式的運行,
- nohup 命令,在默認情況下(非重定向時),會輸出一個名叫 nohup.out 的檔案到當前目錄下,如果當前目錄的 nohup.out 檔案不可寫,輸出重定向到 $HOME/nohup.out 檔案中,
# 以后臺行程執行啟動 grafana 命令,& 放在命令到結尾,表示后臺運行
nohup ./bin/grafana-server start > grafana.log 2>&1 &
# 2>&1 解釋:將標準錯誤輸出(2 表示)重定向到標準輸出(&1 表示) ,標準輸出(&1) 再被重定向輸入到 grafana.log 檔案中,
5 小結
- 總結了 Linux 中標準輸入(0 表示),標準輸出(1 表示),標準錯誤輸出(2 表示)以及它們的重定向用法;
- 接著簡述了管道符 | 用法,以及 &和&&、|和|| 區別、分號(;)用法;
- 最后結合 nohup 后臺啟動行程命令在實際作業中和上述提到的命令的綜合使用,
「不甩鍋的碼農」原創,轉載請注明來源,未經授權禁止商業用途!同名 GZH 請關注!
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/423888.html
標籤:其他
