Hostname
uname -n vs 主機名
uname -n
和 和有什麼不一樣hostname
?他們返回的東西有什麼真正的區別嗎?不同作業系統的可用性有什麼不同嗎?其中一個包含在 POSIX 中,而另一個不包含在 POSIX 中嗎?
沒有區別。
hostname
並uname -n
輸出相同的資訊。他們都從uname()
系統呼叫中獲得它。一個區別是該
hostname
命令可用於設置主機名以及獲取它。uname
不能那樣做。(通常這只會在啟動過程的早期完成一次!)
就像其他人所說的那樣,
uname -n
是你的朋友,它的優勢在於它是一個符合 POSIX/SUSv4 的命令,而hostname
不是。但是請注意,它是系統呼叫
uname -n
的簡單包裝器。gethostname(2)
特別是,它不諮詢名稱服務將返回的名稱轉換gethostname(2)
為完全限定的域名,這可以hostname -f
在Linux上實現。(BSD/Applehostname -f
等同於uname -n
。)