Linux终端更改提示符

打开~/.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

(这个网站可谓是学习shell的理想场所,讲解全面而又清晰有层次)

转义字符必须放在\[和\]之间,这个规则只适用于定义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"

 

 

你可能感兴趣的:(Linux终端更改提示符)