机器名管理
查看当前机器名:
设置机器名:
确认机器名已经修改完毕:
$ hostname
ant
命令其实是通过 gethostname 以及 系统调用 设置机器名的。如果需要在程序中管理机器名,可以直接调用这两个 。关于系统调用用法,请查看 man 手册页:
$ man 2 gethostname
hostname 命令修改机器名 即刻生效,但重启后失效 。
机器名其实是一个内核参数,因此可以用 命令设置。查看当前机器名:
kernel.hostname = ant
确认机器名已经修改完毕:
kernel.hostname = ant
同样,sysctl 命令修改机器名 即刻生效,但重启后失效 。
Linux 将内核参数暴露在 伪文件系统,因此可以通过读写文件来操作。
查看当前机器名:
bee
设置机器名:
确认机器名已经修改完毕:
$ cat /proc/sys/kernel/hostname
ant
前面介绍的三种方法都 即刻生效,重启失效 ,因为这些方法本质都是 修改内核参数 。那么,有办法做到重启不失效吗?
这就需要思考一个问题:内核参数从何而来?——答案是 配置文件 。Linux 下,机器名一般写在配置文件里,系统启动后,从配置文件读取并设置对应的内核参数。
不同的 Linux 发行版,配置文件略有区别。以 Debian 系列为例,只需修改 /etc/hostname 文件即可:
修改完毕后,重启机器即可永久生效:
$ reboot
当然了,用前几种即刻生效的方法设置一下便达到目的,毕竟重启这个动作有些大。
订阅更新,获取更多学习资料,请关注我们的 微信公众号 :