一,查看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)