Contents

如何在linux中设置或更改系统主机名

1. 概述

Linux 系统的每个实例都由其主机名标识。该名称不仅在联网时使用,还可以改善用户体验。

在本教程中,我们将了解获取和设置主机名的方法。

2. hostname命令和*/etc/hostname*文件

hostname 的位置是文件/etc/hostname **。让我们直接用cat 来检查:

$ cat /etc/hostname
fedora35

所以我们Linux系统的名字是’fedora35’。

此外,我们可以为此使用*hostname *:

$ hostname
fedora35

最后,**我们可以将主机名放入命令行提示符,*设置PS1 变量以包含\h*占位符:

$export PS1='\u@\h:\w\$'
joe@fedora35:~$

3. 如何设置主机名

让我们编辑/etc/hostname文件来更改主机名。**为此,我们应该是rootsudo 用户。然后,**修改会立即由hostname*命令反映,并且在重新启动后不会丢失。*

此外,我们可以使用hostname来设置名称:

$ sudo hostname fedorabox
$ hostname
fedorabox

但是,我们将在系统重新启动后丢失此设置。

此外,我们需要将相同的名称放入/etc/hostname*文件*中。否则,这些差异可能会导致系统故障。

最后,如果我们在*/etc/hosts*文件中使用静态主机名进行联网,我们也需要相应地更新它。

4. /etc/hostname的缺点

我们应该注意到,当网络配置起作用时,这种管理主机名的方式会失败。例如,提供DHCP 的服务可能会更改/etc/hostname*文件的内容或将其完全删除。*

在这种情况下,hostname返回从服务获取的名称。

5. hostnamectl命令

**我们应该使用hostnamectl 来进行主机名的即时和持久更改。**此外,我们可能会覆盖从网络配置中获得的名称。

该命令与systemd 软件包一起提供,并由按需服务提供支持。

所以让我们检查一下主机名:

$ hostnamectl hostname
fedorabox

现在,让我们使用set-hostname命令将名称更改为hostnamectl

$ hostnamectl set-hostname fedora

最后,让我们再次检查一下:

$ hostnamectl hostname
fedora
$ cat /etc/hostname
fedora
$ hostname
fedora

6. 使用hostnamectl的更多主机名

**使用此命令,我们可以使用更多类型的主机名。**我们可以对set-hostname命令使用额外的开关:

  • static – 指位于*/etc/hostname*文件中的主机名
  • pretty – 用户友好的主机名,可能包含特殊字符或语言环境字符
  • transient- 替代从网络配置获得的主机名,当静态的不可用时

所以让我们试试这些主机名:

$ hostnamectl set-hostname --static fedora35
$ hostnamectl set-hostname --pretty "Joe's fedora"
$ hostnamectl set-hostname --transient "fedora"
Hint: static hostname is already set, so the specified transient hostname will not be used.

让我们注意关于设置瞬态的注释。现在,让我们使用与之前相同的开关检查结果:

$ hostnamectl hostname --static; hostnamectl hostname --pretty; hostnamectl hostname --transient
fedora35
Joe's fedora
fedora35

最后,让我们注意不带任何修饰符的set-hostname命令会更改所有三个主机名。