标签:
打开~/.bashrc可以看到命令提示的内容为:\u@\h\w\$
\u表示用户名,\h表示主机名,\w表示当前目录,\$表示命令提示符(普通用户$,超级用户#)
这个命令提示符有点长,很碍事,\u@\h是可以删除的,只显示\w\$就很好
改为:PS1=‘\[\033[1;3;32m\]\w\[\033[31m\]\$\[\033[0m\]‘
如果改为PS1=‘\033[1;3;32m\]\w\033[31m\]\$\033[0m\]‘,系统会错误的理解这个字符串的长度,导致系统对光标的位置理解错误,就会出现长命令回到行首的情形.下面这个链接对这个问题讲的格外清楚http://mywiki.wooledge.org/BashFAQ/053#CA-3f52bac3b5ad40d98d0fa76a95be9049141bfced_5
转义字符必须放在\[和\]之间,这个规则只适用于定义PS1时.若在其他地方,要把转义序列放在\001和\002之间.
关于颜色转义,运行一下下面这个脚本便全知道了
#!/bin/bash
cat << haha
You can write like this :
\033[one;two;three m
This is called ansi color.
"echo -e " you can use escapes !
for more infomation ,try "man echo"
haha
#character attributes
a=(normal 0
bold 1
dim 2
italic 3
under 4
blink 5
six 6
revert 7
conceal 8
delete 9
)
#forecolor
b=(
black 30
red 31
green 32
yellow 33
blue 34
magenta 35
cyan 36
white 37
)
#backcolor
c=(
black 40
red 41
green 42
yellow 43
blue 44
magenta 45
cyan 46
white 47
)
function show(){
while test $# -gt 0;do
echo -e "\033[${2}m weidiao\033[0m $1 $2" | column -t
shift 2
done
}
show ${a[*]}
echo ===============fore color ======================
show ${b[*]}
echo ================back color ====================
show ${c[*]}
echo ================random ========================
echo -e "\033[${b[3]};${c[1]}m weidiao is great\033[0m"
标签:
原文地址:http://www.cnblogs.com/weidiao/p/5047666.html