管理及I/O重定向
INPUT設(shè)備:將我們想要對電腦發(fā)出的指令傳入電腦(如打字、錄音)
OUTPUT設(shè)備:將電腦里面的數(shù)據(jù)通過輸出設(shè)備傳輸給我們(如看電影,聽音樂)
系統(tǒng)設(shè)定:
? ? ? ? ? ? ? ? 默認(rèn)輸出設(shè)備:標(biāo)準(zhǔn)輸出 (如果沒有指定輸出設(shè)備,就從默認(rèn)輸出設(shè)備中輸出),STDOUT
用來輸出程序的正常運算結(jié)果 ,如果某個程序執(zhí)行錯了
? ? ? ? ? ? ? ? 默認(rèn)輸入設(shè)備:標(biāo)準(zhǔn)輸入(如果沒有指定輸入設(shè)備,就從默認(rèn)輸入設(shè)備中輸入),STDIN
? ? ? ? ? ? ? ? 標(biāo)準(zhǔn)錯誤輸出:STDERR,描述符2
標(biāo)準(zhǔn)輸入:鍵盤
標(biāo)準(zhǔn)輸出和錯誤輸出:顯示器
?
I/O重定向:改變了數(shù)據(jù)的輸入來源或輸出來源的操作
? ? ? ? ? ? ? ? ? ? ? ?eg本來輸入設(shè)備是鍵盤,改成其他設(shè)備
對于Linux而言,可以用一些符號來表示重定向:
>:輸出重定向,覆蓋輸出,原有數(shù)據(jù)會覆蓋輸出 ,正確輸出重定向
>>:追加輸出,在文件尾部繼續(xù)追加新內(nèi)容
<:輸入重定向
<<:HERE DOCUMENT 在此處生成文檔
set -C:禁止對已經(jīng)存在文件使用覆蓋重定向
? ? ? ? ? ? ? ? 強(qiáng)制覆蓋輸出,則使用>|
set +C:關(guān)閉上述功能
2>:重定向錯誤輸出 ? !犯錯誤的人都比較2,哈哈
2>>:追加重定向錯誤輸出?
&>:重定向標(biāo)準(zhǔn)輸出或錯誤輸出到同一個文件
!!!!!注:不支持&>>
管道:前一個命令的輸出,作為后一個命令的輸入
?
?
例子:
輸出重定向:
1、>:輸出重定向,覆蓋輸出,原有數(shù)據(jù)會覆蓋輸出 ,正確輸出重定向
? ? ?
? ? ?
? ? ? ? ?本來列出var下的內(nèi)容輸出到顯示器上,是能在顯示器看到內(nèi)容的
? ? ? ? ls /var> /tmp/var.out:將var下的內(nèi)容輸出重定向到/tmp/var.out中,此時在顯示器上就看不到var下的內(nèi)容了
? ? ? ? 此時cat /tmp/var.out
? ? ?
? ? ?/tmp/var.out中有了/var下的所有文件? ??
2、>>:追加輸出,在文件尾部繼續(xù)追加新內(nèi)容
? ? ?
? ? ?在文件尾部繼續(xù)追加新內(nèi)容輸出?
3、set -C:禁止對已經(jīng)存在文件使用覆蓋重定向
? ? ? ? ? ? ? ? 強(qiáng)制覆蓋輸出,則使用>|
? ? ?set +C:關(guān)閉上述功能
? ? ??
4、這個我也不曉得該起啥標(biāo)題
? ? ??
? ? ??注意此時var文件名是拼寫錯誤的,ls /varr 2> /tmp/var.out將錯誤輸出重定向到/tmp/var.out
? ? ? 如果文件名拼寫是正確的,結(jié)合2>錯誤輸出重定向時?
? ? ??
? ? ? 此時不會輸出重定向到/tmp/var.out,而是直接輸出在顯示器上
5、 設(shè)置文件正確錯誤都不會直接輸出
? ? ? ?(1)&>: ? 重定向標(biāo)準(zhǔn)輸出或錯誤輸出到同一個文件
? ? ? ? ? ? ? ? ? ? ? ? ls /var(r) ?&> ?/tmp/var.out
? ? ? ? ? ? ? ? ? ? ? ? !此時文件名不管是正確的/var還是錯誤的var(r)都會重定向到/tmp/var.out中
? ? ? ?(2)
? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ?此時文件名如果正確會輸出重定向到/tmp/var3.out中,錯誤會輸出重定向到/tmp/err.out 中
?
輸入重定向:
? ? ? ?1、<:輸入重定向
? ? ? ? ??
? ? ? ? ???此時<相當(dāng)于鍵盤
? ? ? ? 2、<<:HERE DOCUMENT 在此處生成文檔
? ? ? ? ? ? ??
? ? ? ? ? ? ? 此時EOF相當(dāng)于文檔結(jié)束符,當(dāng)輸入EOF時則在此處生成了一個文件
? ? ? ? ??
?
管道:前一個命令的輸出,作為后一個命令的輸入?
? ? ? ? 1、 ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ??此時“hello,world”作為echo輸出的同時也作為tr的輸入
? ? ? ?2、
? ? ? ? ? ?
? ? ? ? ? ?
? ? ? ? ??此時cat /etc/passwd | sort= sort /etc/passwd
? ? ? ?3、tee:read from standard input and write to standard output and files
? ? ? ? ? ? ? ? ? ?從標(biāo)準(zhǔn)輸入中讀取數(shù)據(jù)并發(fā)送到標(biāo)準(zhǔn)輸出和文件
? ? ? ? ? ??
? ? ? ? ? ??此時tee將標(biāo)準(zhǔn)輸入的"HELLO,WORLD"發(fā)送到/tmp/hello.out文件中
?
轉(zhuǎn)載于:https://www.cnblogs.com/itmeatball/p/7446105.html
總結(jié)
- 上一篇: 【BZOJ】1692: [Usaco20
- 下一篇: 【Python】Python 过滤列表