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

linux的重定向

發布時間: 2024-02-29 18:21:14

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命令的輸入輸出與文件之間重定向,以及實現將多個命令組合起來實現更加強大的命令。這部分涉及到的比較多的命令主要有:

cat:連接文件 sort:排序文本行 uniq:忽略或者報告重復行

wc:統計文件的行數、詞數、位元組數

grep:列印匹配製定模式的行

head:輸出文件的頭部 tail:輸出文件的尾部

tee:從標准輸入讀,並往標准輸出或者文件寫

  1. 重定向標准輸出

    使用>可以將本來出現在屏幕的標准輸出信息重定向到一個文件中。

    使用>>可以在實現重定向時不覆蓋原有內容,而是在文件末尾追加內容。

  2. 重定向標准錯誤信息到文件

    使用文件描述符,在shell中,默認用數字0,1,2分別代表標准輸入、標准輸出、標准錯誤。

  3. 屏蔽不想看到的信息

    Linux中有一個特殊的文件/dev/null,這個文件叫做bit bucket,可以接受輸入信息但是什麼都不做。例如:ls/usr/> /dev/null

  4. 重定向標准輸入

    cat命令可以接受一組文件為參數,將這些文件復制到標准輸出。我們前面的例子中已經多次使用到cat命令來將文本文件的內容讀取到屏幕上。cat還有一個很重要的功能:接受一組文件,然後通過重定向將他們重新組合到一個文件中。

    cat ls1 ls2 > ls這個命令將ls1和ls2文件中的內容合並到ls文件中了。cat命令的這種功能不僅僅適用於文本文件,同樣對二進制文件有效。這個場景主要在將多個壓縮包文件合並到一個壓縮包中用到。

    cat也可以不傳遞參數,這種情況下,cat會重定向標准輸入到標准輸出。

  5. 管道

    Linux提供|操作符,該操作符可以將一個命令的輸出作為另一個命令的輸入,這樣通過多個命令的協作來完成一些比較復雜的內容。比如,我們可以通過uniq命令來排除重復的行。但是uniq命令往往需要和sort命令配合使用。因為uniq接收一組排好序的文本,而剛好sort可以將文本行排序。


Ⅲ 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>是一體的時候才表示錯誤輸出。

熱點內容
php輸出array 發布:2024-11-28 13:30:15 瀏覽:745
汽車安卓大屏的高德怎麼卸載 發布:2024-11-28 13:26:00 瀏覽:701
androidbitmap失真 發布:2024-11-28 13:05:04 瀏覽:866
php圖片識別文字 發布:2024-11-28 12:55:23 瀏覽:823
redis永久緩存 發布:2024-11-28 12:37:40 瀏覽:56
php是自學網 發布:2024-11-28 12:33:57 瀏覽:733
php採集系統 發布:2024-11-28 12:32:04 瀏覽:908
資料庫恢復的實現技術 發布:2024-11-28 12:25:26 瀏覽:6
壓縮圖檔 發布:2024-11-28 12:25:23 瀏覽:424
自定義緩存 發布:2024-11-28 12:25:07 瀏覽:236