欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Linux I/O重定向應用的一些小技巧
Linux I/O重定向應用的一些小技巧 2005.09.15  來(lái)自:賽迪
Linux I/O 重定向雖然很簡(jiǎn)單,但在腳本編寫(xiě)、系統管理時(shí)卻要常常打交道,搞清其中使用技巧非常有用。
首先說(shuō)一下什么是 I/O 重定向,所謂 I/O 重定向簡(jiǎn)單來(lái)說(shuō)就是一個(gè)過(guò)程,這個(gè)過(guò)程捕捉一個(gè)文件,或者命令,程序,腳本,甚至腳本中的代碼塊(code block)的輸出,然后把捕捉到的輸出,作為輸入發(fā)送給另外一個(gè)文件,命令,程序,或者腳本。
如果談到 I/O 重定向,就涉及到文件標識符 (File Descriptor) 的概念, 在 Linux 系統中,系統為每一個(gè)打開(kāi)的文件指定一個(gè)文件標識符以便系統對文件進(jìn)行跟蹤,這里有些和C語(yǔ)言編程里的文件句柄相似,文件標識符是一個(gè)數字,不同數字代表不同的含義,默認情況下,系統占用了 3 個(gè),分別是0標準輸入(stdin),1 標準輸出 (stdout), 2 標準錯誤 (stderr), 另外 3-9 是保留的標識符,可以把這些標識符指定成標準輸入,輸出或者錯誤作為臨時(shí)連接。通常這樣可以解決很多復雜的重定向請求。
標準輸入通常指鍵盤(pán)的輸入
標準輸出通常指顯示器的輸出
標準錯誤通常也是定向到顯示器
請看以下例子,來(lái)描述一下他們的關(guān)系
#ls /dev
這個(gè)命令列出/dev目錄下的所有文件,在屏幕上輸出結果。
這里 /dev 就是作為命令 ls 的標準輸入(從鍵盤(pán)輸入),而打印在屏幕的結果就是標準輸出(/dev 目錄中的內容)
還是回到標題,重定向就是把標準的輸入或者輸出更改成其他的方式,請參看如下例子
或者等同于
#ls /dev 1>filename
#注意:"1"和">"中間沒(méi)有空格
以上命令會(huì )把命令的標準輸出重新定向到一個(gè)文件filename,而不是顯示到屏幕上,如果不指明文件標識符,系統默認的就是1, 因此1可以省略。
如果把上面例子重的 ">" 改成 ">>" 則表示把輸出追加到 filename 文件的末尾,如果文件不存在則創(chuàng )建它。如下
#ls /dev >>filename
也可以把標準錯誤重新定向到文件
#ls -qw  /dev  2>filename
顯然 -qw 是一個(gè)錯誤參數,通常會(huì )在顯示器上報告一個(gè)錯誤信息,但由于把 2 標準錯誤(stderr)重新定向到了文件 filename,因此顯示器沒(méi)有錯誤信息,而信息寫(xiě)到了文件里面
以下命令是把標準輸出和錯誤都定向到文件
#ls /dev &>filename
"&" 在這里代表標準輸出和標準錯誤,這里無(wú)論是正常輸出還是錯誤信息都寫(xiě)到 filename 中了。
重新定義標準輸入,輸出,和錯誤的文件標識符。
重新定義文件標識符可以用 i>&j 命令,表示把文件標識符 i 重新定向到 j,你可以把 "&" 理解為 "取地址"。
請看以下例子
#exec 5>&1
表示把文件標識符 5 定向到標準輸出,這個(gè)命令通常用來(lái)臨時(shí)保存標準輸入。
同樣標準輸入也是可以重新定向的,請參考下面例子
# grep search-word
一般來(lái)說(shuō) grep 命令在給定文件中搜索字符串,以上命令把文件 filename 作為 grep 命令的標準輸入,而不是從鍵盤(pán)輸入。
前面曾經(jīng)提到,系統為每一個(gè)打開(kāi)的文件指定一個(gè)文件標識符以便系統對文件進(jìn)行跟蹤,那么默認的文件標識符是什么呢?答案是 0,也就是標準輸入,或者可以說(shuō)從鍵盤(pán)輸入。當然這個(gè)文件標識符也可以自己指定,請參考下面例子
#echo 123456789 >filename
把字符串寫(xiě)到文件
filename
#exec 3<>filename
把文件
filename
打開(kāi),并指定文件標識符為
3 #read -n 4 <&3
從文件中讀4個(gè)字符,句柄已經(jīng)指到第四個(gè)字符末尾
#echo -n . >&3
在第5個(gè)字符處寫(xiě)一個(gè)點(diǎn),
覆蓋第5個(gè)字符,
-n表示不換行
#exec 3>&-
關(guān)閉文件標識符
現在 cat filename 文件的結果就成了 1234.6789
j<>filename
表示把文件打開(kāi),并指明文件標識符為 j
"&-"
表示關(guān)閉文件標識符
有關(guān)關(guān)閉文件標識符的操作請參考下面
n<&- 關(guān)閉輸入文件標識符
n 0<&-或<&- 關(guān)閉標準輸入
stdin n>&- 關(guān)閉輸出文件標識符
n 1>&-或>&-關(guān)閉標準輸出  stdout
另外還有一些其他命令,如下參考
2.:> filename 或者 > filename
表示把文件filename設置成空,也就是清空文件內容,如果文件不存在,則創(chuàng )建一個(gè)空文件,(等同于touch命令) :表示一個(gè)空輸出,兩個(gè)命令的唯一區別就是>filename不是在所有shell都可以正常工作的。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Linux 把一個(gè)文件標準輸出輸入到另一個(gè)文件中
《shell編程指南》讀書(shū)筆記(二)——通配符,標準輸入,輸出及重定向
C語(yǔ)言入門(mén)教程-文本文件
Linux shell的標準輸入、輸出和錯誤
shell學(xué)習系列(四).輸入輸出
定時(shí)任務(wù)日志、Linux重定向及標準輸入、輸出、錯誤相關(guān)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久