UNIX和Linux中比較重要的三個設備文件是:/dev/console,/dev/tty和/dev/null。
0
/dev/console
這個設備代表的是系統控制臺,錯誤信息和診斷信息通常會被發送到這個設備。
每個UNIX系統都會有一個指定的終端或顯示屏用來接收控制臺信息。
1
/dev/tty
如果一個進程有控制終端的話,那么/dev/tty就是這個控制終端的別名。
像cron這樣的進程是沒有控制終端的,因此它也就無法打開/dev/tty。
tty這個詞源于Teletypes,最早是源于電傳打印機。
如果你登錄了一個shell,那么/dev/tty就是你當前使用的終端。你也可以用tty命令查看/dev/tty設備實際鏈接到的設備是哪個。
/dev/tty其實就是類似于“符號鏈接”一樣的東西。像我的tty輸出就是:
[root@wupengchong dev]# tty
/dev/pts/0
2
/dev/null
這是個空設備,也稱為“位桶bit bucket”。所有寫向這個設備的輸出都將被丟棄,而如果你讀/dev/null,則會立即得到一個文件尾標志而返回。
在cp命令里,可以用/dev/null來作為拷貝空文件的源文件。
在shell中,通常將不需要的東西重定向到/dev/null中。
這里要提一下/dev/zero,它和null是有區別的。通俗的講,/dev/null是一個飯桶,你可以無窮無盡的往里塞垃圾,它不會埋怨。而/dev/zero是一個輸入設備,它給你無窮無盡的提供0(就是null),它可以用于向文件或設備寫入無窮無盡的0.
/dev/zero和/dev/null的用法比較:
$dd if=/dev/zero of=mydoc.txt bs=1k count=1
$find . -name “*.c” 2>/dev/null