Linux 中改变主机名的 4 种方法
今天,我们将向你展示使用不同的方法来修改主机名。你可以从中选取最适合你的方法。
使用 systemd 的系统自带一个名为 hostnamectl 的好用工具,它可以使我们能够轻易地管理系统的主机名。
当你使用这个原生命令时,它可以立刻改变主机名而无需重启来生效。
但假如你通过手动修改某个配置文件来更改主机名,那么就可能需要经过重启来生效。
在这篇文章中,我们将展示在使用 systemd 的系统中改变主机名的 4 种方法。
hostnamectl 命令允许在 Linux 中设置三类主机名,它们的细节如下:
- 静态: 这是静态主机名,由系统管理员添加。
- 瞬时/动态: 这个由 DHCP 或者 DNS 服务器在运行时赋予。
- 易读形式: 它可以由系统管理员赋予。这个是自由形式的主机名,以一种易读形式来表示服务器,例如 “JBOSS UAT Server” 这样的名字。
这些都可以使用下面 4 种方法来设置。
hostnamectl命令:控制系统主机名。nmcli命令:是一个控制 NetworkManager 的命令行工具。nmtui命令:是一个控制 NetworkManager 的文本用户界面。/etc/hostname文件:这个文件中包含系统的静态主机名。
方法 1:在 Linux 中使用 hostnamectl 来改变主机名
hostnamectl 可被用来查询和改变系统的主机名,以及相关设定。只需运行 hostnamectl 便可以查看系统的主机名了。
$ hostnamectl
或者使用下面的命令:
$ hostnamectl statusStatic hostname: daygeek-Y700Icon name: computer-laptopChassis: laptopMachine ID: 31bdeb7b83230a2025d43547368d75bcBoot ID: 267f264c448f000ea5aed47263c6de7fOperating System: Manjaro LinuxKernel: Linux 4.19.20-1-MANJAROArchitecture: x86-64
假如你想改变主机名,可以使用下面的命令格式:
语法格式:
$ hostnamectl set-hostname [YOUR NEW HOSTNAME]
使用下面的命令来使用 hostnamectl 更改主机名。在这个例子中,我将把主机名从 daygeek-Y700 改为 magi-laptop。
$ hostnamectl set-hostname magi-laptop
你可以使用下面的命令来查看更新后的主机名。
$ hostnamectl
Static hostname: magi-laptop
Icon name: computer-laptop
Chassis: laptop
Machine ID: 31bdeb7b83230a2025d43547368d75bc
Boot ID: 267f264c448f000ea5aed47263c6de7f
Operating System: Manjaro Linux
Kernel: Linux 4.19.20-1-MANJARO
Architecture: x86-64
方法 2:在 Linux 中使用 nmcli 命令来更改主机名
nmcli 是一个命令行工具,旨在控制 NetworkManager 并报告网络状态。
nmcli 被用来创建、展示、编辑、删除、激活和注销网络连接,同时还可以用来控制和展示网络设备的状态。另外,它也允许我们更改主机名。
使用下面的命令来利用 nmcli 查看当前的主机名。
$ nmcli general hostname
daygeek-Y700
语法格式:
$ nmcli general hostname [YOUR NEW HOSTNAME]
使用下面的命令来借助 nmcli 命令可以更改主机名。在这个例子中,我将把主机名从 daygeek-Y700 变成 magi-laptop。
$ nmcli general hostname magi-laptop
它可以在不重启下设备的情况下生效,但为了安全目的,只需要重启 systemd-hostnamed 服务来使得更改生效。
$ sudo systemctl restart systemd-hostnamed
再次运行相同的 nmcli 命令来检查更改后的主机名。
$ nmcli general hostname
magi-laptop
方法 3:在 Linux 中使用 nmtui 来更改主机名
nmtui 是一个基于 curses 库的 TUI 应用,被用来和 NetworkManager 交互。当启动 nmtui 后,如果没有指定 nmtui 的第一个命令行参数,它将提醒用户选择执行某项活动。
在终端中运行下面的命令来开启文本用户界面。
$ nmtui
使用向下箭头按键来选择 “Set system hostname” 这个选项,然后敲击回车键。

下面的截图展示的是原来的主机名。

我们需要做的就是删除原来的主机名,再输入新的主机名,然后选中 “OK” 敲击回车确认就可以了。

然后它将在屏幕中向你展示更新后的主机名,再次选中 “OK” 敲击回车确认就完成更改了。

最后,选中 “Quit” 按钮来从 nmtui 终端界面离开。

它可以在不重启设备的情况下生效,但为了安全目的,需要重启 systemd-hostnamed 服务来使得更改生效。
$ sudo systemctl restart systemd-hostnamed
你可以运行下面的命令来查看更新后的主机名。
$ hostnamectl
Static hostname: daygeek-Y700
Icon name: computer-laptop
Chassis: laptop
Machine ID: 31bdeb7b83230a2025d43547368d75bc
Boot ID: 267f264c448f000ea5aed47263c6de7f
Operating System: Manjaro Linux
Kernel: Linux 4.19.20-1-MANJARO
Architecture: x86-64
方法 4:在 Linux 中使用 /etc/hostname 来更改主机名
除了上面的方法外,我们还可以通过修改 /etc/hostname 文件来达到修改主机名的目的。但这个方法需要服务器重启才能生效。
使用下面的命令来检查 /etc/hostname 文件以查看当前的主机名:
$ cat /etc/hostname
daygeek-Y700
要改变主机名,只需覆写这个文件就行了,因为这个文件只包含主机名这一项内容。
$ sudo echo "magi-daygeek" > /etc/hostname
$ cat /etc/hostname
magi-daygeek
然后使用下面的命令重启系统:
$ sudo init 6
最后查看 /etc/hostname 文件的内容来验证主机名是否被更改了。
$ cat /etc/hostname
magi-daygeek
Linux 中改变主机名的 4 种方法的更多相关文章
- CentOS7修改主机名的三种方法
在CentOS7中,有三种定义的主机名: 静态的(Static hostname) “静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名. 瞬态的(Tansie ...
- JS获取IP、MAC和主机名的几种方法
方法一(只针对IE且客户端的IE允许AcitiveX运行,通过平台:XP,SERVER03,2000): 获取客户端IP. <HTML> <HEAD> <TITLE> ...
- JS获取IP、MAC和主机名的五种方法
javascript获取客户端IP的小程序,下面的代码是我在所有windowsNT5.0及以上的系统上都测试通过的,喜欢的朋友可以收藏下.今天在搞JS(javascript)获取客户端IP的小程序,上 ...
- Linux中创建Daemon进程的三种方法
什么是daemon进程? Unix/Linux中的daemon进程类似于Windows中的后台服务进程,一直在后台运行运行,例如http服务进程nginx,ssh服务进程sshd等.注意,其英文拼写为 ...
- Linux中执行shell脚本的4种方法总结
bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在 ...
- Linux中执行shell脚本的4种方法
bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在 ...
- 每天一个linux命令(62):sh命令 /Linux中执行shell脚本的4种方法总结
bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在 ...
- Linux下修改主机IP地址、DNS、主机名的三种方法
使用root用户登录进入linux,打开进去终端 在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0 (最后的eth0是网卡名,我的是Auto_et ...
- ES5中改变this指向的三种方法
ES5中提供了三种改变函数中this指针指向的方法,分别如下 1.call() var obj = {username:"孙悟空"}; //没有任何修饰的调用函数,函数中的this ...
随机推荐
- Debian+Django+uWsgi+nginx+mysql+celery
下载系统各种依赖 nano /etc/apt/sources.list 在Debian中使用apt-get安装软件包时经常会提示让你插入netinst的光盘: Media change: please ...
- 【webpack系列】从零搭建 webpack4+react 脚手架(五)
本章节,我们一起来探讨以下问题:如何对编译后的文件进行gzip压缩,如何让开发环境的控制台输出更加高逼格,如何更好的对编译后的文件进行bundle分析等. 1 gzip压缩 如果你想节省带宽提高网站速 ...
- 高精度POJ1001
今天看到这道题了 poj1001 题目地址是http://bailian.openjudge.cn/practice/1001/ 英文看得懂,可是算法不明白,所以转别人的文章,留着给学生看看:乔高建( ...
- F7里利用DIV 模拟 textarea 显示回行的问题解决
<div class="card-content-inner" style="word-wrap:break-word;word-break:break-all;w ...
- redis 实现
/** * Returns a string containing the string representation of each of {@code parts}, using the * pr ...
- python打包工具 cx_Freeze介绍
原理 Python 脚本在装有 Python 的系统中可以直接双击运行,但绝大多数普通用户并没有配置此类环境,而编译为可执行二进制文件后,用户无需预先安装 Python 及依赖库即可像运行普通程序一样 ...
- C语言 第三次作业--函数
1.本章学习总结 1.1 思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 学习C语言也半个学期了,前天也才刚刚进行了半期考试,emmm,成绩很差,可以反应出来我这半学期学习的效果并不 ...
- 输出九九乘法表(Python、Java、C、C++、JavaScript)
最近在学python的过程中,接触到了循环的知识,以及这个案例,于是写了下!感觉还不错,然后就用其它几种语言也试了下!! 接下来,就跟大家分享下实现方法!! 实现输出九九乘法表,主要用到的是循环的知识 ...
- toString
在java中使用toString: 如果在Java在输出定义一个Person类 然后实例化person per 直接用system.out.println(per);无法得到我们想要的实例化内容 p ...
- python基础知识总结(一)
学完python很久了,一直想着写个学习总结,奈何懒癌晚期,现在才开始写.以下是我总结的一小部分python基础知识点的总结: 1.什么是解释型语言?什么是编译型编程语言? ''' 解释型语言:无需编 ...