Centos 7 终端显示IP

背景

在需要维护多台服务器的情况下,切来切去,一会就不知道自己在哪台主机上了,如果能在终端显示IP,会有一种强烈的安全感。

设置后的模样:

《Centos 7 终端显示IP》 console.png

提示符格式

PS1是Linux终端用户的一个环境变量,用来说明命令行提示符的设置。

PS1参数含义

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

提示符颜色

PS1中设置字符颜色的格式为:[\e[F;Bm],其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47

F  B
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色

设置主机名

假如没有主机名的情况下,设置下主机名,比如开发环境主机1

hostnamectl set-hostname dev1.localdomain

对所有用户生效

只需将下面命令中的~/.bashrc换为/etc/profile

单网卡

tee -a ~/.bashrc << 'EOF'
IP=$(ip addr | grep -w "inet" | grep -v "127.0.0.1" | awk '{ print $2; }' | sed 's/\/.*$//')
export PS1="[\u@\h(\[\e[32m\]$IP\[\e[m\]) \W]\\$"
EOF

多网卡

多网卡的情况下,想显示哪个网卡的IP,将下面命令中的eth0换成对应的网卡名即可

tee -a ~/.bashrc << 'EOF'
IP=$(ip addr show eth0 | grep -w "inet" | awk '{ print $2; }' | sed 's/\/.*$//')
export PS1="[\u@\h(\[\e[32m\]$IP\[\e[m\]) \W]\\$"
EOF

生效

source ~/.bashrc

    原文作者:Hanson1330
    原文地址: https://www.jianshu.com/p/92a0c55d8058
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞