侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux hostname命令教程:如何显示或设置主机名(附实例详解和注意事项)

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显示主机的所有FQDNhostname -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命令,还有一些相关的命令,可以用来显示或设置主机名或相关信息,如下:

0

评论区