一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 3570|回复: 2

环境变量 PS1

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

, D; }2 h; M; D" O' D3 S) B: f环境变量 PS1
( E% M$ e, H. M- R以 Bash shell 为例
/ Z& H  \6 [) V  b( K) O一般默认的情况下.bashrc里面应该是:8 C" |; y7 W) o) s) K' ?. F1 v
    ~/.bashrc
4 j8 S# e) j! l; o- x& r1 x     export    PS1=' \u@\h:\w\$ '
  @& w- \; ]& Q1 ^! R     上面的意思是:用户@主机:当前目录 $; @4 F/ K8 G2 n& }9 i& H6 c
转义序列
6 C! G3 l6 p" V! j+ F    要是通过彩色化提示符来增加个性化,就要用到转义序列。 转义序列就是一个让 shell 执行一个特殊步骤的控制指令。 转义序列通常都是以 ESC 开头(这也是它的命名原因)。 在 shell 里表示为 ^[ .这种表示法需要一点时间去适应, 也可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27,等于用八进制表示的 033)0 W1 ^; W9 b, K4 D
代码:; Y. Z/ Z' d1 x8 t1 P% Q  w/ 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 \]"
7 x% D: m1 z0 H2 W" W: S最外边的"\[    \]"是为了把转义序列的字符串括起来,防止转义序列的文本显示在 shell 里占用太多的空间。9 y2 n$ }; L& R3 G' X/ k+ s9 a
\033 声明了转义序列的开始,然后是 [ 开始定义颜色。 后面的 0 定义了默认的字体宽度,接着的中间的数字定义字符颜色。最后面的数字定义了字符背景色。字母m是定义本身所必须的,字母m后面的字符就是你想改变的字符了。
6 n, g* e9 j+ d6 C6 O. n0 \ 可选颜色:红色、绿色、黄色、蓝色、洋红、青色和白色。 他们对应的颜色代码是:30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)。4 O0 F8 r# z. l1 |' o
用同样色方法设置背景色,不过要把第一个数字“3”替换成“4”, 例如 40、41、42、43、44、45、46、47。
/ |+ U4 h5 p9 T$ X" X2 D4 R# T比如上面我的定义中: 最后显示的结果是在$号之前的字符全部用一个浅绿色的中括弧扩起来。$字符 显示为红色。后面的输入显示为高亮浅绿色。在括弧里面,用户名@主机显示为深绿色,路径显示为洋红。5 J5 u6 W  A: s/ C4 N5 i/ A: A
用代码解释:
. P2 m0 `$ q* V. dPs1 ="\[                                                  -------------> 最外面的括弧, o, k6 `7 x, U& A
                 \033[1;32;40m[
8 J% V" w# c7 A$ d  G                                               ----> 定义最右边的" [ " ;1:字体宽度,好像有加亮功能。8 s$ R( t! {; {' N; |5 O" l
                                                                                              32:字符颜色。32表示绿色。
9 o2 b- k4 x' ~& n& m4 d                                                                                              40:背景色,40表示黑色。
  N' c( S; l& L" |; C) e& D- F                \033[0;32;40m\u@\h:7 i. {0 ~; I& M  \: V
                                                --------->定义右边的 \u@\h:  这几个字符颜色。
5 k) F, z, \) c( j# P4 ~5 o                                                                                            0: 默认字体宽度。$ ~; U$ |/ {' g3 j
                                                                                             32:字符颜色。绿色。7 t" ^' z: U1 m6 [4 M
                                                                                             40:  背景颜色。黑色。
% R# P5 E% q. p' E& E                   \033[1;35;40m\w
; B. I2 [1 U/ t( R* m) X9 w* W                                                  ---------> 定义右边的 \w  (路径颜色) 。
7 C0 s4 P/ J6 X$ v9 }1 l                                                                                             1:字符宽度。加亮。  U" @. M) d" [0 o
                                                                                             35:字符颜色。洋红。
# s5 N: O% X! ?! M0 S0 I                                                                                             40:背景色。黑色。9 y  ?9 z, Z5 d) A1 R
                     \033[1;32;40m]
; O/ x. m+ k: i  G                                                  ---------> 定义右边的  ]  字符。跟前面的   [   字符使用同一效果。
! b* I, Q# i2 q* s                     \033[1;31;40m\$
. h; ~: m/ L( G$ Q0 A8 i/ _                                                   ---------> 定义了  $  字符 为红色。转义字符,所以前面加了 \ .# Z& z2 r6 ~9 C' U
                                                                       颜色都跟前面差不多。相信大家都发现规律了。$ O, f/ C& i  \4 y9 v
                      \033[1;32;40m  Z: n8 W& l  u  H' }# E1 G+ y
                                                  ----------> 这个定义了你在命令行要输入命令显示的颜色。
, c: j- |( |6 y8 O                       \]"0 E/ c. I; V1 W! i0 G$ c/ a
                                                  -----------> 字符串结束括弧。
1 K7 ~9 S* W$ c. G: t7 C  ?+ [( Y这个就是上面例子的详细定义内容。3 u* d9 B0 O# F% Q2 j4 j
其 实我的是没有关闭颜色转义序列,让自己输入的字符也改变颜色,整天看这黑白屏幕不爽哇!!如果不想改变输入颜色的话,用 \033[0m 关闭转义序列, \033[0m 是 shell 的默认颜色。按照上面的例子来说就是在 \]" 前面加上 \033[0m 即可。9 Y8 {9 i8 H# t3 M" n
够简单吧?7 C5 C  }& V. ^
看看root下的shell:
$ H- S' `" k% x9 prootshowG+ U% J5 |2 c, g4 ?8 j7 ^) {
这个也不错,是 Nico Golde的:4 W- ]2 j& V- U1 \
PS1="\[\033[0;37;44m\u@\033[0;32;43m\h:\033[0;33;41m\w$\033[0m\]"
$ A1 h6 t$ d# z' ^( ]9 x& z8 _/ G7 ^7 Z# q; n/ i
发表于 2017-1-5 20:09 | 显示全部楼层
用linux的,一般不会搞得那么复杂
回复

使用道具 举报

 楼主| 发表于 2017-1-5 23:30 | 显示全部楼层
devcang 发表于 2017-1-5 20:09. B% b, Z! }; D, t$ Y& f, R1 C
用linux的,一般不会搞得那么复杂
; o& `& z5 K. \8 e4 f. i
没关系有兴趣的可以多了解一下
5 D* x2 n& G' l8 [0 I; I/ `
回复

使用道具 举报

本版积分规则

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

GMT+8, 2025-10-28 03:17 , Processed in 0.030951 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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