查看当前PS1
echo PS1
测试方法:
-e 允许对下面列出的加反斜线转义的字符进行解释.
echo -e "\033[41;36m something here \033[0m"
使用方法:
# PS1='自定义内容'
注意两边的单引号
示例: PS1='(\u@\H \d \t)\$'
默认的特殊符号所代表的意义:
\d :代表日期,格式为weekday month date,例如:"Mon Aug 1"
\H :完整的主机名称。例如:我的机器名称为:fc4. linux,则这个名称就是fc4. linux
\h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
\t :显示时间为24小时格式,如:HH:MM:SS
\T :显示时间为12小时格式
\A :显示时间为24小时格式:HH:MM
\u :当前用户的账号名称
\v :BASH的版本信息
\w :完整的工作目录名称。家目录会以 ~代替
\W :利用basename取得工作目录名称,所以只会列出最后一个目录
\# :下达的第几个命令
\$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$
颜色的设置
PS1中配置字符序列颜色的格式: \[\e[F;Bm\]
基本上是夹在 "\e["(转义开方括号)和 "m" 之间数字值。假如指定一个以上的数字代码,则用分号将他们分开。其中 F 为字体颜色,编号30~37; B 为背景色,编号40~47。可通过 \e[0m 关闭颜色输出;特别的,当B为1时,将显示加亮加粗的文字,请看下面的颜色表和代码表。可通过``\e[0m''关闭颜色输出;
同一色可以设置多个但,只有最后一个生效:[01;30;34m\]时,前景色为34生效
'\[\033[01;30;34m\]\W\[\033[00m\]' == '\[\e[01;30;34m\]\W\[\e[00m\]'
颜色表
前景 背景 颜色
---------------------------------------
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫色
36 46 青色
37 47 白色
代码 意义
-------------------------
0 OFF
1 高亮显示
4 underline
5 闪烁
7 反白显示
8 不可见
例子
\033与\e是同义
netdev=ens33
IP=$(ip addr show $netdev | grep -w "inet" | awk '{ print $2; }' | sed 's/\/.*$//')
psuser='\[\e[01;31m\]\u\[\e[00m\]' #用户名
psip='\[\e[01;32m\]$IP\[\e[00m\]' #本机IP
#pstime='(\[\e[01;33m\]\t\[\e[00m\]):' #时间使用"()",如果要加符号分隔其它加到表达式的前后. \[\e[F;Bm\]
pstime='[\[\e[01;33m\]\t\[\e[00m\]]:' #时间使用"[]"
psdir='\[\e[01;34m\]\W\[\e[00m\]'
psend='\$ '
function git_branch {
branch="`git branch 2>/dev/null | grep "^\*" | sed -e "s/^\*\ //"`"
if [ "${branch}" != "" ];then
if [ "${branch}" = "(no branch)" ];then
branch="(`git rev-parse --short HEAD`...)"
fi
echo "($branch)"
fi
}
psgit='\[\e[01;31m\]$(git_branch)\[\e[00m\]' #调用函数使用()
PS1=${psuser}@${psip}${pstime}${psdir}
PS1="$PS1"${psgit}
PS1="$PS1"${psend}