linux--11、輸入輸出重定向

操作系統(tǒng):centos8

我們?cè)趕hell終端輸入命令,一般來說,輸出結(jié)果也會(huì)顯示在shell終端。如果我們使用輸出重定向符把輸出結(jié)果直接保存在文件中,而不是顯示在終端,這就是輸出重定向
同理,我們使用輸入重定向符,直接以文件來作為命令的輸入,這就是輸入重定向

我們先學(xué)一下以下三個(gè)概念:

  • 標(biāo)準(zhǔn)輸入(STDIN,文件描述符為0):默認(rèn)從鍵盤輸入,為0時(shí)表示是從其他文件或命令的輸出。
  • 標(biāo)準(zhǔn)輸出(STDOUT,文件描述符為1):默認(rèn)輸出到屏幕,為1時(shí)表示是文件。
  • 錯(cuò)誤輸出(STDERR,文件描述符為2):默認(rèn)輸出到屏幕,為2時(shí)表示是文件。

ps:對(duì)于標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出來說,0和1不用寫,只有需要把錯(cuò)誤輸出重定向到文件時(shí)才需要寫2 。

1、輸出重定向

對(duì)于輸出重定向符有這些情況:

符號(hào) 作用
命令 > 文件 將標(biāo)準(zhǔn)輸出重定向到一個(gè)文件中(清空原有文件的數(shù)據(jù))
命令 >> 文件 將標(biāo)準(zhǔn)輸出重定向到一個(gè)文件中(追加到原有內(nèi)容的后面)
命令 2> 文件 將錯(cuò)誤輸出重定向到一個(gè)文件中(清空原有文件的數(shù)據(jù))
命令 2>> 文件 將錯(cuò)誤輸出重定向到一個(gè)文件中(追加到原有內(nèi)容的后面)
命令 >> 文件 2>&1 將標(biāo)準(zhǔn)輸出與錯(cuò)誤輸出共同寫入到文件中(追加到原有內(nèi)容后面)

下面是一些輸出重定向的例子:
(1) 將man命令的幫助文檔寫入到 ./test 文件中:
$ man man > ./test
(2) 向 ./test 文件中添加一行字:
$ echo "hello world" >> ./test
(3) 將 ls /hello 命令的錯(cuò)誤輸出到 ./test 文件中:
$ ls /hello 2> ./test
(4) 將 type echo hello 命令的標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出共同寫入到 ./test 文件中:

$ type echo hello > ./test 2>&1
$ cat ./test
echo 是 shell 內(nèi)建
bash: type: hello: 未找到

(5) 丟棄結(jié)果:
如果你既不想把命令的輸出結(jié)果保存到文件,也不想把命令的輸出結(jié)果顯示到屏幕上,干擾命令的執(zhí)行,那么可以把命令的所有結(jié)果重定向到 /dev/null 文件中。
$ ls -a &> /dev/null

2、輸入重定向

對(duì)于輸入重定向有這些情況:

符號(hào) 作用
命令 < 文件 將文件作為命令的標(biāo)準(zhǔn)輸入
命令 < 文件1 > 文件2 將文件1作為命令的標(biāo)準(zhǔn)輸入并將標(biāo)準(zhǔn)輸出到文件2

下面是一些輸入重定向的例子:
(1) 統(tǒng)計(jì) ./test 文件的行數(shù):

$ wc -l ./test
2 ./test
$ wc -l < ./test
2

(2) 統(tǒng)計(jì)./test 文件的行數(shù),并輸出到 ./test2 文件中:

$ wc -l < ./test > ./test2
$ cat ./test2
2
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • linux文件描述符:可以理解為linux跟蹤打開文件,而分配的一個(gè)數(shù)字,這個(gè)數(shù)字有點(diǎn)類似c語言操作文件時(shí)候的句柄...
    SkTj閱讀 668評(píng)論 0 1
  • 1.重定向概述 1.什么是重定向?qū)⒃舅庉敵龅狡聊坏臄?shù)據(jù)信息,重新定向到某個(gè)指定文件中。比如每天凌晨定時(shí)備份數(shù)據(jù),...
    a幕城閱讀 633評(píng)論 0 0
  • 本章內(nèi)容:再探重定向標(biāo)準(zhǔn)輸入和輸出報(bào)告錯(cuò)誤丟棄數(shù)據(jù)創(chuàng)建日志文件 理解輸入和輸出 顯示輸出的方法有: 在顯示器屏幕上...
    王詩翔閱讀 5,062評(píng)論 0 7
  • 輸出重定向 一般shell命令的輸出打印在終端上的,不過也可以保存到文件內(nèi)。 使用>把輸出定向到文件中 再次重定向...
    tafanfly閱讀 206評(píng)論 0 0
  • 先說一下linux重定向: 0、1和2分別表示標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤信息輸出,可以用來指定需要重定向的標(biāo)準(zhǔn)輸...
    夢(mèng)歸游子意閱讀 1,217評(píng)論 1 2

友情鏈接更多精彩內(nèi)容