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) 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM