《Linux基礎教程之/dev/null和/dev/zero的區別及其用法》要點:
本文介紹了Linux基礎教程之/dev/null和/dev/zero的區別及其用法,希望對您有用。如果有疑問,可以聯系我們。
在Linux操作系統中/dev/null和/dev/zero是兩個相似卻又很特殊的文件,特別是在shell腳本開發和系統運維過程中會經常用這兩個文件,因此作為Linux系統工程師,你必須了解這兩個文件的區別和用法.
一、/dev/null的用法:
我們可以把/dev/null文件看作”黑洞”,它非常等價于一個只寫文件,所有寫入/dev/null文件的內容都會丟失,而從/dev/null文件中也讀取不到任何內容.然而,也正因為這些特點,在shell腳本開發和命令行維護時,/dev/null文件就可大展身手,顯得非常的有用.
1. 禁止標準輸出
例如:cat查看$filename文件,其回顯信息將為空
# cat $filename >/dev/null
2. 禁止標準錯誤
例如:rm刪除文件時,若$badname文件不存在,那么如下的方式則會過濾回顯的錯誤信息
# rm $badname 2>/dev/null
3. 禁止標準輸出和標準錯誤的輸出
例如:cat查看$filename文件
# cat $filename 2>/dev/null >/dev/null
# 如果”$filename”不存在,將不會有任何錯誤信息提示.
# 如果”$filename”存在, 文件的內容不會打印到標準輸出.
# 因此上面的代碼根本不會輸出任何信息.
4. 清除日志文件內容
例如:
# cat /dev/null > /var/log/messages
# : > /var/log/messages 有同樣的效果, 但不會產生新的進程.(因為:是內建的)
# cat /dev/null > /var/log/wtmp
5. /dev/null的特殊用法,程序打印的日志將不再記錄,避免系統空間被不需要的日志所占用
例如:將該cookie的日志文件鏈接到/dev/null,那么往該文件中寫入的內容都將被拋棄
# ln -s /dev/null ~/.netscape/cookies
二、/dev/zero的用法:
/dev/zero和/dev/null一樣,也是一個偽文件,但/dev/zero實際上能產生連續不斷的null的流(二進制的零流,而不是ASCII型的),寫入/dev/zero的輸出會丟失不見,而從/dev/zero讀出一連串的null也比較困難,雖然這也能通過dd或一個十六進制編輯器來做到,/dev/zero主要的用處是用來創建一個指定長度用于初始化的空文件,它通常都是配合dd命令一起使用的.
1. 用/dev/zero創建一個指定大小的臨時文件
例如:結合dd命令可創建一個大小為1024*1000bit的文件/swap,當然這個文件的大小可通過bs和count參數去調整
# dd if=/dev/zero of=/swap bs=1024 count=1000
2. 通過/dev/zero將零填充到一個指定大小的文件,以使用某些特殊需求
例如:把RAM設備的內容用零填充,從而實現格式化RAM的目的
# dd if=/dev/zero of=$DEVICE count=$SIZE bs=$BLOCKSIZE
綜上所述,/dev/null和/dev/zero文件的區別和用法如下:
/dev/null文件是空設備,也稱為位桶(bit bucket),它主要是用于“被寫入”,任何寫入它的輸出都會被拋棄.如果不想讓消息以標準輸出顯示或寫入文件,那么可以將消息重定向到/dev/null.因此凡是向/dev/null輸入的任何數據,它通吃,并且不會撐著!
/dev/zero文件主要是用作一個標準的“0”輸入設備,它可無窮盡地提供0,可以使用/dev/zero來初始化文件.
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/4663.html