Linux hostname 命令完整详解|主机名查看、临时 / 永久修改、FQDN、IP 获取

1. 命令简介

hostname 命令用于显示或临时设置 Linux 系统的主机名。主机名是用于在网络中标识一台计算机的名称。

重要说明:

系统的环境变量 HOSTNAME 通常存储了当前的主机名。 使用 hostname 命令设置的主机名是临时生效的,系统重启后将恢复为配置文件中的主机名。 如需永久修改主机名,通常需要编辑 /etc/hostname 文件(在某些发行版中可能是 /etc/sysconfig/network),并同步更新 /etc/hosts 文件,然后重启系统。更现代和推荐的方法是使用 hostnamectl 命令(systemd 系统)进行永久修改。

2. 语法格式

基本语法

bash

运行

# 显示主机名或相关信息
hostname [选项]
# 设置主机名
hostname [选项] <新主机名>
# 从文件读取并设置主机名
hostname -F <文件名>
# 显示版本或帮助信息
hostname -V, --version
hostname -h, --help

相关命令 domainname, nisdomainname, ypdomainname: 显示或设置 NIS (Network Information Service) 域名。 dnsdomainname: 显示系统的 DNS 域名。

3. 常用选项及说明

表格

选项长格式说明
-a--alias显示主机的别名(如果已设置)。
-A--all-fqdns列出本机所有配置了网络接口的完全限定域名。
-b--boot如果当前没有设置主机名,则将其设置为默认值(通常为 localhost)。
-d--domain显示 DNS 域名(即 FQDN 中第一个点之后的部分)。
-f--fqdn, --long显示 完全限定域名。这需要正确配置 /etc/hosts 文件和 DNS。
-F--file从指定的文件中读取主机名并设置。
-i--ip-address显示与主机名关联的网络地址(IP)。这依赖于 /etc/hosts 或 DNS 解析。
-I--all-ip-addresses显示主机所有网络接口的 IP 地址(不包括回环地址 127.0.0.1)。此选项不依赖 DNS。
-s--short显示短主机名,即截取第一个点之前的部分。
-y--yp, --nis显示 NIS 域名。
-V--version显示命令版本信息。
-h--help显示帮助信息。

4. 示例用法

4.1 显示主机信息

显示当前主机名:

bash

运行

hostname

输出示例:server01

显示短主机名:

bash

运行

hostname -s

输出示例:server01

显示完全限定域名:

bash

运行

hostname -f

输出示例:server01.example.com

显示 DNS 域名:

bash

运行

hostname -d

输出示例:example.com

显示主机的所有 IP 地址(推荐方式):

bash

运行

hostname -I

输出示例:192.168.1.100 10.0.0.5

显示与主机名关联的 IP 地址(依赖解析):

bash

运行

hostname -i

输出示例:192.168.1.100

显示所有网络接口的 FQDN:

bash

运行

hostname -A

输出示例:server01.example.com server01.local

4.2 设置主机名(临时)

将主机名临时设置为 newhost:

bash

运行

sudo hostname newhost

执行后立即生效,但重启后失效。

如果当前无主机名,则设置为默认主机名:

bash

运行

sudo hostname -b

从文件 /tmp/myhostname 中读取并设置主机名:

bash

运行

sudo hostname -F /tmp/myhostname

5. 注意事项

权限问题:设置主机名通常需要 root 权限,因此需使用 sudo。 临时性修改:使用 hostname <新名称> 进行的修改是内存中的修改,不会写入任何配置文件。系统重启后即失效。 依赖解析的选项:-i (显示 IP 地址) 和 -f (显示 FQDN) 选项依赖于系统的名称解析配置(/etc/hosts 和 /etc/resolv.conf)。如果配置不正确,可能无法返回预期结果。 可靠的 IP 获取:-I 选项是获取本机所有非回环 IP 地址最可靠的方式,因为它直接查询网络接口,不依赖任何名称解析。

永久修改: 传统方式:编辑 /etc/hostname 文件(Debian/Ubuntu 等)或 /etc/sysconfig/network 文件(RHEL/CentOS 等),并确保 /etc/hosts 文件中有一行将新主机名指向 127.0.1.1 或 127.0.0.1(或具体的服务器 IP 地址)。 推荐方式(systemd 系统):使用 sudo hostnamectl set-hostname <新主机名> 命令,它会自动更新相关配置文件。

网络影响:更改主机名后,可能会影响依赖主机名的服务或网络通信,请确保相关服务配置(如 SSH、Web 服务器、数据库复制等)已相应更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿成学长_Cain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值