我使用过的Linux命令之hostname - 显示或设置主机名

本文链接:http://codingstandards.iteye.com/blog/804648   (转载请注明出处)

用途说明

hostname命令可以用来显示或者设置主机名(show or set the system’s host name)。环境变量HOSTNAME也保存了当前的主机名。在使用hostname命令设置主机名后,系统并不会永久保存新的主机名,重新启动机器之后还是原来的主机名。如果需要永久修改主机名,需要同时修改/etc/hosts和/etc/sysconfig/network的相关内容。某些依赖于系统主机名的软件,在修改主机名之后可能会出现问题,比如为mysql配置了同步复制时,修改主机名前最好先停止其运行(经验之谈,本人就因此折腾了很久)。

常用参数

不带参数时显示主机名。

格式:hostname

带上-i参数时显示ip地址。

格式:hostname -i

带上-f参数时显示全域名(FQDN,Fully Qualified Domain Name)。

格式:hostname -f

修改主机名时,后面跟上新的主机名即可。(注意此方法立即生效,但不会永久保存,详见后面的示例)。

格式:hostname newhostname

使用示例

示例一 显示主机名

[root@jfht ~]# hostname 
jfht
[root@jfht ~]# echo $HOSTNAME 
jfht
[root@jfht ~]# grep jfht /etc/hosts 
127.0.0.1               jfht localhost.localdomain localhost

注:这台机器的hosts设置有些问题的,应该另开一行设置ip fqdn hostname,比如192.168.1.191  jfht.xyz.com jfht。

[root@jfht ~]# hostname -i 
127.0.0.1       <== 由于/etc/hosts文件设置不够合理,所以显示回环地址(loopback 127.0.0.1) 。

[root@jfht ~]# hostname -f 
jfht               <== 由于/etc/hosts文件中没有设置FQDN,所以无法显示fqdn。 
[root@jfht ~]# grep jfht /etc/sysconfig/network 
HOSTNAME=jfht

[root@jfht ~]# cat /proc/sys/kernel/hostname 
jfht
[root@jfht ~]#

示例二 修改主机名

现在演示一下将原来的主机名rhel55改成new55,并增加FQDN设置。

[root@rhel55 ~]# hostname 
rhel55
[root@rhel55 ~]# hostname -i 
127.0.0.1
[root@rhel55 ~]# hostname -f 
rhel55
[root@rhel55 ~]# hostname new55 
[root@rhel55 ~]# echo $HOSTNAME 
rhel55
[root@rhel55 ~]# hostname 
new55
[root@rhel55 ~]# vi /etc/hosts

打开/etc/hosts,将

127.0.0.1               rhel55 localhost.localdomain localhost

改为

127.0.0.1               localhost.localdomain localhost

并增加一行

192.168.6.55            new55.somedomain.com  new55

[root@rhel55 ~]# vi /etc/sysconfig/network

HOSTNAME=rhel55

改成

HOSTNAME=new55

现在退出当前shell重新登录看看。

[root@rhel55 ~]# exit 
logout

Last login: Sat Nov  6 17:00:08 2010 from 192.168.6.106
[root@new55 ~]# echo $HOSTNAME 
new55
[root@new55 ~]# hostname 
new55
[root@new55 ~]# hostname -i 
192.168.6.55
[root@new55 ~]# hostname -f 
new55.somedomain.com
[root@new55 ~]#

重启一下Linux,然后再登录,可以看到主机名修改生效了。 
[root@new55 ~]# reboot

Last login: Sat Nov  6 17:10:08 2010 from 192.168.6.106
[root@new55 ~]# echo $HOSTNAME 
new55
[root@new55 ~]# hostname 
new55
[root@new55 ~]# hostname -i 
192.168.6.55
[root@new55 ~]# hostname -f 
new55.somedomain.com
[root@new55 ~]#

在此,总结一下修改主机名的方法:

1. 停止与主机名相关的软件运行,比如mysql。

2. 先使用 hostname newname 设置主机名。

3. 在/etc/hosts中修改或增加 ip fqdn newname 行,并检查原来127.0.0.1行的设置。

4. 在/etc/sysconfig/network中修改HOSTNAME=newname。

5. 重新启动机器并确认是否修改成功。

问题思考

相关资料

【1】cnblogs [Linux.Bash] 几个关于host name的配置文件和命令

【2】互动百科 FQDN

【3】百度空间 linux如何修改hostname(zz)

【4】LinuxSir.Org Linux操作系统主机名(hostname)简说(v0.1b)

【5】ChinaUnix 怎样修改Linux的hostname

【6】robinwu的日志 Redhat Linux 修改主机名(HOSTNAME)

返回 我使用过的Linux命令系列总目录

Linux命令之hostname - 显示或设置主机名的更多相关文章

  1. 如何在Linux中显示和设置主机名

    原文链接 随着连接到网络的计算机数量越来越多,每一台计算机都需要有一个属性来区别于其它计算机.和现实世界中的人一样,计算机也有一个叫做hostname(主机名)的属性. 什么是hostname 从它的 ...

  2. 如何在Linux中显示和设置主机名(适用ubantu、centos等版本)

    随着连接到网络的计算机数量越来越多,每一台计算机都需要有一个属性来区别于其它计算机.和现实世界中的人一样,计算机也有一个叫做hostname(主机名)的属性. 什么是hostname 从它的操作手册来 ...

  3. hostname - 显示或设置系统的主机名

    NAME(名称) hostname - 显示或设置系统的主机名 domainname - 显示或设置系统的NIS/YP域名 dnsdomainname - 显示系统的DNS域名 nisdomainna ...

  4. Linux CentOS下shell显示-bash-4.1$ 不显示用户名和主机名的解决方法

    CentOS下新增加一个用户,登录进去会发现shell脚本信息没有显示用户名和主机名,反而显示的是-bash-4.1$,如图所示: 而不是我们经常看到的username@hostname$的组合,看起 ...

  5. linux查看与设置主机名

    1.设置主机名    通过编辑/etc/sysconfig/network文件中的HOSTNAME字段就可以修改主机名.如下所示:     [root@zijuan /]# vim /etc/sysc ...

  6. linux 查看和设置主机名

    1.设置主机名 通过编辑/etc/sysconfig/network文件中的HOSTNAME字段就可以修改主机名.如下所示: [root@zijuan /]# vim /etc/sysconfig/n ...

  7. Linux设置主机名与hosts映射

    目的 方便操作,便于建立Linux集群. 设置主机名 查看主机名:hostname 设置主机名,修改/etc/hosts:vim /etc/hostname 通过主机名ping通 原理 通过hosts ...

  8. 用户管理_组管理_设置主机名_UGO_文件高级权限_ACL权限

    用户管理: 添加用户:useradd tom 设置密码:passwd tom 切换账户: su - tom (不加-也能切换,但是 -会有两点不同 1.有-会切换到该用户的主目录  2.会切换到该用户 ...

  9. 关闭防火墙和设置主机名和ip及克隆机网卡处理方法

    关闭防火墙: service NetworkManager stop --图形化用ifconfig之前先关掉网络服务. chkconfig NetworkManager off (将开机自启动关掉,使 ...

随机推荐

  1. iOS笔记之常用工具

    CocoaPods: 类库管理工具,使用教程见http://www.devtang.com/blog/2014/05/25/use-cocoapod-to-manage-ios-lib-depende ...

  2. 【LeetCode 28_字符串_匹配】Implement strStr()

    解法一:Brute-force int strStr(string haystack, string needle) { int m = haystack.size(); int n = needle ...

  3. Error:java: Compilation failed: internal java compiler error(转)

    set中java complier 设置的问题  ,项目中有人用jdk1.6  有人用jdk1.7  版本不一样  会一起这个错误 进行如下操作: 原文链接:http://blog.csdn.net/ ...

  4. 利用Appium Python测试爱壁纸的登录和设置壁纸

    设置壁纸: #coding:utf-8 #Import the common package import os import unittest from appium import webdrive ...

  5. c# 字符串验证(邮箱、电话、数字、ip、身份证等)

    using System; using System.Text.RegularExpressions; namespace HuaTong.General.Utility { /// <summ ...

  6. TotoiseSVN的使用方法

    详细教程 https://www.jianshu.com/p/6b3b7b915332 SVN提交修改 https://jingyan.baidu.com/article/6c67b1d6f524d5 ...

  7. Gcov 详解 + 内核函数覆盖率测试方法详述及产生错误解决办法

    http://blog.csdn.net/wangyezi19930928/article/details/42638345 http://www.uml.org.cn/Test/201208311. ...

  8. iOS开发之解决WebView自适应内容高度

    这段时间写的项目中,有涉及到根据后端上传的表单内容,然后在移动端将内容排版重新展示的功能点,所以小小的写一下解决办法. 首先如果直接进行内容展示,或者进行sizeToFit的操作,那么可能会造成图片超 ...

  9. [interview]螺旋队列问题

    摘要 本文主要讲解三种螺旋队列的实现方式和打印输出: 从中心往外端顺时针旋转,记为『外螺旋队列』 从左顶点开始,绕剩下的最大圈顺时针往内旋转,记为『内螺旋队列』 从左顶点开始,之字形旋转(只能同行同列 ...

  10. js之隔行换色

    HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <ti ...