日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux io重定向指令,Linux基础知识之 IO重定向

發(fā)布時(shí)間:2025/3/21 linux 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux io重定向指令,Linux基础知识之 IO重定向 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

通常在 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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。