linux下shell提示符可以任意配置的。
首先看看bash的配置文件,一般在用户的HOME目录下有这样几个文件1:
- .bash_history :记录了您以前输入的命令,
- .bash_logout :当您退出 shell 时,要执行的命令,
- .bash_profile :当您登入 shell 时,要执行的命令,
- .bashrc :每次打开新的 shell 时,要执行的命令。
这些文件是每一位用户的设置。系统级的设置存储在’/etc/profile’、’/etc/bashrc’及目录’/etc/profile.d’下的文件中。但您得习惯用各自的配置文件:编辑不需要’root’权限,还可以使您的设置更有个性。当系统级与用户级的设置发生冲突时,将采用用户的设置。
每次当您打开一个控制台(console)或 xterm 时,最先看到的就是提示符(prompt),类似于:
account@hostname ~ $
在默认设置下,提示符将显示您的用户名、主机名(默认是’localhost’)、当前所在目录(在Unix中,’~’表示您的home目录)。
按照传统,最后一个字符可以标识您是普通用户($
),还是’root’(#
)。
您可以通过 $PS1
, $PS2
变量来设置提示符,$PS2
是当在多行内输入一个命令时,换行后,出现的提示符。命令
andrew@ubuntu:~/lhj-github/tech$ echo $PS1
${debian_chroot:+($debian_chroot)}\u@\h:\w\$
andrew@ubuntu:~/lhj-github/tech$ echo $PS2
>
将显示当前的设定。其中可用字符的含义在 man bash 的’PROMPTING’部分有说明,PROMPTING部分的翻译
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
|
例如一个默认的$PS1
设置如下:
andrew@ubuntu:~/lhj-github/tech$ echo $PS1
${debian_chroot:+($debian_chroot)}\u@\h:\w\$
前面这部分${debian_chroot:+($debian_chroot)}
是ubuntu一种特殊的运行程序的方式,可以参考23,和我们要讲的内容没有什么关系。后面这部分\u@\h:\w\$
就是shell prompting的配置了,可以根据上面的内容翻译出来。我现在的这个配置,显示出来就像这个样子了:
andrew@ubuntu:~/lhj-github/tech$
前景 | 背景 | 颜色 |
---|---|---|
30 | 40 | 黑色 |
31 | 41 | 紅色 |
32 | 42 | 綠色 |
33 | 43 | 黃色 |
34 | 44 | 藍色 |
35 | 45 | 紫紅色 |
36 | 46 | 青藍色 |
37 | 47 | 白色 |
代码 | 意义 |
---|---|
0 | OFF |
1 | 高亮显示 |
4 | underline |
5 | 闪烁 |
7 | 反白显示 |
8 | 不可见 |
然后就可以设置prompting的颜色了,最简单的方法是在HOME目录下的.bashrc文件添加以下配置(这种方法只会影响当前用户), 例如我现在的设置为
export PS1="\w\e[32m\$ \e[0m"
前面部分\e[32m
是设置提示符的颜色,后面的\e[0m
是恢复后面命令行输入输出的颜色,如果不用这个的话,所有的输入输出都会受到影响。
当然也可以配置一个多个属性的,只需要用分号隔开就可以了,这是一个例子:
export PS1="\w\e[32;40;4;1;7m\$ \e[0m"
我使用的是ubuntu server 64 12.04,shell用的是bash,在配置的过过程中,唯独只有闪烁功能好像没有起作用,如果有朋友解决了这个问题麻烦给我说一下。
在学习这个的过程中,我还找到了一篇关于提示符配置的不错的博文,大家也可以阅读一下。
python 输出有颜色的字符
也可以使用python输出有颜色的字符,下面是例子代码
1 2 |
|