优秀的编程知识分享平台

网站首页 > 技术文章 正文

如何查询Linux的主机名,这5个命令一定要掌握!

nanyue 2025-03-07 22:26:48 技术文章 1 ℃

在Linux系统中,主机名(Hostname)是设备的唯一标识符,直接影响网络通信、服务配置和系统管理。无论是排查服务器集群问题,还是优化本地开发环境,快速获取和修改主机名都是核心技能。本文将深入解析5个高效命令,覆盖基础查询、高级配置和疑难场景,助您成为主机名管理专家!

命令1:hostname

最直接的查询工具

核心功能

实时显示或临时修改当前系统的主机名(重启后失效)。

参数详解

hostname           # 显示当前主机名
hostname -i        # 显示主机名对应的IP地址(依赖DNS解析)
hostname -I        # 显示所有非回环IP地址
hostname -f        # 显示FQDN(完全限定域名)
sudo hostname newname  # 临时修改主机名为"newname"

实战案例

  • o 场景1:快速确认当前主机名
$ hostname

o 场景2:检查IP与DNS关联性$ hostname -i

注意事项

  • o 临时修改的主机名在重启后失效,需结合其他工具永久生效。

命令2:hostnamectl

Systemd环境下的全能管理

核心功能

查询和永久修改主机名,支持静态(Static)、瞬态(Transient)和灵活(Pretty)三种模式。

参数详解

hostnamectl                  # 显示所有主机名信息
hostnamectl status           # 同上述命令
sudo hostnamectl set-hostname "newname"    # 永久修改静态主机名
sudo hostnamectl set-hostname --transient "tempname"  # 设置瞬态主机名

hostnamectl

hostnamectl status

实战案例

  • o 场景:同时配置静态和瞬态主机名
$ sudo hostnamectl set-hostname "prod-db" --static
$ sudo hostnamectl set-hostname "dev-backup" --transient
$ hostnamectl
  Static hostname: prod-db
  Transient hostname: dev-backup

注意事项

  • o 修改立即生效且永久保存,无需重启。

命令3:uname -n

级主机名查询

核心功能

从Linux内核层面获取主机名,与hostname命令输出一致,但适用于极简环境。

参数详解

uname -n    # 显示内核注册的主机名

实战案例

  • o 场景:在脚本中自动化获取主机名
#!/bin/bash
CURRENT_HOST=$(uname -n)
echo "当前主机:$CURRENT_HOST"

注意事项

  • o 仅用于查询,无法修改。

命令4:cat /etc/hostname

配置文件的真相

核心功能

直接读取主机名配置文件(重启后加载),适合排查“预期与实际不符”的问题。

参数详解

cat /etc/hostname       # 显示下次启动时的主机名
sudo nano /etc/hostname # 手动编辑永久配置(需重启生效)

实战案例

  • o 场景:检查配置与运行时差异
$ hostname        # 显示当前运行时主机名:server-01
$ cat /etc/hostname   # 显示文件内容:server-old
# 结论:主机名被临时修改过但未持久化

注意事项

  • o 直接编辑文件后必须重启或运行hostnamectl应用更改。

命令5:nmtui

交互式网络管理器(附主机名设置)

核心功能

通过TUI界面管理主机名,适合不熟悉命令行的用户。

操作步骤

  1. 1. 运行nmtui进入界面
  2. 2. 选择“Set system hostname”
  3. 3. 输入新名称并保存

实战案例

  • o 场景:在无GUI的服务器上直观修改
$ sudo nmtui
# 通过方向键和输入框完成操作

注意事项

  • o 依赖NetworkManager服务,部分精简系统可能未预装。

对比总结

场景选择最佳命令

命令/工具实时生效永久修改适用场景hostname快速查看或临时调试hostnamectl永久配置(推荐生产环境)uname -n脚本调用或极简查询/etc/hostname手动编辑底层配置nmtui交互式图形化操作

进阶技巧:主机名与网络服务的联动

  1. 1. 配置SSH横幅显示主机名

修改/etc/ssh/sshd_config,添加:

Banner /etc/issue.net

并在/etc/issue.net中写入Welcome to \n\n自动替换为主机名)。

  1. 2. 在Prometheus监控中动态标识主机

使用hostname变量自动填充标签:

- job_name: 'node_exporter'
  static_configs:
    - targets: ['localhost:9100']
      labels:
        instance: "$(hostname)"
最近发表
标签列表