Linux hostname命令介绍
hostname命令是用来显示或设置主机名的命令。主机名是一个用来标识一台计算机在网络中的名称,通常是由字母、数字和连字符组成的字符串。主机名可以用来方便地访问或管理一台计算机,也可以用来配置一些网络服务或应用程序。
Linux hostname命令适用的Linux版本
hostname命令是一个标准的Linux命令,适用于大多数的Linux发行版,如Ubuntu, Debian, Fedora, CentOS等。如果某些Linux发行版没有预装hostname命令,可以通过包管理器来安装。例如,在CentOS 7中,可以使用以下命令来安装hostname命令:
[linux@bashcommandnotfound.cn ~]$ sudo yum install hostname
在CentOS 8中,可以使用以下命令来安装hostname命令:
[linux@bashcommandnotfound.cn ~]$ sudo dnf install hostname
Linux hostname命令的基本语法
hostname命令的基本语法格式如下:
hostname [选项] [新主机名]
如果不带任何选项和参数,hostname命令会显示当前的主机名。如果带有一个参数,hostname命令会设置当前的主机名为该参数。如果带有选项,hostname命令会根据选项的功能来显示或设置主机名或相关信息。
Linux hostname命令的常用选项或参数说明
hostname命令有很多选项和参数,可以用来显示或设置主机名或相关信息,如域名、IP地址、FQDN等。下表列出了一些常用的选项和参数,以及它们的功能和示例。
选项或参数 | 功能 | 示例 |
---|---|---|
-a, --alias | 显示主机的别名 | hostname -a |
-d, --domain | 显示主机的域名 | hostname -d |
-f, --fqdn, --long | 显示主机的完全限定域名(FQDN) | hostname -f |
-i, --ip-address | 显示主机的IP地址 | hostname -i |
-s, --short | 显示主机的短主机名(不包含域名) | hostname -s |
-A, --all-fqdns | 显示主机的所有FQDN | hostname -A |
-I, --all-ip-addresses | 显示主机的所有IP地址 | hostname -I |
-y, --yp, --nis | 显示主机的NIS域名 | hostname -y |
--help | 显示帮助信息 | hostname --help |
--version | 显示版本信息 | hostname --version |
Linux hostname命令的实例
下面是一些使用hostname命令的实例,展示了不同选项和参数的用法和效果。
实例1:显示当前主机名
如果不带任何选项和参数,hostname命令会显示当前的主机名。例如:
[linux@bashcommandnotfound.cn ~]$ hostname
linux
这里显示的主机名是linux,这是一个简单的主机名,没有包含域名。
实例2:设置当前主机名
如果带有一个参数,hostname命令会设置当前的主机名为该参数。例如:
[linux@bashcommandnotfound.cn ~]$ sudo hostname ubuntu
[linux@bashcommandnotfound.cn ~]$ hostname
ubuntu
这里设置了当前的主机名为ubuntu,可以用hostname命令再次查看主机名是否改变。需要注意的是,这种方式设置的主机名只是临时的,重启后会恢复原来的主机名。如果想要永久地修改主机名,需要修改一些配置文件,如/etc/hostname, /etc/hosts等。
实例3:显示主机的域名
如果带有-d或--domain选项,hostname命令会显示主机的域名。例如:
[linux@bashcommandnotfound.cn ~]$ hostname -d
bashcommandnotfound.cn
这里显示的域名是bashcommandnotfound.cn,这是一个自定义的域名,可以用来访问或管理这台主机。
实例4:显示主机的完全限定域名(FQDN)
如果带有-f, --fqdn或--long选项,hostname命令会显示主机的完全限定域名(FQDN)。FQDN是由主机名和域名组成的完整的主机标识,通常用来在互联网中唯一地定位一台主机。例如:
[linux@bashcommandnotfound.cn ~]$ hostname -f
ubuntu.bashcommandnotfound.cn
这里显示的FQDN是ubuntu.bashcommandnotfound.cn,这是由主机名ubuntu和域名bashcommandnotfound.cn组成的。可以看到,FQDN包含了主机名和域名的信息。
实例5:显示主机的IP地址
如果带有-i或--ip-address选项,hostname命令会显示主机的IP地址。IP地址是一个用来在网络中标识一台主机的数字地址,通常由四个0-255之间的数字组成,用点号分隔。例如:
[linux@bashcommandnotfound.cn ~]$ hostname -i
192.168.1.100
这里显示的IP地址是192.168.1.100,这是一个私有的IP地址,只能在局域网中访问。如果主机有公网的IP地址,也可以用这个选项来显示。
实例6:显示主机的短主机名
如果带有-s或--short选项,hostname命令会显示主机的短主机名。短主机名是指不包含域名的主机名,通常用来在同一个域中区分不同的主机。例如:
[linux@bashcommandnotfound.cn ~]$ hostname -s
ubuntu
这里显示的短主机名是ubuntu,这是一个简单的主机名,没有包含域名。可以看到,短主机名和主机名是一样的,除非主机名本身就包含了域名。
实例7:显示主机的所有FQDN
如果带有-A或--all-fqdns选项,hostname命令会显示主机的所有FQDN。有时候,一台主机可能有多个FQDN,例如,如果主机有多个网络接口,或者主机属于多个域。这个选项可以用来列出所有的FQDN,每个FQDN占一行。例如:
[linux@bashcommandnotfound.cn ~]$ hostname -A
ubuntu.bashcommandnotfound.cn
ubuntu.local
这里显示了两个FQDN,一个是ubuntu.bashcommandnotfound.cn,另一个是ubuntu.local。可以看到,这两个FQDN的主机名都是ubuntu,但是域名不同。这说明这台主机属于两个不同的域。
实例8:显示主机的所有IP地址
如果带有-I或--all-ip-addresses选项,hostname命令会显示主机的所有IP地址。有时候,一台主机可能有多个IP地址,例如,如果主机有多个网络接口,或者主机同时使用IPv4和IPv6协议。这个选项可以用来列出所有的IP地址,每个IP地址用空格分隔。例如:
[linux@bashcommandnotfound.cn ~]$ hostname -I
192.168.1.100 10.0.0.1 fe80::a00:27ff:fe1c:9a0
这里显示了三个IP地址。
实例9:显示主机的别名
如果带有-a或--alias选项,hostname命令会显示主机的别名。别名是一个用来替代主机名的名称,通常是一个简短的缩写或昵称。别名可以用来方便地记忆或输入主机名,也可以用来配置一些网络服务或应用程序。例如:
[linux@bashcommandnotfound.cn ~]$ hostname -a
ubu
这里显示的别名是ubu,这是一个对ubuntu的简化。可以看到,别名和主机名是不同的,除非主机名本身就是一个别名。
实例10:显示主机的NIS域名
如果带有-y, --yp或--nis选项,hostname命令会显示主机的NIS域名。NIS域名是一个用来在网络信息服务(NIS)中标识一组主机的名称,通常是由字母、数字和连字符组成的字符串。NIS是一种分布式的数据库系统,可以用来在网络中共享用户、组、主机等信息。例如:
[linux@bashcommandnotfound.cn ~]$ hostname -y
mydomain
这里显示的NIS域名是mydomain,这是一个自定义的域名,可以用来在NIS中管理这台主机。需要注意的是,并不是所有的主机都有NIS域名,只有在使用NIS的网络中才有意义。
实例11:显示帮助信息
如果带有--help选项,hostname命令会显示帮助信息。帮助信息是一个用来介绍命令的用法和选项的文本,通常包含了命令的语法格式、功能描述、选项列表、示例等。例如:
[linux@bashcommandnotfound.cn ~]$ hostname --help
Usage: hostname [OPTION]... [NAME]
or: hostname [OPTION]
Print or set the system's host name.
Mandatory arguments to long options are mandatory for short options too.
-a, --alias display the alias name of the host (if used)
-A, --all-fqdns display all FQDNs of the machine
-b, --boot set default hostname if none available
-d, --domain display the name of the DNS domain
-f, --fqdn, --long display the FQDN (fully qualified domain name)
-F, --file=FILE read the host name or NIS domain name from FILE
-i, --ip-address display the IP address(es) of the host
-I, --all-ip-addresses display all network addresses of the host
-s, --short display the short host name
-y, --yp, --nis display the NIS domain name
--help display this help and exit
--version output version information and exit
If a NAME is given, it is used as the new host name. Note that this
may not succeed in changing the host name on some systems.
Report hostname bugs to bug-coreutils@gnu.org
GNU coreutils home page: <http://www.gnu.org/software/coreutils/>
General help using GNU software: <http://www.gnu.org/gethelp/>
For complete documentation, run: info coreutils 'hostname invocation'
这里显示了hostname命令的帮助信息,可以看到,帮助信息包含了命令的用法、选项、示例等,可以用来快速地了解命令的功能和用法。
实例12:显示版本信息
如果带有--version选项,hostname命令会显示版本信息。版本信息是一个用来标识命令的版本号和版权声明的文本,通常包含了命令的名称、版本号、版权年份、作者等。例如:
[linux@bashcommandnotfound.cn ~]$ hostname --version
hostname (GNU coreutils) 8.32
Packaged by Gentoo (8.32 (p1))
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Peter Tobias and Thomas Roessler.
这里显示了hostname命令的版本信息,可以看到,版本信息包含了命令的名称、版本号、版权年份、作者等,可以用来确定命令的来源和版本。
Linux hostname命令的注意事项
在使用hostname命令时,有一些注意事项需要了解,如下:
- hostname命令只能由root用户或具有相应权限的用户执行,否则会提示Permission denied错误。
- hostname命令只能临时地修改主机名,重启后会恢复原来的主机名。如果想要永久地修改主机名,需要修改一些配置文件,如/etc/hostname, /etc/hosts等,具体方法根据不同的Linux发行版而异。
- hostname命令只能修改本地的主机名,不能修改远程的主机名。如果想要修改远程的主机名,需要先登录到远程主机,然后执行hostname命令。
- hostname命令只能修改主机名,不能修改域名、IP地址等。如果想要修改域名、IP地址等,需要修改一些网络配置文件,如/etc/resolv.conf, /etc/network/interfaces等,具体方法根据不同的网络服务和协议而异。
- 如果在执行hostname命令时,提示bash: hostname: command not found错误,说明系统没有安装hostname命令,需要通过包管理器来安装。具体方法根据不同的Linux发行版而异。
Linux hostname命令的相关命令
除了hostname命令,还有一些相关的命令,可以用来显示或设置主机名或相关信息,如下:
评论区