在CentOS 6中,修改主机名方式很简单,临时修改主机名使用hostname命令,永久修改主机名直接写进文件/etc/sysconfig/network中即可。

但在CentOS 7中,主机名就没那么简单了,它涉及了一些弯弯绕绕。

在CentOS 7中,主机名分3类:static(静态主机名)、pretty(好看、易读的主机名)和transient(短暂临时的)。CentOS 7中和主机名有关的文件为/etc/hostname,它是在系统初始化的时候被读取的,并且内核根据它的内容设置transient主机名。

其中:

  1. static类的主机名就是我们常说的主机名,由/etc/hostname文件决定。
  2. transient类的主机名也就是我们常说的临时主机名,它是由内核动态维护的主机名。默认在系统启动的时候会根据/etc/hostname文件中的静态主机名进行初始化。
  3. pretty类的主机名是给人看的,它可以提供非标准的主机名,以前版本(例如CentOS 6)没有这功能。它可以包含特殊符号,例如空格。例如将pretty名称命为"MaYun's Host",这种名称在以前的主机名(即static类主机名)里是不允许存在的。

/etc/hostname文件中的static主机名是瞬时生效的,也是永久生效的。修改后使用hostname命令或者uname -n直接就可以读取,重启后也按照此文件的主机名进行初始化。

/etc/hostname文件没有主机名的时候,在系统启动的时候,内核会将transient初始化为localhost.localdomain

/etc/sysconfig/network文件已经失效。

CentOS 7主机名修改、查看

  1. 使用hostname命令修改主机名,它修改是transient主机名,即临时生效的主机名。
  2. 直接修改/etc/hostname文件,它瞬时生效,重启后也生效(因为内核会根据它初始化transient主机名)。
  3. 使用nmtui命令在图形化界面修改主机名。它会直接修改/etc/hostname文件,因此也是瞬时生效+永久生效的。
  4. 使用hostnamectl命令。它可以修改并查看static、transient或pretty三种主机名。当它修改了static主机名时,会直接写入/etc/hostname文件中,因此它也是瞬时生效+永久生效的。

hostnamectl命令

1.查看主机名

hostnamectl
#或
hostnamectl status
#或
hostnamectl [--pretty|--static|--transient] status

例如,当前主机名为"xuexi.longshuai.com"。

[root@xuexi ~]# uname -n
xuexi.longshuai.com
[root@xuexi ~]# hostname name1
[root@xuexi ~]# hostnamectl
Static hostname: xuexi.longshuai.com
Transient hostname: name1
Icon name: computer-vm
Chassis: vm
Machine ID: d13bce5e247540a5b5886f2bf8aabb35
Boot ID: d34a4222469e4f1cbe20c27aca174e10
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-327.el7.x86_64
Architecture: x86-64

可以看到使用hostname命令修改主机名后,transient已经改变了。

2.同时修改3种主机名

当同时修改了pretty和(static | transient)中的一种时,将取pretty名的简化部分作为static主机名。

hostnamectl set-hostname NAME

例如:

[root@xuexi ~]# hostnamectl set-hostname name2
[root@xuexi ~]# hostname
name2
[root@xuexi ~]# cat /etc/hostname
name2
[root@xuexi ~]# hostnamectl status
Static hostname: name2
Icon name: computer-vm
Chassis: vm
Machine ID: d13bce5e247540a5b5886f2bf8aabb35
Boot ID: d34a4222469e4f1cbe20c27aca174e10
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-327.el7.x86_64
Architecture: x86-64
[root@xuexi ~]# hostnamectl --pretty [root@xuexi ~]#

可以从结果中看到,只改变了static和transient(内核动态维护的,一定会改变),而pretty却没设置成功。这是因为这里给出的主机名"name2"是一个符合主机名标准的名称。如果指定一个非标准的主机名,例如包含特殊符号,那么也会设置pretty。

例如:

[root@xuexi ~]# hostnamectl set-hostname "name22 name22"
[root@xuexi ~]# hostnamectl
Static hostname: name22name22
Pretty hostname: name22 name22
Icon name: computer-vm
Chassis: vm
Machine ID: d13bce5e247540a5b5886f2bf8aabb35
Boot ID: d34a4222469e4f1cbe20c27aca174e10
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-327.el7.x86_64
Architecture: x86-64

pretty hostname已经改变,且static hostname是它的"简化版"。

3.修改某种类型的主机名

hostnamectl set-name NAME --static
hostnamectl set-name NAME --transient
hostnamectl set-name NAME --pretty

用法如上面的例子。

4.同时修改其中两种名称。

hostnamectl set-name NAME --static --transient
hostnamectl set-name NAME --static --pretty
hostnamectl set-name NAME --transient --pretty

用法如上面的例子。但同样注意,当修改了pretty主机名和其他一种时,将取pretty的"简化版"。

5.修改、查看远程主机的主机名,使用"-H"或"--host"选项。连接基于SSH。

注意,无法远程修改CentOS 5或6主机名,因为它使用的是systemd类的命令进行修改的。

hostnamectl -H [USER@]HOST set-hostname NAME
hostnamectl -H [USER@]HOST status

例如,使用root用户连接到192.168.100.59主机上并修改它的主机名。

hostnamectl -H root@192.168.100.59 set-hostname hello59
hostnamectl -H root@192.168.100.59 status

CentOS 7主机名的弯弯绕绕的更多相关文章

  1. centos修改主机名命令

    centos修改主机名命令   需要修改两处:一处是/etc/sysconfig/network,另一处是/etc/hosts,只修改任一处会导致系统启动异常.首先切换到root用户.    vi / ...

  2. CENTOS修改主机名

    1.临时修改主机名 显示主机名: zhouhh@zzhh64:~$ hostname zhh64 修改主机名: zhouhh@zzhh64:~$ sudo hostname zzofs zhouhh@ ...

  3. CentOS修改主机名和网络信息

    1.修改主机名称 [root@centos ~]# vim /etc/sysconfig/network打开文件,修改以下内容并保存 NETWORKING=yes #使用网络 HOSTNAME=cen ...

  4. CentOS 修改主机名

    最新文章:Virson's Blog 1.临时修改主机名 地址:http://www.cnblogs.com/mawanglin2008/p/3530790.html 显示主机名: oracle@lo ...

  5. CentOS修改主机名hostname

    方法一:即时生效,重启后失效 hostname 新主机名 方法二:永久生效 1.修改/etc/hosts vim /etc/hosts 127.0.0.1 localhost 新主机名 2.修改/et ...

  6. Linux实战案例(1)CentOS修改主机名(hostname)

    1.临时修改主机名 显示主机名: oracle@localhost:~$ hostname localhost 修改主机名: oracle@localhost:~$ sudo hostname orc ...

  7. CentOS配置主机名和主机映射

    1.修改本机主机名 vi /etc/sysconfig/network 修改hostname HOSTNAME=s0 2.配置主机映射 vi /etc/hosts 修改内容如下 192.168.32. ...

  8. centos修改主机名 root@后面的名字

    阿里云买的新的ESC,名字都是一串字符,不利于平时使用.我们可以重命名主机来标记. centos6 [root@centos6 ~]$ hostname # 查看当前的hostnmae centos6 ...

  9. CentOS 7 主机名bogon解决办法

    转https://blog.csdn.net/qq_24221531/article/details/80334942 一.修改linux主机的配置文件/etc/hostname 和 /etc/hos ...

随机推荐

  1. Nexus3将本地jar包添加到仓库

    新建一个文件夹,将要上传的jar包放进去,然后创建一个pom文件,例如xx.jar,pom.xml 首先创建一个目录 方便执行上传的时候url参数 也可以不创建, 上传XML curl -v -u a ...

  2. PAT乙级 1034

    思路:是个水题,但是有坑.不能被题目忽悠了,题目保证正确的输出中没有超过整型范围的整数. 它只是保证结果不超出int,但是我们在运算过程中的乘法可能会超出int,直接把所有int改成long long ...

  3. 【Learning】 动态树分治

    简介 动态树分治整体上由点分治发展而来. 点分治是统计树上路径,而动态树分治用来统计与点有关的树上路径,比如多次询问某一些点到询问点的距离和. 前置知识就是点分治. 做法 众所周知,点分树(点分治中重 ...

  4. 老机器安装Centos

    512M内存,80G硬盘 ubuntu-server没有压力,但是因为很多平台只支持centos服务器linux系统 内存要超过1G默认才能用图形界面安装.装好之后即使256M内存都可以跑起来.lin ...

  5. HI3531例子程序说明

    Hisilicon Hi35xx 样例程序使用说明 1. 样例程序文件结构说明    sample            # MPP 样例程序     |-- common       # hi35x ...

  6. vxworks下文件读写示例

    dev 1.create file on floopy disk and write contents: -> pdev=fdDevCreate(0,0,0,0)     /* A:,1.44M ...

  7. 【mongodb系统学习之四】查看mongodb进程

    四.查看mongodb进程(可以配合启动和关闭使用): 1).方法一:直接查看mongodb进程是否已经存在(用上面的方式启动后,需要另开一个窗口操作):ps –ef|grep mongodb, 如图 ...

  8. Error Code: 1305. FUNCTION student.rand_string does not exist

    1.错误描述 13:52:42 call new_procedure Error Code: 1305. FUNCTION student.rand_string does not exist 0.0 ...

  9. Linux显示邮件状态等信息

    Linux显示邮件状态等信息 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ finger -l Login: youhaidong Name: youhaid ...

  10. 序列化Json格式

    Json = JsonUtil.Serialize(new { code = 1, msg = "文件删除成功" }); public class JsonUtil     {   ...