web-dev-qa-db-ja.com

Linux HostNameは小文字ですが、すべて大文字として設定されているのになぜ小文字になっているのか不思議です

ホスト名は大文字で/ etc/hostnameに設定されていますが、システムでは小文字で表示されます。

一部のホストのみが小文字で表示します。他のホストと比較すると、リリースやカーネルのバージョンに違いはありません。

sysctl -a | grepkernel.hostnameは小文字です

/ proc/sys/kernel/hostnameと同様に

4
user630702

Linuxは大文字の使用を維持します(Ubuntu 16.04、4.4.0-31-generic):

root@frisbee:~# hostname FRISBEE
root@frisbee:~# bash
root@FRISBEE:~# sysctl -a | grep hostname
kernel.hostname = FRISBEE
root@FRISBEE:~# cat /proc/sys/kernel/hostname
FRISBEE

/etc/hostnameは、ホスト名を設定するLinux(Linuxカーネルの場合のように)の方法ではありません。 Linuxカーネルのホスト名は sethostname() システムコールで設定されています。これは、最も一般的にはhostnameユーザースペースユーティリティから呼び出されます。

/etc/hostnameおよび起動時にホスト名を設定するために使用される方法は、ディストリビューションの開発者によって実装されます。特定のディストリビューションとバージョンの開発者が RFC 1178 の実装を決定した可能性があります。

ケースが保持されることを期待しないでください。大文字と小文字は、多くのインターネットソフトウェアで同じように見えます。英語の場合と同じように名前を大文字にするのが適切に思えるかもしれませんが、慣例により、コンピューター名はすべて小文字で表示されます。 (そして、シフトキーを押し続けることを節約します。)

さらに、DNSも大文字と小文字を区別しないため( RFC 434 )、技術的な観点からは、大文字のホスト名の付加価値は最小限です。また、多くの人は大文字のホスト名が小文字のホスト名よりも読みにくいと感じています(大文字で入力されたテキストは適切な大文字を使用するよりも読みにくいのと同じ理由で)。

5
mtak