Linux中的幾種標準文件描述符詳細介紹【易啟科技】是一家江西贛州專業(yè)的網(wǎng)站、小程序、商城建設(shè)開發(fā)的網(wǎng)絡(luò)公司,提供專業(yè)的網(wǎng)絡(luò)營銷服務(wù),領(lǐng)先的互聯(lián)網(wǎng)營銷公司。 二維碼
520
Linux中的幾種規(guī)范文件描述符詳解。 Linux系統(tǒng)將各個目標作為文件解決,這包含輸入和輸出過程。Linux用文件描述符(file descriptor)來標志每一個文件目標。文件描述符是一個非負整數(shù),能夠**標志會話中打開的文件。每一個過程一次多可以有九個文件描述符。出自于獨特目地,bash shell保存了前三個文件描述符(0、1和2),詳細信息見下列。 Linux的規(guī)范文件描述符 這三個獨特文件描述符會解決腳本制作的輸入和輸出。shell用他們將shell默認的輸入和輸出導(dǎo)向性到對應(yīng)的部位。下邊贛州網(wǎng)站開發(fā),贛州網(wǎng)絡(luò)公司,贛州網(wǎng)站seo,贛州電腦網(wǎng)站開發(fā),贛州手機網(wǎng)站開發(fā)來為大家介紹一下這種規(guī)范文件描述符,供大家參照! 一、STDIN STDIN文件描述符意味著shell的規(guī)范輸入。對用戶頁面而言,規(guī)范輸入是電腦鍵盤。shell從STDIN 文件描述符相對應(yīng)的電腦鍵盤得到輸入,在用戶輸入時解決每一個標識符。 使用輸入重定向標記(<)時,linux用到重定向指定的文件來更換規(guī)范輸入文件描述符。他會載入文件并提取數(shù)據(jù),就如同這是鍵盤上輸入的。< p=""> 很多bash命令可以接受STDIN的輸入,特別是沒有在命令行上特定文件得話。下面是個用cat 命令解決STDIN輸入的信息的例子。 $cat this is a test this is a test this is a second test. this is a second test. 如在命令行上只輸入cat命令時,它是從STDIN接納輸入。輸入一行,cat命令便會顯現(xiàn)出 一行。 但是你還可以通過STDIN重定向標記強制性cat命令接納來源于另一個非STDIN文件的輸入。 $cat This is the first line. This is the second line. This is the third line. $ 如今cat命令會用testfile文件里的行做為輸入。你能使用這種技術(shù)性將數(shù)據(jù)輸入到一切可以從 STDIN接納數(shù)據(jù)信息的shell命令中。 二、STDOUT STDOUT文件描述符意味著shell的規(guī)范輸出。在終端設(shè)備界面上,規(guī)范輸出便是終端設(shè)備顯示屏。shell 的所有輸出(包含shell中運轉(zhuǎn)的程序和腳本制作)能被定項到規(guī)范輸出中,其實就是顯示屏。 默認設(shè)置前提下,大部分bash命令會把輸出導(dǎo)向性STDOUT文件描述符。與此同時,你還可以用輸出重定向來改變。 $ls-l>test2 $cat test2 total 20 -rw-rw-r--1 rich rich 53 2014-10-16 11:30 test -rw-rw-r--1 rich rich 0 2014-10-16 11:32 test2 -rw-rw-r--1 rich rich 73 2014-10-16 11:23 testfile $ 根據(jù)輸出重定向標記,一般會表明到顯示器全部輸出能被shell重定向到指定的重定向文件。你也可以將數(shù)據(jù)信息增加到某一文件。這樣可以用>>標記來完成。 $who>>test2 $cat test2 total 20 -rw-rw-r--1 rich rich 53 2014-10-16 11:30 test -rw-rw-r--1 rich rich 0 2014-10-16 11:32 test2 -rw-rw-r--1 rich rich 73 2014-10-16 11:23 testfile rich pts/0 2014-10-17 15:34(192.168.1.2) $ who命令生成的輸出能被增加到test2文件中已經(jīng)有數(shù)據(jù)庫的后邊。可是,如果你對腳本制作用了規(guī)范輸出重定向,你會遇到一個問題。下邊的例子反映了有可能出現(xiàn)什么原因。 $ls-al badfile>test3 ls:cannot access badfile:No such file or directory $cat test3 $ 當(dāng)命令形成不正確消息時,shell并沒有將異常信息重定向到輸出重定向文件。shell創(chuàng)建了輸出重 定項文件,但不正確信息卻顯示在了顯示器屏幕上。留意,在表明test3文件內(nèi)容時并沒有任何不正確。test3文件建立通過了,僅僅里有空的。 shell針對不正確信息的處理是跟普通輸出分開的。假如你創(chuàng)建了在后臺模式中運作的shell腳本制作,一般你需要依靠發(fā)送至日志文件的輸出信息。用這種方法得話,如果出現(xiàn)了錯誤報告,這些信息一般不會出現(xiàn)在了日志文件里的。你必須換個方式來處理。 三、STDERR shell根據(jù)特殊STDERR文件描述符來處理錯誤信息。STDERR文件描述符意味著shell的規(guī)范不正確輸出。shell或shell中運轉(zhuǎn)的程序和腳本制作出差錯時形成的錯誤信息都是發(fā)送至這里。 默認設(shè)置前提下,STDERR文件描述符會與STDOUT文件描述符偏向相同的地區(qū)(雖然分配給它們文件描述符值不一樣)。換句話說,默認設(shè)置前提下,不正確信息還會輸出到顯示屏輸出中。 可是卻上邊的例子看得出,STDERR并不能伴隨著STDOUT的重定向而發(fā)生變化。應(yīng)用腳本制作時,你常會想改變這種做法,特別是當(dāng)你希望將不正確信息保留到日志文件中時。 聲明:本網(wǎng)站部分文章轉(zhuǎn)載自網(wǎng)絡(luò)媒體稿件,是為了傳播更多的信息以及學(xué)習(xí)交流,此類稿件不代表本站觀點,本站不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請把您的相關(guān)內(nèi)容發(fā)至此郵箱【1361323860@qq.com】,我們在確認后,會立即刪除,保證您的版權(quán)。 |
主營業(yè)務(wù)
熱門文章 熱門文章 副標題 標簽云
|
|