版主
主题
回帖0
积分10609
阅读权限200
注册时间2008-11-22
最后登录1970-1-1
在线时间 小时
|
* |/ s. O0 q2 a9 J# v F环境变量 PS1& L2 ?. ^# R& N
以 Bash shell 为例' X2 L" @: s) n2 ^3 u
一般默认的情况下.bashrc里面应该是:6 Z. o& l+ H5 }# \. x
~/.bashrc: E/ k) \9 T, U9 A8 L
export PS1=' \u@\h:\w\$ '
* W8 ?7 v" h% ^ 上面的意思是:用户@主机:当前目录 $4 O9 V( d* z5 c! R) M) s) x6 r3 ^) P
转义序列
6 u" D; Y$ e4 f4 X) m$ e 要是通过彩色化提示符来增加个性化,就要用到转义序列。 转义序列就是一个让 shell 执行一个特殊步骤的控制指令。 转义序列通常都是以 ESC 开头(这也是它的命名原因)。 在 shell 里表示为 ^[ .这种表示法需要一点时间去适应, 也可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27,等于用八进制表示的 033)
; X$ u5 a' _$ R; P1 |/ U代码:* I: n; t! X1 H8 k& b, u
PS1="\[\033[1;32;40m[\033[0;32;40m\u@\h:\033[1;35;40m\w\033[1;32;40m]\033[1;31;40m\$\033[1;32;40m \]"
% z% d- D- O! A0 a9 Y最外边的"\[ \]"是为了把转义序列的字符串括起来,防止转义序列的文本显示在 shell 里占用太多的空间。
$ ~3 r# m$ Q; G8 A9 C- `: `. v* y\033 声明了转义序列的开始,然后是 [ 开始定义颜色。 后面的 0 定义了默认的字体宽度,接着的中间的数字定义字符颜色。最后面的数字定义了字符背景色。字母m是定义本身所必须的,字母m后面的字符就是你想改变的字符了。
/ u( q y8 |. D 可选颜色:红色、绿色、黄色、蓝色、洋红、青色和白色。 他们对应的颜色代码是:30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)。+ [0 P. b3 _* M# y9 D
用同样色方法设置背景色,不过要把第一个数字“3”替换成“4”, 例如 40、41、42、43、44、45、46、47。
0 ~# D3 x# Q1 n, u+ a3 q. k8 f比如上面我的定义中: 最后显示的结果是在$号之前的字符全部用一个浅绿色的中括弧扩起来。$字符 显示为红色。后面的输入显示为高亮浅绿色。在括弧里面,用户名@主机显示为深绿色,路径显示为洋红。
8 W% c7 d k2 L1 [. l用代码解释:- n9 Y: C7 v. \, n5 B$ ~$ L
Ps1 ="\[ -------------> 最外面的括弧* |9 A3 c5 C7 E: X! c
\033[1;32;40m[" V8 E6 b( p$ {
----> 定义最右边的" [ " ;1:字体宽度,好像有加亮功能。
4 \& Q2 C8 h) r- Z$ e! i. F6 r 32:字符颜色。32表示绿色。5 H, |% Z l; c9 B
40:背景色,40表示黑色。, z7 [6 T' }% ^1 f, k) @1 f
\033[0;32;40m\u@\h:4 V! V u" F G3 I
--------->定义右边的 \u@\h: 这几个字符颜色。9 R( [0 \2 m; `/ [$ ^
0: 默认字体宽度。
5 }' U2 h; [* u 32:字符颜色。绿色。
; r2 y5 I [5 U2 i 40: 背景颜色。黑色。8 }8 x6 Q8 `% L) @9 W8 L9 ^
\033[1;35;40m\w- j9 A3 j# x/ D2 j: |* c- O
---------> 定义右边的 \w (路径颜色) 。
( X1 N1 |& N5 z0 M& w 1:字符宽度。加亮。
r8 p1 O7 E% }; A7 @( g2 n 35:字符颜色。洋红。
) j4 T' j- G4 s$ @% q% h/ s0 d 40:背景色。黑色。7 e% o' z6 f/ g! i; H! V9 h
\033[1;32;40m]
$ m/ j0 A4 m4 W" X8 { ---------> 定义右边的 ] 字符。跟前面的 [ 字符使用同一效果。4 H0 |& M% O1 w; Z
\033[1;31;40m\$, p% o4 F7 @' ?+ O6 \, Z$ V
---------> 定义了 $ 字符 为红色。转义字符,所以前面加了 \ ., }0 | p8 F g6 r
颜色都跟前面差不多。相信大家都发现规律了。
0 W+ Q) b; ~" f# d3 k \033[1;32;40m
! w3 I* W" S, G& p) w% `: _ ----------> 这个定义了你在命令行要输入命令显示的颜色。- Z5 I2 p+ ]; B! G8 D
\]"8 G6 ~' G. p) y
-----------> 字符串结束括弧。
- E/ }# L3 E; }! O; E! L1 G这个就是上面例子的详细定义内容。4 d; K) C$ F' p& L" ?3 P$ v
其 实我的是没有关闭颜色转义序列,让自己输入的字符也改变颜色,整天看这黑白屏幕不爽哇!!如果不想改变输入颜色的话,用 \033[0m 关闭转义序列, \033[0m 是 shell 的默认颜色。按照上面的例子来说就是在 \]" 前面加上 \033[0m 即可。& u# Z v" H& [0 e0 L
够简单吧?2 J* V% G. ^; Y+ |" g
看看root下的shell:
' w( p8 M7 x" n, f( @# SrootshowG' J0 p3 s4 {2 d: N$ G5 ~! x
这个也不错,是 Nico Golde的:
( b. @8 V; @5 D+ b; U7 EPS1="\[\033[0;37;44m\u@\033[0;32;43m\h:\033[0;33;41m\w$\033[0m\]"
0 E7 f0 R+ b/ i# y
; P, N; ?2 m! V |
|