一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 3381|回复: 2

环境变量 PS1

[复制链接]
发表于 2017-1-5 17:34 | 显示全部楼层 |阅读模式

# B  g4 `" i* N: S: J8 S# p2 R* j环境变量 PS1& Y3 j2 K# L/ z4 e9 ~! B
以 Bash shell 为例1 {+ k- o6 d0 T9 M0 v
一般默认的情况下.bashrc里面应该是:
( _* Q' x/ I) u4 b    ~/.bashrc
2 c+ b' @) m2 r# r) O1 ^& F' a$ f     export    PS1=' \u@\h:\w\$ '
  J$ G1 |) h: Y, @3 S3 N     上面的意思是:用户@主机:当前目录 $# `2 ^# v4 d9 B! x; `; B- o
转义序列
% s4 O) z' Q+ ^( s2 L7 m    要是通过彩色化提示符来增加个性化,就要用到转义序列。 转义序列就是一个让 shell 执行一个特殊步骤的控制指令。 转义序列通常都是以 ESC 开头(这也是它的命名原因)。 在 shell 里表示为 ^[ .这种表示法需要一点时间去适应, 也可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27,等于用八进制表示的 033), S) q0 N' V" Q; ~1 ~% H, s9 H
代码:
1 [* }4 S8 t! b8 t5 X, ^6 ]        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 \]"
5 V; l) [! |& d  j最外边的"\[    \]"是为了把转义序列的字符串括起来,防止转义序列的文本显示在 shell 里占用太多的空间。
5 L3 {  M. z0 u6 `\033 声明了转义序列的开始,然后是 [ 开始定义颜色。 后面的 0 定义了默认的字体宽度,接着的中间的数字定义字符颜色。最后面的数字定义了字符背景色。字母m是定义本身所必须的,字母m后面的字符就是你想改变的字符了。, B' w9 u) w$ S
可选颜色:红色、绿色、黄色、蓝色、洋红、青色和白色。 他们对应的颜色代码是:30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)。1 \" H8 Z5 n, Q& Z3 r: E3 y
用同样色方法设置背景色,不过要把第一个数字“3”替换成“4”, 例如 40、41、42、43、44、45、46、47。
" i7 ^$ h9 [7 {; J/ C  G: t比如上面我的定义中: 最后显示的结果是在$号之前的字符全部用一个浅绿色的中括弧扩起来。$字符 显示为红色。后面的输入显示为高亮浅绿色。在括弧里面,用户名@主机显示为深绿色,路径显示为洋红。
  j  x1 v8 x/ ?! f用代码解释:
( L  F! a% z  A+ ]) Q8 p' APs1 ="\[                                                  -------------> 最外面的括弧
& g1 @4 t' [6 m+ R- I                 \033[1;32;40m[
. d2 n7 Y' U4 `- f/ C7 _                                               ----> 定义最右边的" [ " ;1:字体宽度,好像有加亮功能。
) U' [7 E" `! }/ Q                                                                                              32:字符颜色。32表示绿色。
9 j6 w. `+ p% b, f+ Q" N! }                                                                                              40:背景色,40表示黑色。4 D' I: S6 ^: {6 D
                \033[0;32;40m\u@\h:
6 Q0 _. X; h5 F- w' B                                                --------->定义右边的 \u@\h:  这几个字符颜色。
7 g  V) k& W$ Z( Q* e% i                                                                                            0: 默认字体宽度。
6 K1 Q: d% N* o: @                                                                                             32:字符颜色。绿色。" e1 B) M' {: g& d7 G
                                                                                             40:  背景颜色。黑色。
2 ~0 g  O0 q0 f, ~# q8 F. t                   \033[1;35;40m\w
, F$ E7 [4 S7 {8 ]7 A0 ?- b1 \/ @                                                  ---------> 定义右边的 \w  (路径颜色) 。+ x. @5 V9 b" T) x* p  h, {/ N
                                                                                             1:字符宽度。加亮。
  V. N! ]2 f- F. \; U; X+ {                                                                                             35:字符颜色。洋红。
9 T0 d+ W$ m, X* y) Z7 i; C                                                                                             40:背景色。黑色。
7 @) Y+ W' P, H0 o# }                     \033[1;32;40m]& i6 L9 V8 [% j' ^5 t2 G
                                                  ---------> 定义右边的  ]  字符。跟前面的   [   字符使用同一效果。
) z6 Y2 C4 I# l- W" G: O                     \033[1;31;40m\$  L- ]8 b) ]  }  i
                                                   ---------> 定义了  $  字符 为红色。转义字符,所以前面加了 \ .8 s- e5 w8 L! f; i
                                                                       颜色都跟前面差不多。相信大家都发现规律了。
# g# t- z* V! G2 ]% K+ q6 r                      \033[1;32;40m$ v6 e; k% F: h3 y% D* p6 @
                                                  ----------> 这个定义了你在命令行要输入命令显示的颜色。* R/ Z1 w; a) W4 e* _3 n
                       \]"7 }0 k7 ?# }( L1 ~
                                                  -----------> 字符串结束括弧。) R1 u6 u7 m9 N* A) f6 u, U
这个就是上面例子的详细定义内容。# C. r! t* L! G' G2 J3 ^
其 实我的是没有关闭颜色转义序列,让自己输入的字符也改变颜色,整天看这黑白屏幕不爽哇!!如果不想改变输入颜色的话,用 \033[0m 关闭转义序列, \033[0m 是 shell 的默认颜色。按照上面的例子来说就是在 \]" 前面加上 \033[0m 即可。
) v- Z3 [; a6 C: c' X/ b够简单吧?0 F9 O; o4 f7 I$ j
看看root下的shell:
4 W1 N. }% `" N% u; W) R# s# arootshowG: i8 R2 }( L4 J
这个也不错,是 Nico Golde的:) N8 y, t1 |% [  L# G9 ~2 R: l
PS1="\[\033[0;37;44m\u@\033[0;32;43m\h:\033[0;33;41m\w$\033[0m\]"& J9 X' K& m2 E; ^* D5 {/ g4 n! ~
( q8 n: u( l4 P8 U$ H$ H9 r
发表于 2017-1-5 20:09 | 显示全部楼层
用linux的,一般不会搞得那么复杂
回复

使用道具 举报

 楼主| 发表于 2017-1-5 23:30 | 显示全部楼层
devcang 发表于 2017-1-5 20:09. i: Y+ T! L0 @; K9 k* `, z
用linux的,一般不会搞得那么复杂
/ l$ o' L. H) ]. {' l. ?
没关系有兴趣的可以多了解一下1 F+ h! B" Y- Y4 v5 O$ M! X; ^. l
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-8-20 08:58 , Processed in 0.035827 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表