十年專注于品牌網(wǎng)站建設(shè) 十余年專注于網(wǎng)站建設(shè)_小程序開發(fā)_APP開發(fā),低調(diào)、敢創(chuàng)新、有情懷!
      南昌百恒網(wǎng)絡(luò)微信公眾號 掃一掃關(guān)注
      小程序
      tel-icon全國服務(wù)熱線:400-680-9298,0791-88117053
      掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號
      掃一掃打開百恒網(wǎng)絡(luò)微信小程序

      百恒網(wǎng)絡(luò)

      南昌百恒網(wǎng)絡(luò)

      介紹Linux中的幾種標(biāo)準(zhǔn)文件描述符

      百恒網(wǎng)絡(luò) 2017-09-25 9038

      Linux系統(tǒng)將每個對象當(dāng)作文件處理,這包括輸入和輸出進(jìn)程。Linux用文件描述符(file descriptor)來標(biāo)識每個文件對象。文件描述符是一個非負(fù)整數(shù),可以唯一標(biāo)識會話中打開的文件。每個進(jìn)程一次多可以有九個文件描述符。出于特殊目的,bash shell保留了前三個文件描述符(0、1和2),詳情見下表。

      Linux的標(biāo)準(zhǔn)文件描述符

      Linux的標(biāo)準(zhǔn)文件描述符

      這三個特殊文件描述符會處理腳本的輸入和輸出。shell用它們將shell默認(rèn)的輸入和輸出導(dǎo)向到相應(yīng)的位置。下面南昌網(wǎng)絡(luò)公司-百恒網(wǎng)絡(luò)就來為大家介紹一下這些標(biāo)準(zhǔn)文件描述符,供大家參考!

      一、STDIN

      STDIN文件描述符代表shell的標(biāo)準(zhǔn)輸入。對終端界面來說,標(biāo)準(zhǔn)輸入是鍵盤。shell從STDIN 文件描述符對應(yīng)的鍵盤獲得輸入,在用戶輸入時處理每個字符。

      在使用輸入重定向符號(<)時,Linux會用重定向指定的文件來替換標(biāo)準(zhǔn)輸入文件描述符。 它會讀取文件并提取數(shù)據(jù),就如同它是鍵盤上鍵入的。

      許多bash命令能接受STDIN的輸入,尤其是沒有在命令行上指定文件的話。下面是個用cat 命令處理STDIN輸入的數(shù)據(jù)的例子。

      $ cat

      this is a test

      this is a test

      this is a second test.

      this is a second test.

      當(dāng)在命令行上只輸入cat命令時,它會從STDIN接受輸入。輸入一行,cat命令就會顯示出 一行。

      但你也可以通過STDIN重定向符號強(qiáng)制cat命令接受來自另一個非STDIN文件的輸入。

      $ cat < testfile

      This is the first line.

      This is the second line.

      This is the third line.

      $

      現(xiàn)在cat命令會用testfile文件中的行作為輸入。你可以使用這種技術(shù)將數(shù)據(jù)輸入到任何能從 STDIN接受數(shù)據(jù)的shell命令中。

      二、STDOUT

      STDOUT文件描述符代表shell的標(biāo)準(zhǔn)輸出。在終端界面上,標(biāo)準(zhǔn)輸出就是終端顯示器。shell 的所有輸出(包括shell中運(yùn)行的程序和腳本)會被定向到標(biāo)準(zhǔn)輸出中,也就是顯示器。

      默認(rèn)情況下,大多數(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

      $

      通過輸出重定向符號,通常會顯示到顯示器的所有輸出會被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文件中已有數(shù)據(jù)的后面。 但是,如果你對腳本使用了標(biāo)準(zhǔn)輸出重定向,你會遇到一個問題。下面的例子說明了可能會出現(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文件創(chuàng)建成功了,只是里面是空的。

      shell對于錯誤消息的處理是跟普通輸出分開的。如果你創(chuàng)建了在后臺模式下運(yùn)行的shell腳本,通常你必須依賴發(fā)送到日志文件的輸出消息。用這種方法的話,如果出現(xiàn)了錯誤信息,這些信息是不會出現(xiàn)在日志文件中的。你需要換種方法來處理。

      三、STDERR

      shell通過特殊的STDERR文件描述符來處理錯誤消息。STDERR文件描述符代表shell的標(biāo)準(zhǔn)錯誤輸出。shell或shell中運(yùn)行的程序和腳本出錯時生成的錯誤消息都會發(fā)送到這個位置。

      默認(rèn)情況下,STDERR文件描述符會和STDOUT文件描述符指向同樣的地方(盡管分配給它們的文件描述符值不同)。也就是說,默認(rèn)情況下,錯誤消息也會輸出到顯示器輸出中。

      但從上面的例子可以看出,STDERR并不會隨著STDOUT的重定向而發(fā)生改變。使用腳本時,你常常會想改變這種行為,尤其是當(dāng)你希望將錯誤消息保存到日志文件中的時候。

      以上就是南昌網(wǎng)絡(luò)公司為大家介紹的關(guān)于Linux中的三種標(biāo)準(zhǔn)文件描述符,大家可以了解一下,希望對大家今后的學(xué)習(xí)有所幫助。此外,百恒網(wǎng)絡(luò)專注于網(wǎng)站建設(shè)、微信開發(fā)、南昌物聯(lián)網(wǎng)開發(fā)、APP開發(fā)制作等服務(wù),如有需要,歡迎大家來電咨詢,洽談合作!

      400-680-9298,0791-88117053
      掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號
      掃一掃打開百恒網(wǎng)絡(luò)小程序

      歡迎您的光顧,我們將竭誠為您服務(wù)×

      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售后服務(wù) 售后服務(wù)
       
      售后服務(wù) 售后服務(wù)
       
      備案專線 備案專線
       
      ×
      国产乱人伦精品一区二区在线观看| 精品调教CHINESEGAY| 97精品一区二区视频在线观看 | 91亚洲国产成人精品下载| 亚洲国产日韩精品| 亚洲国产精品乱码在线观看97| 亚洲AV无码乱码精品国产| 91大神精品全国在线观看| 色婷婷激情av精品影院| 亚洲永久永久永久永久永久精品| 国产成人综合日韩精品婷婷九月| 精品国产午夜理论片不卡| 日本道免费精品一区二区| 日韩人妻无码一区二区三区综合部| 精品无码人妻一区二区免费蜜桃| 精品无码国产自产拍在线观看蜜| 国产成人久久精品| 麻豆AV无码精品一区二区| 国产一区二区精品久久| 大伊香蕉精品视频在线导航| 国产精品伦子一区二区三区| 91人妻人人澡人人爽人人精品| 亚洲午夜国产精品无码老牛影视| 日韩精品一区在线| 天堂精品高清1区2区3区| 国产成人精品高清在线观看99| 国99精品无码一区二区三区| 国产精品免费看久久久香蕉| 中文字幕日韩精品一区二区三区| 麻豆国产精品一二三在线观看| 91精品国产入口| 久久久久久九九精品久小说| 久久精品国产99国产精品| 日韩精品无码免费视频| 高清国产精品久久| 91精品国产高清久久久久久国产嫩草| 久久国产乱子精品免费女| 国产免费久久精品丫丫| 国产成人不卡亚洲精品91| 国产精品观看在线亚洲人成网 | 精品国产18久久久久久|