欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

linux數(shù)據(jù)流命令 指令流數(shù)據(jù)流

什么意思'>linux命令行 > 什么意思

這個(gè)是數(shù)據(jù)流重定向操作的符號(hào),就是將命令行屏幕上的標(biāo)準(zhǔn)輸出或標(biāo)準(zhǔn)錯(cuò)誤輸出數(shù)據(jù)傳送到一個(gè)文件或設(shè)備中,。通俗點(diǎn)來(lái)說(shuō)就是,執(zhí)行一個(gè)命令,本應(yīng)該顯示在屏幕上的結(jié)果,重定向到文件或設(shè)備。例如:

創(chuàng)新互聯(lián)公司專(zhuān)注于寧海網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供寧海營(yíng)銷(xiāo)型網(wǎng)站建設(shè),寧海網(wǎng)站制作、寧海網(wǎng)頁(yè)設(shè)計(jì)、寧海網(wǎng)站官網(wǎng)定制、微信小程序開(kāi)發(fā)服務(wù),打造寧海網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供寧海網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。

ls

/etc

mydata

記住:(一個(gè)大于符號(hào))表示以覆蓋的方式重定向數(shù)據(jù),意思就是如果大于號(hào)后面跟的文件里有數(shù)據(jù),會(huì)被覆蓋掉。

(兩個(gè)大于符號(hào))表示以追加的方式重定向數(shù)據(jù),就是后面跟的文件如果有數(shù)據(jù),重定向數(shù)據(jù)會(huì)在其后面追加。例子:

ls

/usr

mydata

什么是linux數(shù)據(jù)流重定向

首先說(shuō)一下什么是數(shù)據(jù)流重定向,所謂數(shù)據(jù)流重定向簡(jiǎn)單來(lái)說(shuō)就是一個(gè)過(guò)程,這個(gè)過(guò)程捕捉一個(gè)文件,或者命令,程序,腳本,甚至腳本中的代碼塊(code block)的輸出,然后把捕捉到的輸出,作為輸入發(fā)送給另外一個(gè)文件,命令,程序,或者腳本。

談到數(shù)據(jù)流重定向,我們首先需要了解文件描述符的概念。對(duì)于linux內(nèi)核而言,所有打開(kāi)的文件都通過(guò)文件描述符引用。文件描述符是一個(gè)非負(fù)整數(shù)。當(dāng)打開(kāi)一個(gè)現(xiàn)有文件或創(chuàng)建一個(gè)新文件時(shí),內(nèi)核向進(jìn)程等返回一個(gè)文件描述符。按照慣例,unix系統(tǒng)shell把文件描述符0與進(jìn)程的標(biāo)準(zhǔn)輸入關(guān)聯(lián),文件描述符1與標(biāo)準(zhǔn)輸出關(guān)聯(lián),文件描述符2與標(biāo)準(zhǔn)錯(cuò)誤關(guān)聯(lián)。總結(jié)如下:

標(biāo)準(zhǔn)輸入:文件描述符0,通常指鍵盤(pán)的輸入 。使用符號(hào)或

標(biāo)準(zhǔn)輸出:文件描述符1,通常指命令執(zhí)行所回傳的正確信息 ,默認(rèn)輸出到屏幕u。使用符號(hào)或

標(biāo)準(zhǔn)錯(cuò)誤:文件描述符2,通常指命令執(zhí)行失敗后,所回傳的信息,也是默認(rèn)輸出到屏幕。試用符號(hào)2或2

默認(rèn)情況下和分別表示1或1,和與0和0等價(jià)。

標(biāo)準(zhǔn)輸出重定向: 

#ls

表示列出當(dāng)前目錄條目,并將結(jié)果輸出到屏幕。

#ls 1file1

以上命令會(huì)把命令的標(biāo)準(zhǔn)輸出重新定向到一個(gè)文件file,而不是顯示到屏幕上,如果不指明文件標(biāo)識(shí)符,系統(tǒng)默認(rèn)的就是1, 因此1可以省略。

即這個(gè)命令等同于

#ls file1

如果file1不存在,則系統(tǒng)會(huì)自動(dòng)創(chuàng)建。如果已經(jīng)存在,那么系統(tǒng)首先會(huì)把這個(gè)文件清空,然后再將數(shù)據(jù)寫(xiě)入該文件。也就是說(shuō)輸出到一個(gè)已存在的文件,那么會(huì)覆蓋這個(gè)文件。如果不想覆蓋,可以使用。表示將重定向數(shù)據(jù)追加到file1文件的末尾。

標(biāo)準(zhǔn)錯(cuò)誤重定向:

#ls -qw 2errorfile

表示將錯(cuò)誤信息不輸出到屏幕,而是寫(xiě)入errorfile。注意這里的2不能省略。因?yàn)榕c1等同,默認(rèn)是標(biāo)準(zhǔn)輸出重定向。所以這里要寫(xiě)成2,表示標(biāo)準(zhǔn)錯(cuò)誤重定向。-qw用來(lái)產(chǎn)生錯(cuò)誤信息。

把標(biāo)準(zhǔn)錯(cuò)誤和標(biāo)準(zhǔn)輸出寫(xiě)入同一個(gè)文件:

#./a.out outfile

這個(gè)命令把./a.out的標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤重定向到outfile。在這里表示標(biāo)準(zhǔn)錯(cuò)誤和標(biāo)準(zhǔn)輸出。下面是另一種寫(xiě)法:

#./a.out outfile 21

下面是一個(gè)錯(cuò)誤的例子:

#./a.out outfile 2outfile

標(biāo)準(zhǔn)輸入重定向:

#grep search-world filename 或 grep search-world 0filename

還有下面這種方式:

cat catfile ~/.bashrc

它代表將~/.bashrc的內(nèi)容作為輸入,然后將這些內(nèi)容寫(xiě)入catfile

關(guān)閉文件:

"-"表示關(guān)閉文件標(biāo)識(shí)符

有關(guān)關(guān)閉文件標(biāo)識(shí)符的操作請(qǐng)參考下面

n- 關(guān)閉輸入文件標(biāo)識(shí)符n

0-或- 關(guān)閉標(biāo)準(zhǔn)輸入stdin

n- 關(guān)閉輸出文件標(biāo)識(shí)符n

1-或-關(guān)閉標(biāo)準(zhǔn)輸出stdout

屏蔽標(biāo)準(zhǔn)輸出或標(biāo)準(zhǔn)錯(cuò)誤:

./a.out /dev/null #等同于./a.out 1dev/null 表示屏蔽標(biāo)準(zhǔn)輸出

./a.out 2/dev/null #表示屏蔽標(biāo)準(zhǔn)錯(cuò)誤

./a.out /dev/null 2/dev/null #表示同時(shí)屏蔽標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤

打開(kāi)文件:

#exec 3filename 把文件filename打開(kāi),并指定文件標(biāo)識(shí)符為3

命令jfilename表示把文件打開(kāi),并指明文件標(biāo)識(shí)符為j

我們什么時(shí)候需要重定向:

1.屏幕輸出的信息很重要,而且我們需要將它存下來(lái)的時(shí)候。

2. 后臺(tái)執(zhí)行中的程序,不希望它干擾屏幕正常的輸出結(jié)果時(shí)。

3. 一些系統(tǒng)的例行命令。(例如寫(xiě)在/etc/crontab中的文件)的執(zhí)行結(jié)果時(shí),希望它可以存下來(lái)。

4. 一些執(zhí)行命令的可能已知錯(cuò)誤信息時(shí),想以“2dev/null"將它丟掉

5. 錯(cuò)誤信息與正確信息需要分別輸出時(shí)

常用重定向命令:

cmd file 把 stdout 重定向到 file 文件中;

cmd file 把 stdout 重定向到 file 文件中(追加);

cmd 1 fiel 把 stdout 重定向到 file 文件中;

cmd file 21 把 stdout 和 stderr 一起重定向到 file 文件中;

cmd 2 file 把 stderr 重定向到 file 文件中;

cmd 2 file 把 stderr 重定向到 file 文件中(追加);

cmd file 21 把 stderr 和 stderr 一起重定向到 file 文件中(追加);

cmd file file2 cmd 命令以 file 文件作為 stdin,以 file2 文件作為 stdout;

cat file 以讀寫(xiě)的方式打開(kāi) file;

cmd file cmd 命令以 file 文件作為 stdin;

cmd delimiter Here document,從 stdin 中讀入,直至遇到 delimiter 分界符。

n 使用系統(tǒng)調(diào)用 dup (2) 復(fù)制文件描述符 n 并把結(jié)果用作標(biāo)準(zhǔn)輸出;

n 標(biāo)準(zhǔn)輸入復(fù)制自文件描述符 n;

- 關(guān)閉標(biāo)準(zhǔn)輸入(鍵盤(pán));

- 關(guān)閉標(biāo)準(zhǔn)輸出;

n- 表示將 n 號(hào)輸入關(guān)閉;

n- 表示將 n 號(hào)輸出關(guān)閉;

與重定向相關(guān)的題目:

此題來(lái)自《unix環(huán)境高級(jí)編程》(第3版)P73 3.5

在Bourne shell、Bourne-again shell 和Korn shell中,digit1digit2表示將描述符digit1的重定向至描述符digit2的同一文件。請(qǐng)說(shuō)明下面兩條命令的區(qū)別。

./a.out outfile 21

./a.out 21 outfile

答:因?yàn)閟hell從左到右處理命令行,所以:

./a.out outfile 21 等同于./a.out 1outfile 21

首先執(zhí)行 outfile 設(shè)置標(biāo)準(zhǔn)輸出到outfile,然后執(zhí)行21,即調(diào)用dup將標(biāo)準(zhǔn)輸出復(fù)制到描述符2(標(biāo)準(zhǔn)錯(cuò)誤上),其結(jié)果是將標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤設(shè)置為同一個(gè)文件,即描述符1和2指向同一個(gè)文件表項(xiàng)。而對(duì)于命令行

./a.out 21 outfile

首先執(zhí)行dup,所以描述符2成為終端(假設(shè)命令是交互執(zhí)行的),標(biāo)準(zhǔn)輸出重定向到outfile。結(jié)果是描述符1指向outfile的文件表項(xiàng),描述符2指向終端的文件表項(xiàng)。

參考資料:

1.

2.

3.

4.《unix環(huán)境高級(jí)編程》

linux系統(tǒng)中數(shù)據(jù)流定向和管道有什么相似和不同

相似處為,都是將前者的輸出作為后者的輸入。

不同處為,管道一般是將前者的輸出作為后者的參數(shù),一般應(yīng)用在連續(xù)的命令中,簡(jiǎn)化人工輸入?yún)?shù)的過(guò)程。

而數(shù)據(jù)流定向,一般是將前者命令的輸出結(jié)果定向到某文件或設(shè)備中,并可以通過(guò)數(shù)據(jù)流定向?qū)?biāo)準(zhǔn)輸出與錯(cuò)誤輸出進(jìn)行調(diào)整,以達(dá)到某種目的,如靜默,等。

文章名稱(chēng):linux數(shù)據(jù)流命令 指令流數(shù)據(jù)流
文章URL:http://www.chinadenli.net/article18/dooisdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)動(dòng)態(tài)網(wǎng)站服務(wù)器托管網(wǎng)站制作App設(shè)計(jì)網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)