如何在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文件来更改主机名。**为此,我们应该是root或sudo 用户。然后,**修改会立即由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命令会更改所有三个主机名。