用了远程工具xshell默认黑色背景白的的字,但是输出和输入都混在一起非常不好分辨,也去网上查了线命令改色。最后试出这个在xshell中觉得比较好辨认的颜色。。。。。
先上干货后说原理:
[root@geili html]# PS1='\[\e[33;40m\][\u@\h \W]\$ \[\e[0m\]'
PS1='[\u@\[\e[32;40m\]\h \[\e[31;40m\]\w\[\e[0m\]]\$'
这个目前只是当前生效,要想永久生效的话要修改配置文件。
[root@geili /]# cd root
[root@geili ~]# ls -a
. .. anaconda-ks.cfg .bash_history .bash_logout .bash_profile .bashrc .cshrc .elinks .tcshrc
[root@geili ~]# vi .bashrc
在这文件中加上上边那一行命令。
# .bashrc
PS1='\[\e[33;40m\][\u@\h \W]\$ \[\e[0m\]'
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
然后重新加载这个配置文件
[root@geili ~]# source .bashrc
[root@geili ~]#
下面说原理,可以根据情况改成自己看着舒服的颜色。
[root@geili ~]# echo $PS1
//这个可以查看当前状态 ,以免改错不好恢复。
PS1 常用参数
\d :代表日期,格式为weekday month date,例如:"Mon Aug 1"
\H :完整的主机名称
\h :仅取主机名中的第一个名字
\t :显示时间为24小时格式,如:HH:MM:SS
\T :显示时间为12小时格式
\A :显示时间为24小时格式:HH:MM
\u :当前用户的账号名称
\v :BASH的版本信息
\w :完整的工作目录名称
\W :利用basename取得工作目录名称,只显示最后一个目录名
\# :下达的第几个命令
\$ :提示字符,如果是root用户,提示符为 # ,普通用户则为 $
所以linux默认的命令行提示信息的格式
PS1=’[\u@\h \W]$ ’ 的意思就是:[当前用户的账号名称@主机名的第一个名字 工作目录的最后一层目录名]#
在PS1中设置字符颜色的格式为:
\[\e[F;Bm\]........\[\e[0m\]
其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47, [\e[0m]作为颜色设定的结束。
颜色对照表:
F B
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色
只需将对应数字套入设置格式中即可。
以上的修改对root用户生效,换用户就没了。当然你也可以直接修改 /etc/.bashrc 这个文件,让改色对所有的用户都生效。
/root/.bashrc是root用户的家目录下的嘛,/etc/bashrc是对全局生效的。
如果想要将这个写到脚本中在最初配置时 就配置好的话要这样写
方法一:
#!/bin/bash
common="PS1='\[\e[33;40m\][\u@\h \W]\\$ \[\e[0m\]'"
echo "$common" >> /root/.bashrc
. /root/.bashrc
注意在$符号前边有2个\ \这个是转义,不知道为什么,就这个特殊,别的都正常。
最后.bashrc文件中的输出结果就是下边的。
PS1='\[\e[33;40m\][\u@\h \W]\$ \[\e[0m\]'
方法二:
PS1 可以直接就是变量的。注意这时正常写,不要多加\ \ 。
#!/bin/bash
PS1='\[\e[33;40m\][\u@\h \W]\$ \[\e[0m\]'
echo "PS1='$PS1'" >> /root/.bashrc
. /root/.bashrc
这个在.bashrc文件中的输出结果也是
PS1='\[\e[33;40m\][\u@\h \W]\$ \[\e[0m\]'
总结起来就是转义,如果直接将最前边写的PS1直接写到脚本中,会少个\,少个\语法就不对了。因为 \ $才表示用户身份。