hostname命令的主要功能是查看和设置系统的主机名使用。那什么是hostname呢?
hostname(主机名)是标识网络中计算机的唯一标识(名称),它就像每个人自己的名字一样,每台主机也需要有一个自己的名字在网络中被识别。
在Linux操作系统中,hostname主要用于以下几个方面:
1、标识本地主机;
2、在网络通信中被识别;
3、显示在终端提示符中;
hostname(主机名)通常分为以下几种类型:
静态主机名:主要是配置在配置文件中,系统重启后保持不变;
临时主机名:临时需要时,进行临时设置,系统重启动失效;
漂亮的主机名:可以包含特殊字符来描述主机名称(如:My Computer);
语法:hostname [选项] [新主机名称]
参数说明:
选项 | 说明 |
-a,--alias | 显示主机的别名(如果有设置) |
-A,--all-fqdns | 显示所有网络接口的FQDN(域名) |
-b,--boot | 如果没有设置主机名,则使用默认主机名 |
-d,--domain | 显示DNS域名 |
-f,--fqdn,--long | 显示FQDN(域名) |
-F,--file | 从指定文件中读取主机名 |
-i,--ip-address | 显示主机上的IP地址 |
-I,--all-ip-address | 显示主机上所有网络接口的IP地址 |
-s,--short | 显示短主机名(去掉域名部分) |
-y, --yp, --nis | 显示NIS域名 |
三、实战
[root@app01 ~]# hostname myhost[root@app01 ~]# hostnamemyhost
注意:使用这种方法设置的主机名,在系统重启后会恢复为原来的主机名。
2、永久设置主机名
[root@app01 ~]# hostnamectl set-hostname myhost
使用hostnamectl命令可以永久设置主机名称,在系统重启也不会恢复到原来的主机名,该命令会同时修改/etc/hostname配置文件和系统的静态主机名。
静态主机名查看可以使用以下2种方法进行查看。
使用hostnamectl查看
[root@app01 ~]# hostnamectl --staticapp01
[root@app01 ~]# cat /etc/hostnameapp01
[root@app01 ~]# hostnameapp01
[root@app01 ~]# hostname -ife80::21bb:a24:e360:8f81%ens34 192.168.2.2 192.168.122.1
[root@app01 ~]# hostname -I192.168.2.2 192.168.122.1
到这里大家肯定会有点疑惑,“-i”和“-I”参数都是查看主机的上IP地址,那为什么输出的结果不一样呢,它们俩的区别如下:
hostname -I:
它是网卡型,直接列所有非回环IP地址,仅对外可用IP,更贴近“查主机实际 IP”的需求。
hostname -i:
它是解析型,基于主机名查IP(优先hosts,再DNS),含回环IP地址和IPv6地址,所查结果受配置影响。
如果想查看该主机上的完整主机信息,如下:
[root@app01 ~]# hostnamectl Static hostname: app01Transient hostname: myhost Icon name: computer-vm Chassis: vm Machine ID: 35a9a98965e243a9b04be27874d2d915 Boot ID: fa8dbe265a5a4505b51748c060cd20b1 Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-1160.el7.x86_64 Architecture: x86-64
或是使用hostnamectl status查看,效果和直接使用hostnamectl命令查看是一样的。
注:在实际工作中,修改生产环境的主机名前,务必评估一下修改后可能产生的影响,特别是在集群环境中,主机名的变更可能会影响服务发现、监控系统和主备机之间的心跳监控