`

Linux hostname命令详解

 
阅读更多

原文地址:http://blog.csdn.net/qhairen/article/details/45913465

1、查看本机的hostname

#hostname

 

2、修改本机的hostname

#hostname newname


运行后立即生效(重新启动shell),但是在系统重启后会丢失所做的修改,如果要永久更改系统的hostname,就要修改相关的配置置文件。

RedHat的hostname,就修改/etc/sysconfig/network文件,将里面的HOSTNAME这一行修改成HOSTNAME=NEWNAME,其中NEWNAME就是你要设置的hostname。
Debian发行版的hostname的配置文件是/etc/hostname。
修该配置文件后,重启系统就会读取配置文件设置新的hostname。

hostname与/etc/hosts的关系
很多人人一提到更改hostname首先就想到修改/etc/hosts文件,认为hostname的配置文件就是/etc/hosts。其实不是的。
hosts文件的作用相当如DNS,提供IP地址到hostname的对应。早期的互联网计算机少,单机hosts文件里足够存放所有联网计算机。不过随着互联网的发展,这就远远不够了。于是就出现了分布式的DNS系统。由DNS服务器来提供类似的IP地址到域名的对应。具体可以man hosts。
Linux系统在向DNS服务器发出域名解析请求之前会查询/etc/hosts文件,如果里面有相应的记录,就会使用hosts里面的记录。

 

 

Linux中和hostname相关的有几个:
1.       系统中有HOSTNAME环境变量, 用命令echo $HOSTNAME会把hostname (主机名)显示出来
2.       还有一个hostname命令: 它有几个功能:
a)         查询主机名:
                        i.              hostname //显示主机名短格式,比如localhost;
                       ii.              hostname -f //显示主机名的长格式,带域名,比如:localhost.localdomain
                      iii.              hostname –d //显示域名,比如localdomain iv>. hostname –I //显示主机名对应的IP地址
                       iv.              hostname –a //显示主机别名(alias),和hostname的输出结果一样, 比如localhost
                       v.              hostname –s //显示主机名的短格式,也就是从左边第一逗点前面部分,比如                     localhost.localdomain逗点前面就是localhost
b)         设置主机名: 用命令设置的主机名是暂时的,系统重新启动后,设置的主机名就会遗失。
                         i.              hostname newname //设置主机名为newname
3.       永久修改hostname
用hostname修改的hostname是暂时的,如果想永久的修改hostname, 则必须修改相应的配置文件。
 
man hostname里有这么一句话,”The host name is usually set once at system startup in /etc/rc.d/rc.inet1 or /etc/init.d/boot (normally by reading the contents of a file which contains the host name, e.g. /etc/hostname).”. CentOS中没有这句话举例说的hostname文件,而是由/etc/rc.d/rc.sysinit这个脚本负责设置系统的hostname,它读取/etc /sysconfig/network这个文本文件,RedHat的hostname就是在这个文件里设置。
 
暂时放下/etc/sysconfig/network配置方法,先了解不带参数的hostname和hostname -a –d –f, -i的区别: hostname是调用gethostname(2)函数,而hostname -a –d –f, -i 命令是调用gethostbyname(3)函数;gethostname(2)和gethostbyname(3)的区别就是gethostbyname(3)的网络可知性,因此gethostbyname(3)函数需要询问/etc/nsswitch.conf和/etc/host.conf文件来决定是从/etc/sysconfig/network配置文件里,还是从/etc/hosts配置文件里读取信息。
 
因此配置hostname有两个配置文件:
1、  /etc/sysconfig/network:没有/etc/hosts的功能只是提供一个主机名
功能介绍: 没有/etc/hosts的功能只是提供一个主机名, 它里面的hostname被/etc/rc.d/rc.sysinit读取
配置方法: 用vim打开network文件,更改HOSTNAME=NEWNAME; 这样hostname名就被改为newname了

2、/etc/hosts:
它和网络相关的,相当于DNS,提供IP地址到hostname的对应
配置方法: 用vim打开hosts文件,它的配置格式是: IP FQDN alias, 比如192.168.1.1 localhost.localdomain localhost,其中IP=192.168.1.1, FQDN=localhost.localdomain, alias=localhost
 
注意: 一定要让配置文件network中的hostname和hosts中的alias以及FQDN的第一部分一致,否则hostname -a -f -d -i命令不能正常工作。
 
令:遇到问题,在debian系统中更改/etc/hosts和/etc/hostname文件后,使用 uname -n或uname-a
命令查看还是原来的主机名称,此时需要执行/etc/init.d/hostname.sh stop; sudo /etc/init.d/hostname.sh start;hostname才能生效。
分享到:
评论

相关推荐

    Linux中hostname修改方法详解

    通过hostname命令可以设置系统的hostname # hostname newname newname即要设置的新的hostname,运行后立即生效,但在系统重启后会丢失所做的修改。 永久修改hostname 永久更改系统的hostname需要要修改相关的设置...

    linux dig命令详解

    ### Linux dig 命令详解:深入理解 DNS 查询利器 #### 概述 在 Linux 系统中,`dig`(Domain Information Groper)是一个功能强大的工具,用于查询域名系统(DNS)。它允许用户深入了解 DNS 的工作原理,帮助诊断...

    linux lsof命令详解.docx

    ### Linux lsof 命令详解 #### 一、概述 `lsof`(list open files)是一个强大的命令行工具,用于显示当前系统中所有打开的文件、网络连接和设备的情况。在Linux环境中,几乎所有东西都可以被视为文件,包括常规...

    Linux常用命令详解.rar

    本资料“Linux常用命令详解.rar”聚焦于这一主题,旨在帮助用户掌握常用的Linux命令,从而更加熟练地使用Linux系统。 1. **ls**:用于列出目录中的文件和子目录。通过添加不同参数,如`-l`(长格式显示)、`-a`...

    ftp命令详解--linux/unix

    1. `ftp [-v -d -i -n -g] [hostname]`:这是启动FTP客户端的基本命令,`hostname`是目标服务器的地址。`-v`表示启用详细输出,显示命令交互过程;`-d`开启调试模式,显示更多内部操作;`-i`禁止输入文件名时自动...

    linux_下的dig_命令详解

    ### Linux下的dig命令详解 #### 概述 `dig`(Domain Information Groper,域信息搜索器)是一款功能强大的DNS查询工具,在Unix和Linux系统中广泛使用。它可以帮助用户了解DNS解析过程,诊断DNS相关的问题,并获取...

    Linux tcpdump命令详解.docx

    Linux中的tcpdump是一个强大的网络数据包分析工具,用于在网络层截取并分析数据包。它的功能在于根据用户设定的规则捕获网络流量,提供详细的信息以帮助诊断网络问题、监控网络活动或进行安全审计。tcpdump支持多种...

    Linux常用命令大全.zip

    内含Linux常用必会60+个命令实例以及详解。 Linux提供了大量的命令,利用它可以有效地完成大量的工作, 如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。 所以,在Linux系统上工作离不开使用系统提供的...

    Linux命令lsof详解

    ### Linux命令lsof详解 #### 一、lsof命令简介 `lsof` 命令在Linux系统中扮演着极其重要的角色,它主要用于列出当前系统中所有已经打开的文件。这些文件可以是普通文件、设备文件、目录、套接字等。对于系统管理员...

    Linux基础学习命令详解

    以下是关于"Linux基础学习命令详解"的一些关键知识点: 1. **目录结构**: - `/`(根目录):所有其他目录的起点。 - `/bin`:存放常用命令的二进制文件,对所有用户都可访问。 - `/boot`:存储系统启动所需文件...

    linux系统命令及其详解

    本资料“Linux系统命令及其详解”详细介绍了Linux环境中常用的各种命令,帮助用户更高效地操作Linux系统。 1. **ls**:用于列出目录中的文件和子目录。通过参数 `-l` 可以显示详细信息,如权限、大小、修改时间等;...

    linux TAR命令参数详解

    Linux TAR命令参数详解 Linux TAR命令是Linux系统中的一种归档工具,用于将文件或目录归档到一个单独的文件中,以便于存储和传输。TAR命令的参数众多,本文将对TAR命令的参数进行详细的解释。 基本参数 * -A, --...

    Linux操作实验-初步了解Linux的命令格式

    ### Linux操作实验知识点详解 #### 一、Linux命令格式及组成部分 **实验目的:** - 初步了解Linux命令的基本格式及其组成部分。 **知识点:** - **Linux命令行语法结构:** - `$ command [ [-] option(s) ] [ ...

    Linux系统基础命令详细介绍.pdf

    Linux命令是用于控制和配置Linux系统、管理文件、执行程序和进行网络通信等操作的指令集。在Linux系统中,命令行工具非常强大且灵活,每一个命令都具有特定的功能,且往往可以通过各种选项来调整其行为。 ### 查看...

    Linux tcpdump命令详解大全

    ### Linux tcpdump命令详解 #### 一、简介 tcpdump是一款功能强大的网络数据包抓取工具,主要用于在Linux系统上捕获和分析网络流量。它能够根据用户设定的过滤条件来截取网络上的数据包,并对其进行详细的分析。该...

    Linux 系统命令及其使用详解

    Linux的核心在于其强大的命令行界面,通过各种各样的命令,用户可以高效地管理文件、进程、网络等。本篇文章将深入探讨Linux系统中的常见命令及其使用方法。 1. **ls**:列出目录内容。`ls`命令用于查看当前目录下...

    Linux last命令用法详解

    Linux last命令 Linux last 命令用于显示用户最近登录信息。 使用权限:所有使用者。 语法shell>> last [options] 参数说明: -R 省略 hostname 的栏位 -num 展示前 num 个 username 展示 username 的登入讯息 tty ...

    Linux查看命令和快捷键.docx

    * 查看主机名称:使用hostname命令可以查看主机的完整名称,包括主机名称和所在域的名称。 * 查看IP地址:使用ifconfig命令可以查看第一块网卡的IP地址和MAC地址。 二、查看CPU和内存 * 查看CPU信息:使用cat /...

Global site tag (gtag.js) - Google Analytics