導(dǎo)航

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),詳細信息見下列。


20210115092128_49229.jpg

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)。

Flat-design-iphone-x-with-different-views.png 全國熱線:400 9010 930

主營業(yè)務(wù)
小程序開發(fā)
網(wǎng)站建設(shè)
電商商城
網(wǎng)絡(luò)推廣
知識產(chǎn)權(quán)
公眾號開發(fā)
熱門文章

熱門文章

副標題

標簽云
標簽云 網(wǎng)站建設(shè) 品牌官網(wǎng) 模板網(wǎng)站 微信 微信小程序 百度 抖音 百度小程序 抖音小程序 分銷商城 社區(qū)團購 商城模板 微信支付 商品詳情頁制作 公司注銷 公司變更 商標分哪些類型? 商城定制 企業(yè)彩鈴 視頻彩鈴 企業(yè)信用認證 400電話 代理記賬 工商異常處理 商標注冊 商標案件 著作權(quán)申請 商標買賣 教育系統(tǒng) 銷售系統(tǒng) 門店系統(tǒng) 直播系統(tǒng) H5制作 微信營銷 公眾號搭建 公眾號助手 微信認證 千站推 全球推 關(guān)鍵詞快排 軟文推廣 百度推廣 360推廣 百度百科 360百科 搜狗百科 百度地圖 騰訊地圖 高德地圖 Google地圖 搜狗地圖 美團地圖 360地圖 滴滴地圖 凱立德地圖 banner圖設(shè)計 名片設(shè)計 LOGO設(shè)計 海報設(shè)計 畫冊設(shè)計 宣傳頁設(shè)計 易拉寶設(shè)計 域名注冊 企業(yè)郵箱 服務(wù)器 虛擬主機 ICP備案 公安備案 工商備案

公司名稱:贛州易啟企業(yè)服務(wù)有限公司

總部地址:江西省贛州市章貢區(qū)九方中航城國際公寓東座1002室

官方網(wǎng)站:www.quandianying.cn?

服務(wù)熱線:400 9010 930

技術(shù)熱線:1517 975 1517(微信同號)

咨詢QQ:1361323860

微信公眾平臺
官網(wǎng)手機版