新建用户不显示IP和机器名

CentOS下新增加一个用户,登录进去会发现shell脚本信息没有显示用户名和主机名,反而显示的是user1@202.173.1.12

解决方案:
1.在新建用户的~目录下新建或者更改.bash_profile;这个过程中可能需要root用户来新建或者修改
2.在.bash_profile中添加以下内容:
ip=`/sbin/ifconfig|egrep -A 1 'eth0\s|eth1\s'| grep inet| awk '{print $2}' | sed -e 's/addr://' |grep -v '127.0.0.1'| grep -v '0.0.0.0'| awk '{printf("<%s>", $1)}'`
export PS1="\[\033[0;33m\]\u@$ip \[\033[0;34m\] \w $?:\[\033[00m\] "

 ==================以下是详细解说   环境变量PS1================================================

=============================================================================================

linux下环境变量PS1简单来说就是设置命令提示符显示的内容,如下:

root@10.1.1.200:~#

PS1变量中提示符各项含义:

\d :代表日期,格式为weekday month date,例如:Wed Dec 12
\H :完整的主机名称。例如:hostname是debian.linux
\h :仅取主机的第一个名字,如上例,则为debian,.linux则被省略
\t :显示时间为24小时格式,如:HH:MM:SS
\T :显示时间为12小时格式
\A :显示时间为24小时格式:HH:MM
\u :当前用户的账号名称 如:root
\v :BASH的版本信息  如:3.2
\w :完整的工作目录名称。家目录会以 ~代替 如显示/etc/default/
\W :利用basename取得工作目录名称,所以只会列出最后一个目录 如上例则只显示default
\# :下达的第几个命令
\$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$

 

但是发现命令提示都是一种颜色,这里可以通过设置PS1变量使得提示符变成彩色,在PS1中设置字符序列颜色的格式为:\[\e[F;Bm\] 其中“F”为字体颜色,编号30~37;“B”为背景色,编号40~47。取消设置:\[\e[0m\]

每种字体颜色对应的代码:

重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35.青色=36,白色=37


\e[1;31m设为红色,\e[0m颜色重置。只需将31替换成想要的颜色码就可以了

要打印彩色背景对应的代码:

重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45.青色=46,白色=47

B代码     意义

0      OFF
1      高亮显示    (常用)
4      underline            
7      反白显示

8      不可见

 

下面是将PS1变量提示符变成彩色

root@10.1.1.200:opt#PS1='${debian_chroot:+($debian_chroot)}\[\e[01;32m\]\u\[\e[00m\]@\[\e[01;31m\]$ip\[\e[00m\]:\[\e[01;34m\]\W\[\e[00m\]\$'
root@10.1.1.200:opt#

记得写入在.bashrc文件中,这样每次开机都能看到。

 

posted on 2016-12-02 14:22  网络终结者  阅读(5310)  评论(0编辑  收藏  举报