关于linux:Linux-hostname命令详解

1、查看本机的hostname

hostname

2、批改本机的hostname

hostname newname

运行后立刻失效(重新启动shell),然而在零碎重启后会失落所做的批改,如果要永恒更改零碎的hostname,就要批改相干的配置置文件。

RedHat的hostname,就批改/etc/sysconfig/network文件,将外面的HOSTNAME这一行批改成HOSTNAME=NEWNAME,其中NEWNAME就是你要设置的hostname。
Debian发行版的hostname的配置文件是/etc/hostname。
修该配置文件后,重启零碎就会读取配置文件设置新的hostname。

hostname与/etc/hosts的关系
很多人人一提到更改hostname首先就想到批改/etc/hosts文件,认为hostname的配置文件就是/etc/hosts。其实不是的。
hosts文件的作用相当如DNS,提供IP地址到hostname的对应。晚期的互联网计算机少,单机hosts文件里足够寄存所有联网计算机。不过随着互联网的倒退,这就远远不够了。于是就呈现了分布式的DNS零碎。由DNS服务器来提供相似的IP地址到域名的对应。具体能够man hosts。
Linux零碎在向DNS服务器收回域名解析申请之前会查问/etc/hosts文件,如果外面有相应的记录,就会应用hosts外面的记录。

在Linux中和hostname相干的有几个:

  1. 零碎中有HOSTNAME环境变量, 用命令echo $HOSTNAME会把hostname (主机名)显示进去
  2. 还有一个hostname命令: 它有几个性能:
    a) 查问主机名:

               i.              hostname //显示主机名短格局,比方localhost;
              ii.              hostname -f //显示主机名的长格局,带域名,比方:localhost.localdomain
             iii.              hostname –d //显示域名,比方localdomain iv>. hostname –I //显示主机名对应的IP地址
              iv.              hostname –a //显示主机别名(alias),和hostname的输入后果一样, 比方localhost
              v.              hostname –s //显示主机名的短格局,也就是从右边第一逗点后面局部,比方                     localhost.localdomain逗点后面就是localhost

    b) 设置主机名: 用命令设置的主机名是临时的,零碎重新启动后,设置的主机名就会遗失。

                i.              hostname newname //设置主机名为newname
  3. 永恒批改hostname
    用hostname批改的hostname是临时的,如果想永恒的批改hostname, 则必须批改相应的配置文件。

man hostname里有这么一句话,”The host name is usually set once at system startup in /etc/rc.d/rc.inet1 or /etc/init.d/boot (normally by reading the contents of a file which contains the host name, e.g. /etc/hostname).”. CentOS中没有这句话举例说的hostname文件,而是由/etc/rc.d/rc.sysinit这个脚本负责设置零碎的hostname,它读取/etc /sysconfig/network这个文本文件,RedHat的hostname就是在这个文件里设置。

临时放下/etc/sysconfig/network配置办法,先理解不带参数的hostname和hostname -a –d –f, -i的区别: hostname是调用gethostname(2)函数,而hostname -a –d –f, -i 命令是调用gethostbyname(3)函数;gethostname(2)和gethostbyname(3)的区别就是gethostbyname(3)的网络可知性,因而gethostbyname(3)函数须要询问/etc/nsswitch.conf和/etc/host.conf文件来决定是从/etc/sysconfig/network配置文件里,还是从/etc/hosts配置文件里读取信息。

因而配置hostname有两个配置文件:
1、 /etc/sysconfig/network:没有/etc/hosts的性能只是提供一个主机名
性能介绍: 没有/etc/hosts的性能只是提供一个主机名, 它外面的hostname被/etc/rc.d/rc.sysinit读取
配置办法: 用vim关上network文件,更改HOSTNAME=NEWNAME; 这样hostname名就被改为newname了

2、/etc/hosts:
它和网络相干的,相当于DNS,提供IP地址到hostname的对应
配置办法: 用vim关上hosts文件,它的配置格局是: IP FQDN alias, 比方192.168.1.1 localhost.localdomain localhost,其中IP=192.168.1.1, FQDN=localhost.localdomain, alias=localhost

留神: 肯定要让配置文件network中的hostname和hosts中的alias以及FQDN的第一局部统一,否则hostname -a -f -d -i命令不能失常工作。
参考链接:
3 ways to check hostname in Linux

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理