6.6 Linux重定向輸入輸出重定向)

      網友投稿 1923 2025-03-31

      6.6 Linux重定向(輸入輸出重定向)

      我們知道,Linux 中標準的輸入設備默認指的是鍵盤,標準的輸出設備默認指的是顯示器。而本節所要介紹的輸入、輸出重定向,完全可以從字面意思去理解,也就是:

      輸入重定向:指的是重新指定設備來代替鍵盤作為新的輸入設備;

      輸出重定向:指的是重新指定設備來代替顯示器作為新的輸出設備。

      通常是用文件或命令的執行結果來代替鍵盤作為新的輸入設備,而新的輸出設備通常指的就是文件。

      Linux輸入重定向

      對于輸入重定向來說,其需要用到的符號以及作用如表 1 所示。

      【例 1】

      默認情況下,cat 命令會接受標準輸入設備(鍵盤)的輸入,并顯示到控制臺,但如果用文件代替鍵盤作為輸入設備,那么該命令會以指定的文件作為輸入設備,并將文件中的內容讀取并顯示到控制臺。

      以 /etc/passwd 文件(存儲了系統中所有用戶的基本信息)為例,執行如下命令:

      [root@localhost ~]# cat /etc/passwd \#這里省略輸出信息,讀者可自行查看 [root@localhost ~]# cat < /etc/passwd \#輸出結果同上面命令相同

      注意,雖然執行結果相同,但第一行代表是以鍵盤作為輸入設備,而第二行代碼是以 /etc/passwd 文件作為輸入設備。

      【例 2】

      [root@localhost ~]# cat << 0 \>linuxyz.cn \>Linux \>0 linuxyz.cn Linux

      可以看到,當指定了 0 作為分界符之后,只要不輸入 0,就可以一直輸入數據。

      【例 3】

      首先,新建文本文件 a.tx,然后執行如下命令:

      [root@localhost ~]# cat a.txt [root@localhost ~]# cat < /etc/passwd > a.txt [root@localhost ~]# cat a.txt \#輸出了和 /etc/passwd 文件內容相同的數據

      可以看到,通過重定向 /etc/passwd 作為輸入設備,并輸出重定向到 a.txt,最終實現了將 /etc/passwd 文件中內容復制到 a.txt 中。

      Linux輸出重定向

      相較于輸入重定向,我們使用輸出重定向的頻率更高。并且,和輸入重定向不同的是,輸出重定向還可以細分為標準輸出重定向和錯誤輸出重定向兩種技術。

      例如,使用 ls 命令分別查看兩個文件的屬性信息,但其中一個文件是不存在的,如下所示:

      [root@localhost ~]# touch demo1.txt [root@localhost ~]# ls -l demo1.txt -rw-rw-r--. 1 root root 0 Oct 12 15:02 demo1.txt [root@localhost ~]# ls -l demo2.txt <-- 不存在的文件 ls: cannot access demo2.txt: No such file or directory

      上述命令中,demo1.txt 是存在的,因此正確輸出了該文件的一些屬性信息,這也是該命令執行的標準輸出信息;而 demo2.txt 是不存在的,因此執行 ls 命令之后顯示的報錯信息,是該命令的錯誤輸出信息。

      再次強調,要想把原本輸出到屏幕上的數據轉而寫入到文件中,這兩種輸出信息就要區別對待。

      在此基礎上,標準輸出重定向和錯誤輸出重定向又分別包含清空寫入和追加寫入兩種模式。因此,對于輸出重定向來說,其需要用到的符號以及作用如表 2 所示。

      【例 4】新建一個包含有 “Linux” 字符串的文本文件 Linux.txt,以及空文本文件 demo.txt,然后執行如下命令:

      [root@localhost ~]# cat Linux.txt > demo.txt [root@localhost ~]# cat demo.txt Linux [root@localhost ~]# cat Linux.txt > demo.txt [root@localhost ~]# cat demo.txt Linux <--這里的 Linux 是清空原有的 Linux 之后,寫入的新的 Linux [root@localhost ~]# cat Linux.txt >> demo.txt [root@localhost ~]# cat demo.txt Linux Linux <--以追加的方式,新數據寫入到原有數據之后 [root@localhost ~]# cat b.txt > demo.txt cat: b.txt: No such file or directory <-- 錯誤輸出信息依然輸出到了顯示器中 [root@localhost ~]# cat b.txt 2> demo.txt [root@localhost ~]# cat demo.txt cat: b.txt: No such file or directory <--清空文件,再將錯誤輸出信息寫入到該文件中 [root@localhost ~]# cat b.txt 2>> demo.txt [root@localhost ~]# cat demo.txt cat: b.txt: No such file or directory cat: b.txt: No such file or directory <--追加寫入錯誤輸出信息

      Linux

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:生產汽車與制造汽車的區別(汽車生產屬于制造業嗎)
      下一篇:無代碼新建項目怎么做的(如何新建代碼
      相關文章
      亚洲欧洲久久av| 国产精品亚洲mnbav网站 | 亚洲精品无码av人在线观看| 亚洲国产成人爱av在线播放| 国产精品亚洲一区二区在线观看| 亚洲中文字幕无码久久| 亚洲天堂2017无码中文| 亚洲精品123区在线观看| 亚洲宅男精品一区在线观看| 亚洲w码欧洲s码免费| 亚洲人成伊人成综合网久久| 亚洲免费黄色网址| 77777亚洲午夜久久多喷| 亚洲香蕉久久一区二区三区四区| 亚洲人成777在线播放| 亚洲制服丝袜中文字幕| 亚洲无人区码一二三码区别图片| 亚洲砖码砖专无区2023| 亚洲日韩精品A∨片无码加勒比| 亚洲日本天堂在线| 日日摸日日碰夜夜爽亚洲| 亚洲成?v人片天堂网无码| 亚洲男人在线无码视频| 最新国产AV无码专区亚洲| 黑人精品videos亚洲人| 亚洲男人天堂2017| 亚洲国产精品日韩在线| 国产成人精品日本亚洲18图 | 中文亚洲AV片在线观看不卡| 亚洲色中文字幕无码AV| 亚洲αv在线精品糸列| 久久亚洲AV成人无码国产| 亚洲国产精品成人精品小说| 亚洲欧洲日韩极速播放| 亚洲精品无码人妻无码| 亚洲av无码成人精品区在线播放| 国产L精品国产亚洲区久久| 亚洲成av人影院| 亚洲精品成人网站在线播放| 国产日本亚洲一区二区三区| 亚洲AⅤ男人的天堂在线观看|