Linux下你還知道這些特殊文件?


? 程序員進(jìn)階架構(gòu)師必備資源免費(fèi)送 ?
我們都知道Linux下一切皆文件,主要有
- - 普通文件
- d ? ?目錄
- l 符號(hào)鏈接
- s ? ?套接字
- b ? ?塊設(shè)備
- c ? ?字符設(shè)備
- p ? ?管道
這里的前綴字符可以通過ls命令觀察到:
$?ls?-l?test.log它的結(jié)果最前面是-,因此它是普通文件。
-rw-r--r--?1?root?root?33?Nov?17?17:03?test.log
$?ls?-al?/dev/null它的結(jié)果最前面是c,因此它是字符設(shè)備。文件簡單介紹幾種字符設(shè)備文件,它能在我們功能測試的時(shí)候提供很好的幫助。
crw-rw-rw-?1?root?root?1,?3?Sep?11?20:33?/dev/null
/dev/null
/dev/null 可無限接收數(shù)據(jù),你可以認(rèn)為是一個(gè)黑洞,因此如果我們需要丟棄某些終端輸出,可以重定向到這里:$?echo?"shouwangxiansheng"?>?/dev/null所以如果你有不需要的數(shù)據(jù)可以盡情的往這里寫。
/dev/full
它在讀取時(shí)會(huì)讀取到連續(xù)的NUL(零值)字節(jié)流,而在寫入的時(shí)候,會(huì)返回磁盤空間已滿的結(jié)果,后者在測試你的程序的時(shí)候會(huì)有幫助,即測試磁盤滿的場景:$?echo?"bianchengzhuji"?>?/dev/full
-bash:?echo:?write?error:?No?space?left?on?device
/dev/zero
和/dev/null類似,向其中寫入時(shí)會(huì)丟棄所有數(shù)據(jù),但是讀取時(shí),會(huì)產(chǎn)生NUL(零值)字節(jié)流。$?cat?/dev/zero?|od?-x?
0000000?0000?0000?0000?0000?0000?0000?0000?0000
/dev/random
/dev/random可以提供隨機(jī)數(shù)據(jù)流,它保證數(shù)據(jù)的隨機(jī)性,但是讀取時(shí)會(huì)造成等待,例如$?cat?/dev/random?|?od?-x稍過會(huì)才會(huì)出現(xiàn)數(shù)據(jù),為了便于查看,我們利用od命令查看其十六進(jìn)制內(nèi)容。
0000000?2b07?daac?42f4?e1fd?fb62?2098?870e?e0af
0000020?3022?2099?e5da?4e1c?d6db?548b?a979?1217
0000040?3777?bb6a?957d?1279?ab29?e8a4?6a36?ecca
0000060?39ec?2285?126c?30ea?ea67?1526?5e4a?2dd9
/dev/urandom
從名字就可以看出來,是用來產(chǎn)生隨機(jī)數(shù)據(jù)的。它的產(chǎn)生速度很快,但是數(shù)據(jù)的隨機(jī)性不如/dev/randomcat?/dev/urandom?|?od?-x
0547560?f43e?696a?8936?2b27?36c8?4446?2802?1d47
0547600?b8af?249d?aae9?edbf?8971?b1d1?0c73?3e2d
0547620?237b?9a81?6348?cb2a?1972?4486?028a?3573
0547640?1690?c388?64e1?aec1?d5f4?1964?bbb9?192f
0547660?f242?7194?51ba?62a3?fc13?ff53?fb50?e3d8
0547700?ef32?3658?b335?75ee?62de?4096?6468?c979
0547720?01b9?c233?878d?12fc?5cfa?5691?89e1?e1f9
/dev/pts
/dev/pts是遠(yuǎn)程登陸(telnet,ssh等)后創(chuàng)建的控制臺(tái)設(shè)備文件所在的目錄。有什么用呢?舉個(gè)例子,你打開一個(gè)終端,獲取到當(dāng)前的pts:$?tty然后你又打開一個(gè),輸入:
/dev/pts/0
$?echo?"hahahaha">/dev/pts/0你就會(huì)發(fā)現(xiàn)內(nèi)容被打印到前面一個(gè)終端了。通常我們運(yùn)行一個(gè)程序,其printf的打印都會(huì)打印在當(dāng)前終端。
總結(jié)
實(shí)際上在/dev下還有非常多的特殊文件,但是不一一介紹。以上特殊文件在一定場合下能幫助我們開發(fā)或者測試。
知乎:良許LinuxB站:程序員良許抖音:良許微博:良許Linux
本公眾號(hào)全部博文已整理成一個(gè)目錄,請(qǐng)?jiān)诠娞?hào)里回復(fù)「m」獲取!
推薦閱讀:
github 項(xiàng)目搜索技巧-讓你更高效精準(zhǔn)地搜索項(xiàng)目
5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機(jī),樹莓派,等等。在公眾號(hào)內(nèi)回復(fù)「1024」,即可免費(fèi)獲?。?!
評(píng)論
圖片
表情
