服务器测评网
我们一直在努力

如何在Linux中查看当前机器的完整主机名?

在 Linux 系统管理中,查看机器名是一项基础且常用的操作,机器名(Hostname)是网络中识别设备的重要标识,不仅用于本地系统管理,还在网络通信、服务配置、日志记录等场景中发挥关键作用,本文将详细介绍 Linux 系统中查看机器名的多种方法,涵盖命令行工具、配置文件修改及相关注意事项,帮助用户全面掌握机器名的管理技巧。

如何在Linux中查看当前机器的完整主机名?

使用 hostname 命令快速查看机器名

hostname 是 Linux 系统中最直接、最常用的查看机器名的命令,它无需额外参数即可显示当前系统的主机名,适合快速获取信息。

基本用法

在终端中输入以下命令:

hostname

执行后,终端将输出当前系统的完整主机名(FQDN,Fully Qualified Domain Name)或简短主机名,输出可能为 ubuntu-serverweb-server.example.com

查看完整主机名(FQDN)

若需要显示包含域名后缀的完整主机名,可使用 -f 参数(full qualified name):

hostname -f

若系统配置的主机名为 web-server,域名为 example.com,则输出结果为 web-server.example.com

查看短主机名

使用 -s 参数可仅显示主机名的简短部分(即第一个小数点前的内容):

hostname -s

上述示例中,输出结果为 web-server

查看机器名对应的 IP 地址

通过 -I 参数(大写 i),可以查看主机名绑定的所有 IP 地址(通常为主机名解析后的 IP):

hostname -I

输出可能为 168.1.100 10.0.0.1,表示主机名对应多个 IP 地址。

通过 /etc/hostname 文件查看机器名

在 Linux 系统中,机器名通常存储在 /etc/hostname 文件中,该文件是系统启动时读取主机名配置的核心文件,直接查看文件内容可获取持久化的机器名设置。

查看 /etc/hostname 文件内容

使用 catlessmore 命令均可查看文件内容,

cat /etc/hostname
```  通常为单行文本,即系统的主机名,文件内容可能为:  
```plaintext
ubuntu-server

文件权限说明

/etc/hostname 文件通常为 root 所有,普通用户可能需要 sudo 权限才能查看。

如何在Linux中查看当前机器的完整主机名?

sudo cat /etc/hostname

文件与动态机器名的区别

需要注意的是,/etc/hostname 存储的是静态主机名(Static Hostname),即系统重启后仍会保留的主机名,而通过 hostname 命令临时修改的机器名(如 hostname new-name)仅在当前会话中生效,重启后会恢复为 /etc/hostname 中的值。

使用 hostnamectl 命令(适用于 systemd 系统)

对于采用 systemd 初始化系统的现代 Linux 发行版(如 Ubuntu 16.04+、CentOS 7+、Debian 8+ 等),hostnamectl 是一个功能强大的工具,不仅可以查看机器名,还能管理主机名状态、静态/动态/瞬态主机名等。

查看当前主机名信息

执行以下命令可显示详细的主机名信息,包括静态主机名、瞬态主机名、灵活主机名以及操作系统信息:

hostnamectl

输出示例:

   Static hostname: ubuntu-server
         Icon name: computer-server
           Chassis: server
        Machine ID: 1234567890abcdef1234567890abcdef
           Boot ID: 0987654321fedcba0987654321fedcba
    Operating System: Ubuntu 20.04.3 LTS
          CPE OS Name: cpe:/o:canonical:ubuntu:20.04
       Kernel Version: 5.13.0-40-generic
         Architecture: x64

仅显示主机名

若只想查看主机名本身,可使用 --pretty 参数(显示美观主机名)或 --static 参数(显示静态主机名):

hostnamectl --pretty  # 显示包含特殊字符或空格的美观主机名
hostnamectl --static   # 显示静态主机名(与 /etc/hostname 一致)

查看主机名对应的硬件信息

hostnamectl 还可显示设备的硬件信息,如制造商、型号等,帮助用户确认主机身份:

hostnamectl status --pretty

通过 /etc/hosts 文件关联机器名与 IP

/etc/hosts 文件是本地 DNS 解析的重要配置文件,其中可能包含机器名与 IP 地址的映射关系,通过查看该文件,可确认机器名是否被正确解析到本地或远程 IP。

查看 /etc/hosts 文件

使用 cat 命令查看文件内容:

cat /etc/hosts
```  示例:  
```plaintext
127.0.0.1   localhost
127.0.1.1   ubuntu-server
192.168.1.100  web-server.example.com  web-server

0.1.1 对应的是本地机器的主机名(ubuntu-server),而 168.1.100 对应的是远程或另一台机器的主机名映射。

机器名解析优先级

Linux 系统解析主机名时,优先级顺序为:

  1. /etc/hosts 文件中的静态映射
  2. DNS 服务器(通过 /etc/resolv.conf 配置)
    /etc/hosts 中未配置机器名,系统会尝试通过 DNS 解析。

修改机器名的方法(附带查看验证)

了解如何查看机器名后,有时也需要修改主机名,以下是不同场景下的修改方法及验证步骤。

临时修改机器名(当前会话生效)

使用 hostname 命令可直接修改当前会话的机器名,但重启后会失效:

如何在Linux中查看当前机器的完整主机名?

sudo hostname new-hostname

修改后,通过 hostnamehostnamectl 命令可验证结果。

永久修改机器名(需修改配置文件)

(1)修改 /etc/hostname 文件
使用文本编辑器(如 nanovim)打开文件:

sudo nano /etc/hostname
```  替换为新的主机名(如 `new-server`),保存后退出。  
**(2)修改 `/etc/hosts` 文件**  
为避免解析问题,建议同步更新 `/etc/hosts` 文件中的主机名映射:  
```bash
sudo nano /etc/hosts

0.1.1 行后的旧主机名替换为新主机名,

0.1.1   new-server

(3)重启系统或重启相关服务
修改配置文件后,需重启系统使配置完全生效,或执行以下命令刷新主机名:

sudo hostnamectl set-hostname new-server  # 适用于 systemd 系统

验证修改结果

通过以下命令确认机器名是否已修改成功:

hostname          # 查看当前主机名
hostnamectl       # 查看详细主机名信息
cat /etc/hostname # 确认配置文件内容

常见问题与注意事项

  1. 权限问题
    修改主机名通常需要 root 权限,普通用户需使用 sudo 执行命令。

  2. 主机名命名规范

    • 建议使用小写字母、数字和连字符(),避免空格和特殊字符。
    • FQDN 格式为 hostname.domainweb-server.example.com
  3. 网络服务影响
    修改主机名后,依赖主机名标识的网络服务(如 Apache、NFS 等)可能需要重启或重新配置。

  4. 容器与虚拟机环境
    在 Docker 容器或虚拟机中,主机名可能与宿主机不同,需通过 --hostname 参数或相关配置单独设置。

在 Linux 系统中,查看机器名的方法多种多样,从简单的 hostname 命令到功能丰富的 hostnamectl,再到配置文件的直接查看,用户可根据实际需求选择合适的方式,理解静态主机名、动态主机名及配置文件的差异,有助于更好地管理系统标识,掌握修改机器名的正确流程及验证方法,可确保网络服务和管理操作的顺畅进行,通过本文介绍的方法,用户能够高效、准确地完成 Linux 系统中机器名的查看与管理任务。

赞(0)
未经允许不得转载:好主机测评网 » 如何在Linux中查看当前机器的完整主机名?