linux io重定向指令,Linux基础知识之 IO重定向
通常在 Shell 中執(zhí)行命令的時(shí)候,我們會(huì)在輸入命令的下方看到執(zhí)行結(jié)果,操作系統(tǒng)默認(rèn)將命令的執(zhí)行結(jié)果輸出到顯示器上。當(dāng)然,我們也可以手動(dòng)的指定輸出路徑,或者輸入路徑,這就是 I/O 重定向。
1.標(biāo)準(zhǔn)輸出重定向
使用 cat 命令,命令的執(zhí)行結(jié)果將會(huì)打印在屏幕中。
我們使用 > 來進(jìn)行輸出重定向,此時(shí)屏幕上不再打印命令執(zhí)行結(jié)果了,而是將執(zhí)行結(jié)果保存到了 ./target.xxx 文件中。
來看一下 ./target.xxx 文件中的內(nèi)容:
2.標(biāo)準(zhǔn)輸入重定向
tr?命令可以從鍵盤上讀取標(biāo)準(zhǔn)輸入,然后打印出命令的執(zhí)行結(jié)果:
底下的光標(biāo)表示 tr 命令在等待用戶的輸入,然后將它們打印在屏幕上。ctrl + c 可以終止此命令執(zhí)行。默認(rèn)情況下,tr?從鍵盤上讀取內(nèi)容輸出,如果我們要在其他文件中讀取內(nèi)容,就要使用標(biāo)準(zhǔn)輸入重定向。
3. >> 和 <<
在使用 > 進(jìn)行輸出重定向的時(shí)候,后一次的輸出會(huì)覆蓋前一次的輸出,如果我們不想進(jìn)行覆蓋,就使用 >> 進(jìn)行追加重定向。
和 >> 不同的是, << 并不表示追加重定向,而是進(jìn)行文檔輸入,或者多行輸入。使用 << 的時(shí)候需要使用定界符標(biāo)志,關(guān)于這個(gè)命令,學(xué)過 PHP 的同學(xué)應(yīng)該比較了解了。定界符可以任意取名,只要兩端保持一致即可。
輸入重定向和輸出重定向也可以連接配合使用,這里使用 << 和 >> 舉例:
4.標(biāo)準(zhǔn)錯(cuò)誤輸出流(STDERR)
除了標(biāo)出輸入流(STDIN),標(biāo)準(zhǔn)輸出流(STDOUT),還有標(biāo)準(zhǔn)錯(cuò)誤輸出流(STDERR)。標(biāo)準(zhǔn)錯(cuò)誤輸出流和標(biāo)準(zhǔn)輸出流是不同的數(shù)據(jù)流。
如果命令發(fā)生了錯(cuò)誤,屏幕上會(huì)打印錯(cuò)誤信息,由于 STDERR 和 STDOUT 屬于不同的數(shù)據(jù)流,因此該錯(cuò)誤信息并不會(huì)輸出到 ./result 中。
標(biāo)準(zhǔn)錯(cuò)誤輸出流使用 2>(覆蓋) 或者 2>> (追加)進(jìn)行重定向:
屏幕上沒有打印錯(cuò)誤信息,將錯(cuò)誤信息輸出到 ./result 文件中。
如果我們想將命令執(zhí)行的結(jié)果(正常結(jié)果和出錯(cuò)信息)一并輸出到某個(gè)文件中,可以使用 >> 和 2>> 連接進(jìn)行操作,也可以使用 &> 或者 &>> 重定向 STDOUT 和 STDERR 到同一個(gè)文件中:
5.管道
管道表示數(shù)據(jù)的流向:數(shù)據(jù)在某處進(jìn)行處理后,通過管道傳輸?shù)搅硪惶庍M(jìn)行處理。Linux 中使用 | 作為管道連接符,表示將上一次命令的執(zhí)行結(jié)果作為下一次命令的輸入。下面是管道的兩個(gè)實(shí)例用法:
6.set 命令
set 是 bash 中的一個(gè)內(nèi)建命令,可以進(jìn)行一些功能的開啟或者關(guān)閉。為了安全起見,我們一般是不允許進(jìn)行覆蓋重定向的,這是可以使用 set -C 表示禁止覆蓋重定向。
使用 set +C 命令表示允許覆蓋重定向。
如果在使用 set -C 禁止覆蓋重定向之后,我們還是想執(zhí)行這樣的操作呢?我們可以使用 COMMAND >| FILE,通過在 > 后加一個(gè)豎線,可以實(shí)現(xiàn)此操作。
7.總結(jié)
本文介紹了 Linux 中的 I/O 重定向的實(shí)現(xiàn),包括標(biāo)準(zhǔn)輸入、輸出重定向,以及標(biāo)準(zhǔn)錯(cuò)誤輸出重定向,還有覆蓋重定向和追加重定向的區(qū)別。最后介紹了 Linux 中的管道,我們使用管道對(duì)命令進(jìn)行連接,前一個(gè)命令的輸出作為后一個(gè)命令的輸入。內(nèi)容比較簡(jiǎn)單,作為一個(gè)單獨(dú)的知識(shí)點(diǎn),還是將其獨(dú)立成文,方便以后查閱。這篇文章會(huì)介紹 grep 命令和正則表達(dá)式,學(xué)會(huì)使用 grep 命令之后,我們?cè)?Linux 上處理文件將會(huì)非常的方便快捷。
總結(jié)
以上是生活随笔為你收集整理的linux io重定向指令,Linux基础知识之 IO重定向的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux语言windows 语言,作业
- 下一篇: 大型网站 linux,大型网站架构演变