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