在linux中,重定向是將原本要輸出的數(shù)據(jù)信息,重新指向某個(gè)特定的文件中,也就是對(duì)原來(lái)的系統(tǒng)命令的默認(rèn)執(zhí)行方式進(jìn)行改變;重定向一般通過(guò)在命令間插入特定的符號(hào)來(lái)實(shí)現(xiàn),語(yǔ)法示例為“command1 > file1”。
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
linux中什么是重定向
Linux重定向是指修改原來(lái)默認(rèn)的一些東西,對(duì)原來(lái)系統(tǒng)命令的默認(rèn)執(zhí)行方式進(jìn)行改變,比如說(shuō)簡(jiǎn)單的我不想看到在顯示器的輸出而是希望輸出到某一文件中就可以通過(guò)Linux重定向來(lái)進(jìn)行這項(xiàng)工作。
1,Linux中的重定向到底是個(gè)什么呢?
Linux中的重定向就是將原本要輸出到屏幕中的數(shù)據(jù)信息,重新指向某個(gè)特定的文件中,或者定向到黑洞(/dev/NULL)中。
1.2重定向有什么用呢?
1,當(dāng)程序執(zhí)行輸出的信息比較多時(shí),需要保存下來(lái)在進(jìn)行分頁(yè)查看。
2,后臺(tái)執(zhí)行的程序一般都會(huì)有輸出,不希望它輸出干擾到終端。
3,執(zhí)行定時(shí)的備份任務(wù),希望備份的結(jié)果保留下來(lái)時(shí)。
4,當(dāng)重復(fù)創(chuàng)建用戶,會(huì)提示一些錯(cuò)誤信息,可以直接將信息丟棄。
5,希望將錯(cuò)誤日志與正確日志,分別輸出保存到不同文件時(shí)。
1.3?標(biāo)準(zhǔn)輸入與輸出
當(dāng)進(jìn)程操作一個(gè)文件時(shí):
1,首先進(jìn)程是無(wú)法直接訪問(wèn)硬件的,需要借助內(nèi)核來(lái)訪問(wèn)文件
2,而內(nèi)核kernel需要利用文件描述符?(file?descriptor)來(lái)訪問(wèn)文件。
總結(jié):進(jìn)程—通過(guò)—>文件描述符(非負(fù)整數(shù))–訪問(wèn)—》文件名稱;進(jìn)程使用文件描述符來(lái)管理打開(kāi)的文件對(duì)應(yīng)關(guān)系。
第一步:運(yùn)行?tail?-f?/etc/passwd
第二部:通過(guò)文件描述符3—>/etc/passwd–>inode–>block
第三步:正確輸出—>默認(rèn)情況下通過(guò)文件描述符1—>當(dāng)前終端?1>(改變輸出的位置,文件,黑洞)
第四步:?錯(cuò)誤輸出—>默認(rèn)情況下通過(guò)文件描述符2—》當(dāng)前終端?2>(錯(cuò)誤輸出)
通常程序訪問(wèn)一個(gè)文件至少會(huì)打開(kāi)三個(gè)標(biāo)準(zhǔn)文件,分別是標(biāo)準(zhǔn)輸入,標(biāo)準(zhǔn)輸出,錯(cuò)誤輸出。
進(jìn)程將從標(biāo)準(zhǔn)輸入中得到數(shù)據(jù),將正常輸出打印至屏幕終端,將錯(cuò)誤的輸出信息也打印至屏幕終端。
相關(guān)推薦:《Linux視頻教程》