关于linux的hostname

一、
hostname newname当前生效,重启失效,要想重启后生效,首先要配置/etc/sysconfig/network中的HOSTNAME变量
 
二、
系统启动时通过/etc/rc.d/rc.sysinit初始化系统环境,基中就包括主机名部分:
HOSTNAME=`/bin/hostname`//选取系统启动时加载的/etc/sysconfig/network的HOSTNAME
HOSTTYPE=`uname -m`  //本机是x86_x64
unamer=`uname -r`//内核版本
 
set -m
 
if [ -f /etc/sysconfig/network ]; then
    . /etc/sysconfig/network
fi
if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then
    HOSTNAME=localhost
fi 
 
 
注:
1、HOSTNAME默认为localhost.localdomain;如果没有在/etc/sysconfig/network配置HOSTNAME变量,则主机名默认为localhost
2、如果rc.sysinit执行完主机配置后,主机名为localhost或localhost.localdomain,则会去读取/etc/hosts中是否存在本机第一个网上装置eth0接口IP的解析配置:
如本机eth0 配置为192.168.2.101,手动改了hosts:
192.168.2.101 www.test.com
此时,系统的hostname值会改变为www.test.com;PS1提示符为www
 
3、为什么PS1提示符为www
man /bash 搜索\h关于PS1的配置帮助文档
\h     the hostname up to the first ?.?
\H     the hostname
 
[root@www ~]# echo $PS1查看变量参数
[\u@\h \W]\$