centos8使用hostnamectl管理主机名称

一,查看hostnamectl所属的包:

[root@yjweb ~]# whereis hostnamectl
hostnamectl: /usr/bin/hostnamectl /usr/share/man/man1/hostnamectl.1.gz

[root@yjweb ~]# rpm -qf /usr/bin/hostnamectl
systemd-239-13.el8_0.5.x86_64

hostnamectl属于systemd这个包,

默认情况下命令应该被系统内置了

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

         对应的源码可以访问这里获取: https://github.com/liuhongdi/

 说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,查看hostnamectl的版本和帮助

1,查看版本

[root@yjweb ~]# hostnamectl --version
systemd 239
+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS 
+ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=legacy

2,查看帮助

[root@yjweb ~]# hostnamectl --help
hostnamectl [OPTIONS...] COMMAND ...
Query or change system hostname.

  -h --help              Show this help
     --version           Show package version
     --no-ask-password   Do not prompt for password
  -H --host=[USER@]HOST  Operate on remote host
  -M --machine=CONTAINER Operate on local container
     --transient         Only set transient hostname
     --static            Only set static hostname
     --pretty            Only set pretty hostname

Commands:
  status                 Show current hostname settings
  set-hostname NAME      Set system hostname
  set-icon-name NAME     Set icon name for host
  set-chassis NAME       Set chassis type for host
  set-deployment NAME    Set deployment environment for host
  set-location NAME      Set location for host 

三,hostnamectl命令的使用例子

1,查看当前的主机名称信息

[root@yjweb ~]# hostnamectl status
   Static hostname: yjweb
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 20191225112704604621388512217964
           Boot ID: f1f4511861e045cfba5744bc4ae584b9
    Virtualization: kvm
  Operating System: ;;https://www.centos.org/CentOS Linux 8 (Core);;
       CPE OS Name: cpe:/o:centos:centos:8
            Kernel: Linux 4.18.0-80.11.2.el8_0.x86_64
      Architecture: x86-64

说明:直接使用 hostnamectl不加status参数也行

2,把主机名修改为blog

[root@yjweb ~]# hostnamectl set-hostname blog

[root@yjweb ~]# hostnamectl
   Static hostname: blog

查看效果:

[root@yjweb ~]# more /etc/hostname
blog

退出后重新登录,则可以看到命令行提示符已生效:

[root@yjweb etc]# exit
logout
[webop@yjweb ~]$ sudo -i
[sudo] password for webop:
[root@blog ~]#

3,只查看static主机名:

[root@blog ~]# hostnamectl --static
blog

4,修改pretty hostname并查看

[root@blog ~]# hostnamectl set-hostname --pretty prettyblog
[root@blog ~]# hostnamectl --pretty
prettyblog

说明:

1,pretty hostname配置后保存在 /etc/machine-info文件中   

[root@blog etc]# more /etc/machine-info
PRETTY_HOSTNAME=prettyblog

2,再次执行hostnamectl时也可看到Pretty hostname一项

[root@blog etc]# hostnamectl
   Static hostname: blog
   Pretty hostname: prettyblog

四,hostnamectl涉及到的文件

1, Static hostname保存在 /etc/hostname 

2, Machine ID保存在: /etc/machine-id

五,三种定义的主机名:

静态的(static)、瞬态的(transient)、和灵活的(pretty)。
静态主机名也称为内核主机名,是系统在启动时从/etc/hostname内自动初始化的主机名。
瞬态主机名是在系统运行时临时分配的主机名。
灵活主机名则允许使用特殊字符的主机名

看例子:

"pretty"主机名:仅供人类阅读,可以包含各种特殊字符,且无长度限制。

                      例如"Lennart's Laptop"(必须是UTF-8编码)

"static"主机名 : 用于在系统启动时设置内核的主机名,仅可包含 "-","a-z","0-9" 字符,

                        且最大不超过64个字符长度。

                        例如"lennarts-laptop"。

                        此种主机名就是通常所说的"主机名",存储在 /etc/hostname 文件中

"transient"主机名:是从网络配置中获得的 fallback 主机名, 同样仅可包含 "-","a-z","0-9" 字符,

                          且最大不超过64个字符长度。

                        如果存在"static"主机名且不等于"localhost", 那么将忽略"transient"主机名

六,查看centos的版本

[root@blog ~]# cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core) 
原文地址:https://www.cnblogs.com/architectforest/p/12611939.html