机器名管理

    查看当前机器名:

    设置机器名:

      确认机器名已经修改完毕:

      1. $ hostname
      2. ant

      命令其实是通过 gethostname 以及 系统调用 设置机器名的。如果需要在程序中管理机器名,可以直接调用这两个 。关于系统调用用法,请查看 man 手册页:

      1. $ man 2 gethostname

      hostname 命令修改机器名 即刻生效,但重启后失效

      机器名其实是一个内核参数,因此可以用 命令设置。查看当前机器名:

      1. kernel.hostname = ant

      确认机器名已经修改完毕:

      1. kernel.hostname = ant

      同样,sysctl 命令修改机器名 即刻生效,但重启后失效

      Linux 将内核参数暴露在 伪文件系统,因此可以通过读写文件来操作。

      查看当前机器名:

      1. bee

      设置机器名:

      确认机器名已经修改完毕:

      1. $ cat /proc/sys/kernel/hostname
      2. ant

      前面介绍的三种方法都 即刻生效,重启失效 ,因为这些方法本质都是 修改内核参数 。那么,有办法做到重启不失效吗?

      这就需要思考一个问题:内核参数从何而来?——答案是 配置文件Linux 下,机器名一般写在配置文件里,系统启动后,从配置文件读取并设置对应的内核参数。

      不同的 Linux 发行版,配置文件略有区别。以 Debian 系列为例,只需修改 /etc/hostname 文件即可:

        修改完毕后,重启机器即可永久生效:

        1. $ reboot

        当然了,用前几种即刻生效的方法设置一下便达到目的,毕竟重启这个动作有些大。

        订阅更新,获取更多学习资料,请关注我们的 微信公众号