Linux I/O重定向
Linux I/O重定向可以定義為,更改從命令讀取輸入到命令發送輸出的方式。你可以重定向命令的輸入和輸出。對于重定向符號,可以是<、> 或者 | 。
I/O重定向中的標準流
Bash shell在I/O重定向中有三個標準流:
標準輸入(stdin):stdin流編號為stdin(0)。bash shell從stdin獲取輸入。默認情況下,鍵盤用作輸入。 標準輸出(stdout):stdout流編號為stdout(1)。bash shell將輸出發送到stdout。輸出將顯示。 標準錯誤(stderr):stderr流編號為stderr(2)。bash shell向stderr發送錯誤消息。顯示錯誤消息。
重定向到文件
每個流都使用重定向命令。單括號'>'或雙括號'>>'可用于重定向標準輸出。如果目標文件不存在,將創建一個具有相同名稱的新文件。
覆蓋:帶有單括號“>”的命令將覆蓋現有的文件內容。
>:標準輸出 <:標準輸入 2>:標準錯誤
注意:寫“1>”或“>”和“0<”或“<”是一回事。但對于stderr,必須編寫“2>”。
用法: cat >
追加: 帶有雙括號“>>”的附加命令不會覆蓋現有的文件內容。
>>-標準輸出 <<-標準輸入 2>>-標準錯誤
用法: cat >>
重定向到程序
重定向到程序管道將流從一個程序重定向到另一個程序。當管道用于將一個程序的標準輸出發送到另一個程序時,第一個程序的數據將不會顯示在終端上,只顯示第二個程序的信息。盡管管道的功能看起來可能與“>”和“>>”相似,但有顯著差異。管道將數據從一個程序重定向到另一個程序,而括號僅用于文件的重定向。
用法: ls *.txt | cat > txtFile
Linux input 重定向
bash shell使用stdin獲取輸入。在輸入重定向中,將文件輸入命令,并在“<”符號的幫助下執行此重定向。
<<文檔
EOF(文件結束)可以鍵入,也可以通過按(ctrl+d)鍵調用。任何單詞都可以代替“EOF”,就像我們使用的“last”一樣。
<<字符串
字符串用于將字符串直接傳遞給命令。
Linux輸出重定向
輸出重定向用于將一個命令的輸出放入文件或另一個命令。
> stdout
stdout使用大于號'>'重定向。當shell遇到'>'號時,它將清除文件:
輸出文件被擦除
在輸出重定向中,在掃描命令行的過程中,shell將遇到“>”符號,并將清除文件。
nolobber
我們可以在nolobber選項的幫助下,在使用'>'符號時防止文件刪除。
否定noclobber
重寫nolobber意味著您可以在使用'>|'符號設置nolobber時覆蓋現有文件。
>>append
append'>>'不允許覆蓋文件內容,因此顯示新的和舊的文件內容。
Linux錯誤重定向
2> stderr
命令'2>'重定向輸出的錯誤,它可以通過重定向錯誤消息來幫助我們減少顯示的混亂。
2> &1
此命令有助于重定向同一文件中的stdout和stderr。
注意:重定向的順序非常重要:
然后,stdout和stderr都將被定向到文件目錄列表:
然后,只有stdout會重定向到目錄列表。這是因為,在將stdout重定向到目錄列表之前,stderr已經復制了stdout。
審核編輯:湯梓紅
Syntax:
cat <
[root@localhost ~]# cat < f.txt
aa
[root@localhost ~]#
Syntax:
cat <
Example:
base64 <<< format.txt
Example:
echo Hello everyone. > afile.txt
Example:
zcho Welcome > afile.txt
Syntax:
set -o noclobber (防止覆蓋)
set +o noclobber (覆蓋)
Example:
echo Learn Linux. > newfile.txt
Syntax:
command >|
Syntax:
command >>
Example:
echo You all are welcome here. >> newfile.txt
Example:
zcho hyii 2> /dev/null
Example:
newfile.txt > abc.txt and error.txt 2>&1
ls > dirlist 2>&1
ls 2>&1 > dirlist
-
Linux
+關注
關注
87文章
11292瀏覽量
209328 -
命令
+關注
關注
5文章
683瀏覽量
22011 -
Shell
+關注
關注
1文章
365瀏覽量
23356 -
Bash
+關注
關注
0文章
57瀏覽量
10179 -
重定向
+關注
關注
0文章
9瀏覽量
7376
原文標題:Linux錯誤重定向
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論