真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

linux輸出重定向命令 linux的輸出重定向命令是什么

Linux標(biāo)準(zhǔn)輸入輸出與重定向詳解|果斷收藏

linux中的、、、、2、2、21、、,總歸要面對(duì)的

目前創(chuàng)新互聯(lián)建站已為上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、汾陽網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

為了更好的理解這個(gè)問題,我們需要追本溯源。

執(zhí)行一個(gè)shell命令行時(shí)通常會(huì)自動(dòng)打開三個(gè)標(biāo)準(zhǔn)文件

(1) 、標(biāo)準(zhǔn)輸入文件(stdin)

通常對(duì)應(yīng)終端的鍵盤。

(2)、標(biāo)準(zhǔn)輸出文件(stdout)。

(3)、標(biāo)準(zhǔn)錯(cuò)誤輸出文件(stderr)。

(2)和(3)這兩個(gè)文件都對(duì)應(yīng)終端的屏幕。

進(jìn)程將從標(biāo)準(zhǔn)輸入文件中得到輸入數(shù)據(jù)。

將正常輸出數(shù)據(jù)輸出到標(biāo)準(zhǔn)輸出文件[顯示器]。

將錯(cuò)誤信息送到標(biāo)準(zhǔn)錯(cuò)誤文件中[顯示器]。

下圖所示:

0、1、2表示一個(gè)文件描述符

但是,有時(shí)候我們不想把一些進(jìn)程處理后信息輸出到顯示器。

這時(shí)我們就引出了重定向。

改變標(biāo)準(zhǔn)輸入/輸出的方向

三種重定向:

1、重定向標(biāo)準(zhǔn)輸出,包括兩種。

(1)、(覆蓋),等價(jià)1

將命令執(zhí)行的結(jié)果輸出到指定文件,非顯示器。

(2) 、(追加),等價(jià)1

將命令執(zhí)行的結(jié)果追加到指定文件,非顯示器。

2、 重定向標(biāo)準(zhǔn)輸入,包括兩種。

(1) 、

將命令中接收的輸入途徑,由鍵盤改為指定文件。

(2) 、[Here Document]

命令序列傳遞到一個(gè)交互程序或者命令中。

3、 重定向標(biāo)準(zhǔn)錯(cuò)誤,包括兩種。

(1) 、2(覆蓋)

將命令執(zhí)行的結(jié)果輸出到指定文件。

(2) 、2(追加)

將命令執(zhí)行的結(jié)果追加到指定文件。

1、重定向標(biāo)準(zhǔn)輸出和重定向標(biāo)準(zhǔn)錯(cuò)誤到同一個(gè)文件中

有以下的幾種方式

(1) 、21

(2) 、

(3) 、

2、 兩個(gè)特殊文件

(1) 、/dev/nul

過濾標(biāo)準(zhǔn)錯(cuò)誤信息

意思就是不想顯示結(jié)果就輸出到這里面。

(2) 、/dev/zero

創(chuàng)建指定長度的文件

案例1:

測(cè)試 and

案例2:

測(cè)試 and

測(cè)試

測(cè)試

案例3:

測(cè)試2 and 2

案例4:

測(cè)試重定向標(biāo)準(zhǔn)輸出和重定向標(biāo)準(zhǔn)錯(cuò)誤到同一個(gè)文件中

(1)、

(2)、

與上面的案例類似,不做解釋

(3) 、21

案例5:

使用/dev/nul文件

有時(shí)候我們使用命令,不想將輸出的信息顯示到界面

這時(shí)我們可以使用 /dev/nul[常用]

簡(jiǎn)單測(cè)試修改demo 用戶密碼

linux bash的重定向

關(guān)于linux bash的重定向

所謂I/O重定向簡(jiǎn)單來說就是一個(gè)過程,這個(gè)過程捕捉一個(gè)文件,或者命令,程序,腳本,甚至腳本中的代碼塊(code block)的輸出,然后把捕捉到的輸出,作為輸入發(fā)送給另外一個(gè)文件,命令,程序,或者腳本。

如果談到I/O重定向,就涉及到文件標(biāo)識(shí)符(File Descriptor)的概念, 在Linux系統(tǒng)中,系統(tǒng)為每一個(gè)打開的文件指定一個(gè)文件標(biāo)識(shí)符以便系統(tǒng)對(duì)文件進(jìn)行跟蹤,這里有些和C語言編程里的文件句柄相似,文件標(biāo)識(shí)符是一個(gè)數(shù)字,不同數(shù)字代表不同的含義,默認(rèn)情況下,系統(tǒng)占用了3個(gè),分別是0標(biāo)準(zhǔn)輸入(stdin),1標(biāo)準(zhǔn)輸出(stdout), 2標(biāo)準(zhǔn)錯(cuò)誤(stderr), 另外3-9是保留的標(biāo)識(shí)符,可以把這些標(biāo)識(shí)符指定成標(biāo)準(zhǔn)輸入,輸出或者錯(cuò)誤作為臨時(shí)連接。通常這樣可以解決很多復(fù)雜的重定向請(qǐng)求。

標(biāo)準(zhǔn)輸入通常指鍵盤的輸入

標(biāo)準(zhǔn)輸出通常指顯示器的輸出

標(biāo)準(zhǔn)錯(cuò)誤通常也是定向到顯示器

請(qǐng)看以下例子,來描述一下他們的關(guān)系

#ls /dev

這個(gè)命令列出/dev目錄下的所有文件,在屏幕上輸出結(jié)果。

這里 /dev 就是作為命令ls的標(biāo)準(zhǔn)輸入(從鍵盤輸入),而打印在屏幕的結(jié)果就是標(biāo)準(zhǔn)輸出(/dev目錄中的內(nèi)容)

還是回到標(biāo)題,重定向就是把標(biāo)準(zhǔn)的`輸入或者輸出更改成其他的方式,請(qǐng)參看如下例子

或者等同于

#ls /dev 1filename #注意:"1"和""中間沒有空格

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

如果把上面例子重的""改成""則表示把輸出追加到filename文件的末尾,如果文件不存在則創(chuàng)建它。如下

#ls /dev filename

也可以把標(biāo)準(zhǔn)錯(cuò)誤重新定向到文件

#ls -qw /dev 2filename

顯然 -qw是一個(gè)錯(cuò)誤參數(shù),通常會(huì)在顯示器上報(bào)告一個(gè)錯(cuò)誤信息,但由于把2標(biāo)準(zhǔn)錯(cuò)誤(stderr)重新定向到了文件filename,因此顯示器沒有錯(cuò)誤信息,而信息寫到了文件里面

以下命令是把標(biāo)準(zhǔn)輸出和錯(cuò)誤都定向到文件

#ls /dev filename

""在這里代表標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤,這里無論是正常輸出還是錯(cuò)誤信息都寫到filename中了。

重新定義標(biāo)準(zhǔn)輸入,輸出,和錯(cuò)誤的文件標(biāo)識(shí)符

重新定義文件標(biāo)識(shí)符可以用ij命令,表示把文件標(biāo)識(shí)符i重新定向到j(luò),你可以把""理解為"取地址"

請(qǐng)看以下例子

#exec 51

表示把文件標(biāo)識(shí)符5定向到標(biāo)準(zhǔn)輸出,這個(gè)命令通常用來臨時(shí)保存標(biāo)準(zhǔn)輸入。

同樣標(biāo)準(zhǔn)輸入也是可以重新定向的,請(qǐng)參考下面例子

# grep search-word

一般來說grep命令在給定文件中搜索字符串,以上命令把文件filename作為grep命令的標(biāo)準(zhǔn)輸入,而不是從鍵盤輸入。

前面曾經(jīng)提到,系統(tǒng)為每一個(gè)打開的文件指定一個(gè)文件標(biāo)識(shí)符以便系統(tǒng)對(duì)文件進(jìn)行跟蹤,那么默認(rèn)的文件標(biāo)識(shí)符是什么呢?答案是0,也就是標(biāo)準(zhǔn)輸入,或者可以說從鍵盤輸入。當(dāng)然這個(gè)文件標(biāo)識(shí)符也可以自己指定,請(qǐng)參考下面例子

#echo 123456789 filename 把字符串寫到文件filename中 #exec 3filename 把文件filename打開,并指定文件標(biāo)識(shí)符為3 #read -n 4 3 從文件中讀4個(gè)字符,句柄已經(jīng)指到第四個(gè)字符末尾 #echo -n . 3 在第5個(gè)字符處寫一個(gè)點(diǎn),覆蓋第5個(gè)字符,-n表示不換行 #exec 3- 關(guān)閉文件標(biāo)識(shí)符3

現(xiàn)在cat filename文件的結(jié)果就成了1234.6789

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

"-"表示關(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

另外還有一些其他命令,如下參考

2. : filename 或者 filename

表示把文件filename設(shè)置成空,也就是清空文件內(nèi)容,如果文件不存在,則創(chuàng)建一個(gè)空文件,(等同于touch命令) :表示一個(gè)空輸出,兩個(gè)命令的唯一區(qū)別就是filename不是在所有shell都可以正常工作的。

;

Linux 標(biāo)準(zhǔn)輸入輸出、重定向、管道、文件權(quán)限、后臺(tái)啟動(dòng)進(jìn)程命令-

IO 重定向是為了改變默認(rèn)輸入、輸出的位置,如默認(rèn)情況下標(biāo)準(zhǔn)輸出(STDOUT),標(biāo)準(zhǔn)錯(cuò)誤輸出(STDERR)都是輸出到顯示終端,如對(duì)標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤輸出改變其默認(rèn)輸出位置,可重定向輸出到指定的文件中(實(shí)際工作中經(jīng)常這么使用),要重定向就要配合一些語法符號(hào)。

文件或目錄的訪問權(quán)限分為只讀、只寫、可執(zhí)行三種。

修改文件權(quán)限命令:chmod、chgrp、chown。

搞懂「文件所屬者更改及權(quán)限的賦予」,涉及關(guān)于 chown、chmod、chgrp 命令,結(jié)合用例零基礎(chǔ)理解和掌握使用。

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

用途:不掛斷地運(yùn)行命令。

語法:nohup Command [ Arg … ] [  ]

無論是否將 nohup 命令的輸出重定向到終端,輸出都將附加到當(dāng)前目錄的 nohup.out 文件中。

如果當(dāng)前目錄的 nohup.out 文件不可寫,輸出重定向到 $HOME/nohup.out 文件中。

如果沒有文件能創(chuàng)建或打開以用于追加,那么 Command 參數(shù)指定的命令不可調(diào)用。

退出狀態(tài):該命令返回下列出口值:

126 可以查找但不能調(diào)用 Command 參數(shù)指定的命令。

127 nohup 命令發(fā)生錯(cuò)誤或不能查找由 Command 參數(shù)指定的命令。

否則,nohup 命令的退出狀態(tài)是 Command 參數(shù)指定命令的退出狀態(tài)。

用途:在后臺(tái)運(yùn)行

一般兩個(gè)一起用

3.為什么呢 21 要寫在后面?

首先是command file將標(biāo)準(zhǔn)輸出重定向到file中, 21 是標(biāo)準(zhǔn)錯(cuò)誤拷貝了標(biāo)準(zhǔn)輸出的行為,也就是同樣被重定向到file中,最終結(jié)果就是標(biāo)準(zhǔn)輸出和錯(cuò)誤都被重定向到file中。

21 標(biāo)準(zhǔn)錯(cuò)誤拷貝了標(biāo)準(zhǔn)輸出的行為,但此時(shí)標(biāo)準(zhǔn)輸出還是在終端。file 后輸出才被重定向到file,但標(biāo)準(zhǔn)錯(cuò)誤仍然保持在終端。

用strace可以看到:

這個(gè)命令中實(shí)現(xiàn)重定向的關(guān)鍵系統(tǒng)調(diào)用序列是:

open(file) == 3

dup2(3,1)

dup2(1,2)

這個(gè)命令中實(shí)現(xiàn)重定向的關(guān)鍵系統(tǒng)調(diào)用序列是:

dup2(1,2)

open(file) == 3

dup2(3,1)

注意:0 是標(biāo)準(zhǔn)輸入(STDIN),1 是標(biāo)準(zhǔn)輸出(STDOUT),2 是標(biāo)準(zhǔn)錯(cuò)誤輸出(STDERR)。

這里的2和之間不可以有空格,2是一體的時(shí)候才表示錯(cuò)誤輸出。


網(wǎng)站名稱:linux輸出重定向命令 linux的輸出重定向命令是什么
文章位置:http://weahome.cn/article/ddgpeoc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部