一乐电子

一乐电子百科

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

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

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

环境变量 PS1

[复制链接]
发表于 2017-1-5 17:34 | 显示全部楼层 |阅读模式
4 d3 ~& H! V3 |" h/ p
环境变量 PS1
7 h" z: C, ?8 U8 p$ T以 Bash shell 为例
0 Z5 R! v* o3 M; Z+ I一般默认的情况下.bashrc里面应该是:
3 t0 \: |$ L( f1 B0 r  W3 [7 B$ ^    ~/.bashrc
9 p% C2 b% J3 S6 w( x" d/ @7 n     export    PS1=' \u@\h:\w\$ '
. ~" v0 j" j+ j- Q6 y4 r     上面的意思是:用户@主机:当前目录 $
$ H7 i$ o: g, [$ E转义序列
, j5 _( _4 d7 `  D6 S& A; _    要是通过彩色化提示符来增加个性化,就要用到转义序列。 转义序列就是一个让 shell 执行一个特殊步骤的控制指令。 转义序列通常都是以 ESC 开头(这也是它的命名原因)。 在 shell 里表示为 ^[ .这种表示法需要一点时间去适应, 也可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27,等于用八进制表示的 033)
5 G9 B; e' y' q( D& V0 k& ~# g0 W代码:1 m; U) {! x/ v. c% R+ B1 w/ K! L& K
        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 \]"
4 {; V6 F* P& |3 e9 v$ q9 ~# }5 [最外边的"\[    \]"是为了把转义序列的字符串括起来,防止转义序列的文本显示在 shell 里占用太多的空间。
* k( F( C6 ~7 |6 J# |3 W, N\033 声明了转义序列的开始,然后是 [ 开始定义颜色。 后面的 0 定义了默认的字体宽度,接着的中间的数字定义字符颜色。最后面的数字定义了字符背景色。字母m是定义本身所必须的,字母m后面的字符就是你想改变的字符了。0 V. F3 F! C4 K, Y; `
可选颜色:红色、绿色、黄色、蓝色、洋红、青色和白色。 他们对应的颜色代码是:30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)。
% p& K& G( s3 w) h用同样色方法设置背景色,不过要把第一个数字“3”替换成“4”, 例如 40、41、42、43、44、45、46、47。
& [( b! f. j5 `9 R' m5 q比如上面我的定义中: 最后显示的结果是在$号之前的字符全部用一个浅绿色的中括弧扩起来。$字符 显示为红色。后面的输入显示为高亮浅绿色。在括弧里面,用户名@主机显示为深绿色,路径显示为洋红。7 x& y6 k2 b, c# ]
用代码解释:
- P0 n" l) `# j' @) d; L% _+ PPs1 ="\[                                                  -------------> 最外面的括弧
& ~# s3 b( Y- L* E8 ~6 Z                 \033[1;32;40m[) J/ \: @4 j$ m  P
                                               ----> 定义最右边的" [ " ;1:字体宽度,好像有加亮功能。
9 \3 O/ V1 {! N0 N                                                                                              32:字符颜色。32表示绿色。- y# }5 M- d$ i' F9 M6 r5 ]
                                                                                              40:背景色,40表示黑色。
1 r* L5 E$ T3 i4 E& e                \033[0;32;40m\u@\h:
5 V# i+ U% |8 t# Y; \                                                --------->定义右边的 \u@\h:  这几个字符颜色。$ s0 P) H8 f( h# U4 e( P  y4 y% E- |
                                                                                            0: 默认字体宽度。
. G6 M' w. M8 B" ~; }: V& Z                                                                                             32:字符颜色。绿色。2 R* ]5 n# t0 r8 T! j) x. ]
                                                                                             40:  背景颜色。黑色。& y. g0 w2 \! f6 }: k+ a
                   \033[1;35;40m\w
6 E. ]0 y  p! G: P( T1 E                                                  ---------> 定义右边的 \w  (路径颜色) 。: p) y; W- ?9 J0 P* U" ?: |; y
                                                                                             1:字符宽度。加亮。
6 G$ ~6 I. B" a  U) v                                                                                             35:字符颜色。洋红。* c. e4 `5 s- V- W" G
                                                                                             40:背景色。黑色。
% ^4 k* p& H  @9 d! e( {                     \033[1;32;40m]2 d6 c& J4 Z) l- F5 y& I
                                                  ---------> 定义右边的  ]  字符。跟前面的   [   字符使用同一效果。7 g1 t- s8 K' E' e0 M+ a8 F& J
                     \033[1;31;40m\$
% Z0 x% F/ F; q5 T" @3 W+ B                                                   ---------> 定义了  $  字符 为红色。转义字符,所以前面加了 \ .2 u: X+ P7 K5 |; @
                                                                       颜色都跟前面差不多。相信大家都发现规律了。
! y% `! c  r( u, P- r1 R                      \033[1;32;40m
4 Y% l- l: P, I& I                                                  ----------> 这个定义了你在命令行要输入命令显示的颜色。
$ d! e! D$ g" n- h                       \]"
! W6 y' A& Q# n                                                  -----------> 字符串结束括弧。
' ^$ o1 g8 @! S6 T这个就是上面例子的详细定义内容。/ ?: f2 P+ c! r2 x
其 实我的是没有关闭颜色转义序列,让自己输入的字符也改变颜色,整天看这黑白屏幕不爽哇!!如果不想改变输入颜色的话,用 \033[0m 关闭转义序列, \033[0m 是 shell 的默认颜色。按照上面的例子来说就是在 \]" 前面加上 \033[0m 即可。
3 U5 X$ u; n/ Q/ M! c够简单吧?
% M8 I1 Z2 I; F, q2 c! T1 I看看root下的shell:  Q% p7 J" S# V4 y1 a+ F
rootshowG/ c  Z. G0 i* P' z
这个也不错,是 Nico Golde的:) ~+ K/ k4 Z' m! U9 l* O
PS1="\[\033[0;37;44m\u@\033[0;32;43m\h:\033[0;33;41m\w$\033[0m\]"& S' ?3 n2 m0 c+ B' Q& u0 w

4 E- S' W7 o; Q3 E
发表于 2017-1-5 20:09 | 显示全部楼层
用linux的,一般不会搞得那么复杂
 楼主| 发表于 2017-1-5 23:30 | 显示全部楼层
devcang 发表于 2017-1-5 20:09: d" i$ z( x7 b. Q
用linux的,一般不会搞得那么复杂

& j3 [" T3 X9 f' x3 L没关系有兴趣的可以多了解一下
+ u& d$ G0 l: z) Y5 g* \. E# D

本版积分规则

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

GMT+8, 2024-5-18 04:26 , Processed in 0.062565 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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