在Linux系统中,主机名(Hostname)是设备在网络中的唯一标识符,用于区分不同服务器或设备,查看主机名是系统管理的基础操作,以下是几种专业、可靠且常用的方法,适用于所有主流Linux发行版(如Ubuntu、CentOS、Debian等):
命令:
hostname
输出示例:
server01
说明:
- 这是最直接的方法,
hostname
命令会直接返回当前系统的主机名。 - 附加参数:
hostname -s
:显示短主机名(不包含域名)。hostname -f
:显示完整域名(FQDN)。
通过 hostnamectl
命令(Systemd系统专用)
命令:
hostnamectl
输出示例:
Static hostname: server01 Icon name: computer-server Chassis: server Machine ID: a1b2c3d4e5f6g7h8 Boot ID: x1y2z3a4b5c6d7e8 Operating System: Ubuntu 22.04 LTS Kernel: Linux 5.15.0-86-generic Architecture: x86-64
说明:
- 专用于使用
Systemd
的现代Linux系统(如Ubuntu 16.04+、CentOS 7+)。 - 可查看静态主机名(Static hostname)、动态主机名(Transient hostname)以及操作系统详情。
通过 /etc/hostname
文件查看
命令:
cat /etc/hostname
输出示例:
server01
说明:
- 该文件存储系统的静态主机名,重启后生效。
- 此方法适合脚本调用或需直接读取配置的场景。
通过 uname
命令查看内核主机名
命令:
uname -n
输出示例:
server01
说明:
uname -n
显示内核运行时的主机名(与hostname
命令结果一致)。- 附加参数:
uname -a
可查看全部系统信息(含主机名)。
通过环境变量 $HOSTNAME
查看
命令:
echo $HOSTNAME
输出示例:
server01
说明:
- 此环境变量由Shell动态生成,适用于Bash/Zsh等终端。
- 注意:非所有Shell都支持,可靠性低于
hostname
命令。
通过 nmcli
命令(NetworkManager用户)
命令:
nmcli general hostname
输出示例:
server01
说明:
- 适用于使用NetworkManager管理网络的系统(如桌面版Ubuntu)。
- 需提前安装NetworkManager:
sudo apt install network-manager
。
总结与建议
- 常规场景:优先使用
hostname
或hostnamectl
(简单高效)。 - 脚本调用:读取
/etc/hostname
文件(避免依赖命令输出)。 - 永久修改主机名:
- Systemd系统:
sudo hostnamectl set-hostname 新主机名
- 传统系统:编辑
/etc/hostname
并重启。
- Systemd系统:
重要提示:主机名需符合RFC协议规范(仅包含字母、数字、连字符,不含空格或特殊符号),否则可能导致网络服务异常。
引用说明基于以下权威来源:
- Linux Man Pages(
hostname(1)
,hostnamectl(1)
) - Filesystem Hierarchy Standard(
/etc/hostname
规范) - Systemd官方文档(freedesktop.org)
- GNU Coreutils手册(
uname
命令)
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8601.html