Linux 主机名是小写的,只是好奇为什么当它全部设置为大写时它的小写

use*_*702 5 linux hostname ubuntu

主机名在/etc/hostname 中设置为大写,但系统显示为小写。

只有一些主机将其显示为小写。与其他主机相比,发行版或内核版本没有区别。

sysctl -a | grep kernel.hostname 是小写

以及 /proc/sys/kernel/hostname

mta*_*tak 5

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
Run Code Online (Sandbox Code Playgroud)

/etc/hostname不是 Linux(如在 Linux 内核中)设置主机名的方式。Linux 内核使用sethostname()系统调用设置其主机名,该系统调用最常从hostname用户空间实用程序中调用。

/etc/hostname它用于在启动时设置主机名的方式将由发行版的开发人员实现。可能是您的特定发行版和版本的开发人员决定实施RFC 1178

不要期望大小写会被保留。大写和小写字符在大量 Internet 软件中看起来相同,通常假设它对您有帮助。像在英语中一样将名称大写似乎很合适,但惯例要求计算机名称全部小写。(它可以节省按住 shift 键。)

此外,从技术角度来看,大写主机名的附加值很小,因为 DNS 也不区分大小写(RFC 4343)。此外,很多人发现大写主机名不如小写主机名清晰(出于同样的原因,大写输入的文本比正确的大写更难阅读)。