當前位置:首頁 » 操作系統 » linux錯誤重定向

linux錯誤重定向

發布時間: 2023-09-23 13:44:59

linux 標准錯誤輸出重定向

用途:不掛斷地運行命令。

語法:nohup Command [ Arg … ] [& ]

無論是否將 nohup 命令的輸出重定向到終端,輸出都將附加到當前目錄的 nohup.out 文件中。

如果當前目錄的 nohup.out 文件不可寫,輸出重定向到 $HOME/nohup.out 文件中。

如果沒有文件能創建或打開以用於追加,那麼 Command 參數指定的命令不可調用。

退出狀態:該命令返回下列出口值:

126 可以查找但不能調用 Command 參數指定的命令。

127 nohup 命令發生錯誤或不能查找由 Command 參數指定的命令。

否則,nohup 命令的退出狀態是 Command 參數指定命令的退出狀態。

用途:在後台運行

一般兩個一起用

3.為什麼呢 2>&1 要寫在後面?

首先是command > file將標准輸出重定向到file中, 2>&1 是標准錯誤拷貝了標准輸出的行為,也就是同樣被重定向到file中,最終結果就是標准輸出和錯誤都被重定向到file中。

2>&1 標准錯誤拷貝了標准輸出的行為,但此時標准輸出還是在終端。>file 後輸出才被重定向到file,但標准錯誤仍然保持在終端。

用strace可以看到:

這個命令中實現重定向的關鍵系統調用序列是:

open(file) == 3

p2(3,1)

p2(1,2)

這個命令中實現重定向的關鍵系統調用序列是:

p2(1,2)

open(file) == 3

p2(3,1)

注意:0 是標准輸入(STDIN),1 是標准輸出(STDOUT),2 是標准錯誤輸出(STDERR)。

這里的2和>之間不可以有空格,2>是一體的時候才表示錯誤輸出。

❷ linux輸出重定向到文件命令

輸出即把相關對象通過輸出設備(顯示器等)顯示出來,輸出又分正確輸出和錯誤輸出
一般情況下標准輸出設備為顯示器,標准輸入設備為鍵盤。

命令 >> 文件 2>&1 和 命令 &>>文件 兩個命令作用相同
系統有個常見用法 ls &>/dev/null 正確輸出或錯誤輸出結果都不要。(null可以理解為黑洞或垃圾站)
命令>>文件1 2>>文件2 正確日誌和錯誤日誌分開保存

例:nohup java -jar /usr/sbin/lb-agent.jar >>/var/log/lb-agent.log 2>&1 &
將jar執行的結果寫入到lb-agent.log中
在命令最後加上&符號,表示讓這個進程到後台去執行,這樣立刻返回到提示符狀態,我們可以接著做下面的事。如:command &。
這種「後台」進程在shell一直打開的情況下是沒有問題的,如果我們關了shell窗口甚至退出ssh登錄或vnc登錄,那麼進程自動就結束了。所以如果想退出窗口乃至退出登錄仍然保持程序運行,再加上nohup,形如:nohup command 1>output 2>&1 &《Linux就該這么學》學習更多linux知識。

❸ linux系統中輸出重定向是指

Linux下默認有兩種輸出流:
1 - 標准輸出流
2 - 標准錯誤輸出流
Linux下一切皆文件,這里的1和2表示的就是輸出設備文件的文件描述符。
默認情況下,無論是標准輸出還是標准錯誤輸出,都是輸出到終端顯示的。
但也可以通過重定向輸出到其他地方,如文件。這就是輸出重定向。
並且,這兩種輸出流可以被分別重定向。

下面舉例:
假設文件file.txt在當前目錄下並不存在,執行下面的命令:

ls file.txt 2>log.txt
這樣就將錯誤輸出重定向到文件log.txt中。

ls file.txt 2>/dev/null
這樣就什麼都看不到,將標准錯誤輸出流重定向到/dev/null中,丟棄了。

ls file.txt >/dev/null
只將標准輸出重定向到/dev/null中,這樣仍然可以在終端窗口看到錯誤輸出。
註:>/dev/null 等同於 1>/dev/null,前面的1可省略。

由於問題比較具體建議對照劉遄老師的《Linux就該這么學》

❹ Linux標准輸入輸出與重定向詳解|果斷收藏

linux中的>、>>、<、<<、2>、2>>、2>&1、&>、&<,總歸要面對的

為了更好的理解這個問題,我們需要追本溯源。

執行一個shell命令行時通常會自動打開三個標准文件

(1) 、標准輸入文件(stdin)

通常對應終端的鍵盤。

(2)、標准輸出文件(stdout)。

(3)、標准錯誤輸出文件(stderr)。

(2)和(3)這兩個文件都對應終端的屏幕。

進程將從標准輸入文件中得到輸入數據。

將正常輸出數據輸出到標准輸出文件[顯示器]。

將錯誤信息送到標准錯誤文件中[顯示器]。

下圖所示:

0、1、2表示一個文件描述符

但是,有時候我們不想把一些進程處理後信息輸出到顯示器。

這時我們就引出了重定向。

改變標准輸入/輸出的方向

三種重定向:

1、重定向標准輸出,包括兩種。

(1)、>(覆蓋),等價1>

將命令執行的結果輸出到指定文件,非顯示器。

(2) 、>>(追加),等價1>>

將命令執行的結果追加到指定文件,非顯示器。

2、 重定向標准輸入,包括兩種。

(1) 、<

將命令中接收的輸入途徑,由鍵盤改為指定文件。

(2) 、<<[Here Document]

命令序列傳遞到一個交互程序或者命令中。

3、 重定向標准錯誤,包括兩種。

(1) 、2>(覆蓋)

將命令執行的結果輸出到指定文件。

(2) 、2>>(追加)

將命令執行的結果追加到指定文件。

1、重定向標准輸出和重定向標准錯誤到同一個文件中

有以下的幾種方式

(1) 、2>&1

(2) 、>&

(3) 、&>

2、 兩個特殊文件

(1) 、/dev/nul

過濾標准錯誤信息

意思就是不想顯示結果就輸出到這裡面。

(2) 、/dev/zero

創建指定長度的文件

案例1:

測試> and >>

案例2:

測試< and <<

測試<

測試<<

案例3:

測試2> and 2>>

案例4:

測試重定向標准輸出和重定向標准錯誤到同一個文件中

(1)、>&

(2)、&>

與上面的案例類似,不做解釋

(3) 、2>&1

案例5:

使用/dev/nul文件

有時候我們使用命令,不想將輸出的信息顯示到界面

這時我們可以使用 &> /dev/nul[常用]

簡單測試修改demo 用戶密碼

❺ linux中怎麼實現重定向2

在您實現輸出的那行命令後面加上>、>>、<、<<、2>、2>>來實現重定向。
>是每一次重定向時將原先的內容先刪除然後寫入新的數據。
>>是每一次重定向時將新的內容加入到就內容的後面。
<是將指定文件內容重定向到相關命令或者文件中,同時每次執行時先刪除舊的再加入新的。
<<作用同上,只是將新的信息加到舊的信息後面。
2>是將命令執行報錯時,將錯誤信息重定向至指定文件,並且每次執行都會先刪除舊的再加入新的。
2>>和上面一條命里作用一樣,只是將新的錯誤信息加到原來信息的後面

舉例:
1.ls /etc/passwd > user
2.ls /etc/passwd >> user
3.ls idjsoigjs > test
4.ls idjsoigjs >> test
5. mail 用戶名 -s "郵件題目" < file (file是你建的一個文件,裡面內容隨意自己定)
然後輸入 mail 可以看到自己有封郵件題目為(您自定義的名字),輸入相應的數字,您可以按到信件內容為file內容,這就是利用重定向直接將已寫好的信件內容發送出去。
至於1-4的結果,樓主可在輸入完後自行查看user和test的變化來進行對比。

對照劉遄老師的《Linux就該這么學》

❻ linux中的輸出重定向是什麼意思

推薦資料:Linux運維中重定向指的是什麼?

熱點內容
少兒編程排行 發布:2025-01-24 04:40:46 瀏覽:697
搭建伺服器怎麼使用 發布:2025-01-24 04:19:34 瀏覽:443
平行進口霸道哪些配置有用 發布:2025-01-24 04:19:32 瀏覽:873
ngram演算法 發布:2025-01-24 04:03:16 瀏覽:658
迷宮游戲c語言 發布:2025-01-24 03:59:09 瀏覽:358
榮耀30pro存儲類型 發布:2025-01-24 03:54:02 瀏覽:556
客戶端文件上傳 發布:2025-01-24 03:48:44 瀏覽:257
推特更改密碼的用戶名是什麼 發布:2025-01-24 03:45:55 瀏覽:596
cc編譯選項 發布:2025-01-24 03:45:18 瀏覽:511
銀行密碼怎麼被鎖 發布:2025-01-24 03:37:02 瀏覽:431