『壹』 linux下,如何將控制台輸出的所有內容全部輸出到一個文本文件
直接使用輸抄出重定向到你想要襲的文件即可,不過將所有的控制到信息輸出到一個文本文件,只有兩個辦法:
①:修改所有程序的輸出路徑:printf函數 echo.....幾乎是不可能完成的任務
②:修改linux的標准輸出路徑:
句柄 句柄的數字代號 描述
STDIN 0 鍵盤輸入
STDOUT 1 輸出到命令提示符窗口
STDERR 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標准輸入輸出與重定向詳解|果斷收藏
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 怎麼把標准輸出重定向其他文件
command > filename 把把標准輸出重定向到一個新文件中
command >> filename 把把標准輸出重定向到一個文件中(追加)
command 1 > fielname 把把標准輸出重定向到一個文件中
command > filename 2>&1 把把標准輸出和標准錯誤一起重定向到一個文件中
command 2 > filename 把把標准錯誤重定向到一個文件中
command 2 >> filename 把把標准輸出重定向到一個文件中(追加)
command >> filename 2>&1 把把標准輸出和標准錯誤一起重定向到一個文件中(追加)
command < filename > filename2把command命令以filename文件作為標准輸入,以filename2文件作為標准輸出
command < filename 把command命令以filename文件作為標准輸入
command << delimiter 把從標准輸入中讀入,直至遇到delimiter分界符
command <&m 把把文件描述符m作為標准輸入
command >&m 把把標准輸出重定向到文件描述符m中
command <&- 把關閉標准輸入
『陸』 Linux 重定向符號以及2>&1
一個進程默認會打開標准輸入、標准輸出、錯誤輸出三個文件描述符
文件描述符為薯野0,小於號表示數據由文件流入命令
usage:
命令 < file
#加入輸入重定向,對輸入文件進行計數
wc -l < /etc/passwd
文件描述符為1,大於號表述數據由命令流入文件
所以: echo "hello" > t.log 也可以寫成 echo "hello" 1 > t.log
> 會把文件的內容清空,再輸入到新的文件
>> 會把當前內容保持不變,然後在下一行進首手備行追加
2> 錯誤重定向,如果當前命令產生了錯誤,會把錯誤重定向到文件中,而不會列印到屏幕
&> 無論內容正確還是錯誤都會把文件輸出到文件中。
stderr的文件描述符為2,Unix程序會向stderr流中寫入錯誤信息。
默認情況下, command > file 將stdout 重定向到 file, command < file 將stdin 重定向到 file。
如果希望 stderr 重定向到 file,可以這樣寫:
$ command 2>file
如果希望 stderr 追加到 file 文件末尾,可以這樣寫:
$ command 2>>file 2 表示標准錯誤文件(stderr)
如果希望將 stdout 和 stderr 合並後重定向到 file,可以這樣寫:
$ command > file 2>&1 或者 $ command >> file 2>&1
如果希望對 stdin 和 stdout 都重定向,可以這樣寫:
$ command < file1 >file2
command 命令將 stdin 重定向到 file1,將 stdout 重定向到 file2。
含義:將標准錯誤輸出 重定向到 標准輸出。
符號>&是一個整體,不可分開,分開後就不是上述含義了。
比如有些人可能會這么想:2是標准錯誤輸入,1是標准輸出,>是重定向符號,那麼"將標准錯誤輸出重定向到標准輸出"是不是就應該寫成者毀"2>1"就行了?是這樣嗎? 如果是嘗試過,你就知道2>1的寫法其實是將標准錯誤輸出重定向到名為"1"的文件里去了
『柒』 linux中的輸出重定向是什麼意思
輸出重定向則是指把原本要輸出到屏幕的數據信息寫入到指定文件中。在日常的學習和工作中,相較於輸入重定向,我們使用輸出重定向的頻率更高,所以又將輸出重定向分為了標准輸出重定向和錯誤輸出重定向兩種不同的技術,以及清空寫入與追加寫入兩種模式。聽起來就很玄妙?
標准輸出重定向(STDOUT,文件描述符為1):默認輸出到屏幕。
錯誤輸出重定向(STDERR,文件描述符為2):默認輸出到屏幕。
比如我們分別查看兩個文件的屬性信息,其中第二個文件是不存在的,雖然針對這兩個文件的操作都分別會在屏幕上輸出一些數據信息,但這兩個操作的差異其實很大:
[root@linuxprobe~]#touchlinuxprobe
[root@linuxprobe~]#ls-llinuxprobe
-rw-r--r--.1rootroot0Aug505:35linuxprobe
[root@linuxprobe~]#ls-lxxxxxx
ls:cannotaccessxxxxxx:Nosuchfileordirectory
#命令來自->http://www.linuxprobe.com/chapter-03.html#31
在上述命令中,名為linuxprobe的文件是存在的,輸出信息是該文件的一些相關許可權、所有者、所屬組、文件大小及修改時間等信息,這也是該命令的標准輸出信息。而名為xxxxxx的第二個文件是不存在的,因此在執行完ls命令之後顯示的報錯提示信息也是該命令的錯誤輸出信息。那麼,要想把原本輸出到屏幕上的數據轉而寫入到文件當中,就要區別對待這兩種輸出信息。
命令>文件將標准輸出重定向到一個文件中(清空原有文件的數據)
命令2>文件將錯誤輸出重定向到一個文件中(清空原有文件的數據)
命令>>文件將標准輸出重定向到一個文件中(追加到原有內容的後面)
命令2>>文件將錯誤輸出重定向到一個文件中(追加到原有內容的後面)
命令>>文件2>&1或命令&>>文件將標准輸出與錯誤輸出共同寫入到文件中(追加到原有內容的後面)
『捌』 linux運行互動式腳本輸出結果實時屏幕輸出的同時重定向到文件,並屏幕和文件中都有時間戳
時間戳好說,每日輸出日誌前,先執行date命令即可。要實現輸出文件同時列印屏幕只需要在原命令後加管道符,然後接tee 命令再定向到輸出文件。tee命令可以把管道符號前的輸出作為結果文件的輸入同時,列印屏幕。
tee 可以加參數,以追加方式輸出到文件。如tee -a xxx