一乐电子

一乐电子百科

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

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 2127|回复: 2
收起左侧

环境变量 PS1

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

% X& Y# u; P6 O7 B6 h1 }( G环境变量 PS1! g9 u4 R9 E4 X4 p
以 Bash shell 为例
( c* ?- R8 b1 o4 S, G& ~2 r一般默认的情况下.bashrc里面应该是:
* j9 ]% V" }3 v4 l    ~/.bashrc
. n. A  O5 Z1 F; L4 u1 H& M' Q     export    PS1=' \u@\h:\w\$ '2 G8 l3 }9 s% K
     上面的意思是:用户@主机:当前目录 $
2 S4 U% ~9 {/ a* }转义序列# L; _5 c6 ]- _% u
    要是通过彩色化提示符来增加个性化,就要用到转义序列。 转义序列就是一个让 shell 执行一个特殊步骤的控制指令。 转义序列通常都是以 ESC 开头(这也是它的命名原因)。 在 shell 里表示为 ^[ .这种表示法需要一点时间去适应, 也可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27,等于用八进制表示的 033)% Q) a2 s+ M8 p$ R* B& S. a
代码:
; p% W7 A5 {. v" W        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 \]"
  X  J, m  |- l8 v( y9 I/ a/ ?最外边的"\[    \]"是为了把转义序列的字符串括起来,防止转义序列的文本显示在 shell 里占用太多的空间。
1 C0 d' D% q; v: q\033 声明了转义序列的开始,然后是 [ 开始定义颜色。 后面的 0 定义了默认的字体宽度,接着的中间的数字定义字符颜色。最后面的数字定义了字符背景色。字母m是定义本身所必须的,字母m后面的字符就是你想改变的字符了。/ U$ o7 R$ p* {
可选颜色:红色、绿色、黄色、蓝色、洋红、青色和白色。 他们对应的颜色代码是:30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)。
9 D! \6 ~& Q. S4 n7 x! \用同样色方法设置背景色,不过要把第一个数字“3”替换成“4”, 例如 40、41、42、43、44、45、46、47。/ x' V7 ?1 Y: o* \
比如上面我的定义中: 最后显示的结果是在$号之前的字符全部用一个浅绿色的中括弧扩起来。$字符 显示为红色。后面的输入显示为高亮浅绿色。在括弧里面,用户名@主机显示为深绿色,路径显示为洋红。7 ]% N: Q- L5 B$ s1 d0 X
用代码解释:
: x. M7 U% p& m7 |; R' kPs1 ="\[                                                  -------------> 最外面的括弧
0 ~+ z" k% g& C3 b, i                 \033[1;32;40m[
) y- C& {" Q( k2 w                                               ----> 定义最右边的" [ " ;1:字体宽度,好像有加亮功能。
& b' S5 F  b0 \( z) ^. R# j. ?                                                                                              32:字符颜色。32表示绿色。  v' Q! U$ t3 C6 g0 ?8 [3 O9 \. B1 x
                                                                                              40:背景色,40表示黑色。
! F; f0 z' Z+ M' w8 [6 w2 a$ R6 M/ P                \033[0;32;40m\u@\h:
4 s7 K! x7 w/ V! ^3 D/ h7 P                                                --------->定义右边的 \u@\h:  这几个字符颜色。
6 n+ Q) ^3 c, L9 R& n+ @                                                                                            0: 默认字体宽度。1 c; H7 U$ R: M2 Y: X3 `
                                                                                             32:字符颜色。绿色。
( [7 o% w' f4 W- r- ?) ]                                                                                             40:  背景颜色。黑色。
" |5 k0 S0 @# E2 B4 j4 F1 T                   \033[1;35;40m\w
0 f0 a- D3 g9 I" |( p) I, l                                                  ---------> 定义右边的 \w  (路径颜色) 。8 m; h. {/ v! w9 S+ o) I
                                                                                             1:字符宽度。加亮。
4 c/ ~! e7 D# \7 x% l& `- N                                                                                             35:字符颜色。洋红。
) G, n7 j) N8 D% @! h" v, M2 h; U- ]                                                                                             40:背景色。黑色。( }8 k; n% f2 ~1 d
                     \033[1;32;40m]8 k+ e( j3 g  P6 Y3 e2 w9 L
                                                  ---------> 定义右边的  ]  字符。跟前面的   [   字符使用同一效果。/ Y& Z0 g1 ], Z. A
                     \033[1;31;40m\$1 j" L' y" }( t& f$ X6 O1 o
                                                   ---------> 定义了  $  字符 为红色。转义字符,所以前面加了 \ .+ s. Y6 F6 p( G! j/ R! y7 f
                                                                       颜色都跟前面差不多。相信大家都发现规律了。
: E! U5 h2 X# p  D. n1 }' O4 T( u. E8 Y                      \033[1;32;40m
) _7 j4 @6 ~% B+ C* X                                                  ----------> 这个定义了你在命令行要输入命令显示的颜色。
. ^9 ^. w) {4 D. s. i2 X. C/ b- B                       \]"8 T" y! M; D& J" G0 \
                                                  -----------> 字符串结束括弧。' |6 ~8 j6 f* q! ~% }
这个就是上面例子的详细定义内容。3 ]' l( `3 Y4 s4 t! a& ]
其 实我的是没有关闭颜色转义序列,让自己输入的字符也改变颜色,整天看这黑白屏幕不爽哇!!如果不想改变输入颜色的话,用 \033[0m 关闭转义序列, \033[0m 是 shell 的默认颜色。按照上面的例子来说就是在 \]" 前面加上 \033[0m 即可。: t4 G: o. _. C) |. v
够简单吧?
' a  L4 ^5 p/ W" s看看root下的shell:5 e$ b8 A# k  e' j( H
rootshowG
8 t! \9 p4 O2 L5 Q7 O这个也不错,是 Nico Golde的:  x$ {: [3 u1 I6 F5 J
PS1="\[\033[0;37;44m\u@\033[0;32;43m\h:\033[0;33;41m\w$\033[0m\]"* A1 {' U! O7 N! H) s$ n8 @* r

$ y- J$ c: {6 [8 A; `
发表于 2017-1-5 20:09 | 显示全部楼层
用linux的,一般不会搞得那么复杂
 楼主| 发表于 2017-1-5 23:30 | 显示全部楼层
devcang 发表于 2017-1-5 20:09
0 K+ n+ I" a" I- D: H2 h  q) J用linux的,一般不会搞得那么复杂

4 Z: E) U) V* z$ P3 D. T% `, l; W没关系有兴趣的可以多了解一下
7 \4 b& @! |* }& U

本版积分规则

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

GMT+8, 2024-4-27 02:39 , Processed in 0.051436 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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