日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Linux的标准I/O和管道

發(fā)布時(shí)間:2025/3/8 linux 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux的标准I/O和管道 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

標(biāo)準(zhǔn)輸入輸出與管道???

??1、標(biāo)準(zhǔn)輸入和輸出

??????????? 程序:指令+數(shù)據(jù)

???????????????????????指令:計(jì)算、加減乘除

???????????????????????數(shù)據(jù):輸入數(shù)據(jù)、輸出數(shù)據(jù)

? 2、在Linux中每一個(gè)打開(kāi)的文件都會(huì)分配一個(gè)當(dāng)前進(jìn)程中唯一的文件描述符,用來(lái)標(biāo)識(shí)文件的狀態(tài)

????????????? fd:file descripor

??????????????

??????????????

?3、Linux提供給程序的有三種I/O設(shè)備

????????????????1、標(biāo)準(zhǔn)輸入(stdin)????? -0 默認(rèn)接受來(lái)自鍵盤的輸入

????????????????2、標(biāo)準(zhǔn)輸出 (stdou)????-1 默認(rèn)輸出到終端窗口

????????????????3、標(biāo)準(zhǔn)錯(cuò)誤???(stderr)??-2 默認(rèn)輸出到終端窗口

4、I/O 重定向:改變默認(rèn)的輸入、輸出的位置,重新定位到其他的地方

?????????????1、將stdin??? stdout?? stderr重新定位到文件中

????????????????????>??stdout? 的重新定位

????????????????????2>????stderr 的重新定位

????????????????????&>??? 將所有的輸出重新定位

????????????

??????????????????? 使用了 >??stdout? 的重新定位 ,執(zhí)行結(jié)果,將不會(huì)輸出到,終端上,被重定向到11.txt中,如果該文件不存在,則會(huì)被創(chuàng)建


?????????????????????

????????????????? 一個(gè)錯(cuò)誤的命令,使用的是 2 ,默認(rèn)輸出到終端,可以使用? 2>重定向到22.txt 文件中,終端就不會(huì)打印錯(cuò)誤的信息

??????????????????


????????????????如果一個(gè)命令中既有標(biāo)準(zhǔn)輸出、又有標(biāo)準(zhǔn)錯(cuò)誤輸出,則使用?? &> 定位

??????????????????

????????????????注意使用??? >??

??????????????????????????????????????????2>?

???????????????????????????????????????????&>?

?????????????????????這是都是覆蓋文件,如果想要追加這則使用

??????????????????????????>>??

??????????????????????????????????????????2>?>

???????????????????????????????????????????&>?>

????????2、將標(biāo)準(zhǔn)輸入、與標(biāo)準(zhǔn)錯(cuò)誤重新全部定位到文件中,除了使用??? &>>,還可以如下使用方式,但是注意順序很重要


????????????????????

????????

????

????????????????????????????????

??4、tr 命令的使用

????????????????用途:?轉(zhuǎn)換和刪除字符

??????????????? 語(yǔ)法:tr [ - options ....]?? set1? set2

????????????????????????????-d --delete:刪除所有屬于第一字符集的字符

????????????????????????????

????????????????????????????-s --squeeze-repeats:把連續(xù)重復(fù)的字符以單獨(dú)一個(gè)字符表示

????????????????????????????

????????????????????????????-t --truncate-set1:將第一個(gè)字符集對(duì)應(yīng)字符轉(zhuǎn)化為第二字符集對(duì)應(yīng)的字符

????????????????????????????????

????????????????????????????????-c –C --complement:取字符集的補(bǔ)集

????????????????????????????????

????????????????????????????


????5、從文件中導(dǎo)入輸入流

?????????????????1、使用<來(lái)重定向標(biāo)準(zhǔn)輸入

????????????????????2、某些命令能夠接受從文件中導(dǎo)入的STDIN

???????????????? 3、如cat 、tr等

????????????????

????????????????

???????????????? 4、可以多行一起發(fā)送給STDIN??,使用 << EOF終止詞????

?????????????????????????????????

??????6管道

???????????1、?管道(使用符號(hào)“|”表示)用來(lái)連接命令

????????????2、語(yǔ)法:cammand1 | cammand2 | cammand3

????????????3、將命令1的STDOUT發(fā)送給命令2的STDIN,命令2的STDOUT發(fā)送到命令3的STDIN

????????????4、STDERR默認(rèn)不能通過(guò)管道轉(zhuǎn)發(fā),可利用2>&1 或 |& 實(shí)現(xiàn)

????????????

????????????


????7、重定向到多個(gè)目標(biāo)(tee)

????????用法: cammand1 | tee file | cammand2

????????作用:可以將上一個(gè)命令標(biāo)準(zhǔn)輸出流定位到文件中,又可以將其傳中下一個(gè)命令作為其標(biāo)準(zhǔn)的輸入流

????????


轉(zhuǎn)載于:https://blog.51cto.com/12302981/2154730

總結(jié)

以上是生活随笔為你收集整理的Linux的标准I/O和管道的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。