之前工作的时候,linux终端提示符都是现实全路径的,现在用mac工作,默认的不现实全路径,很不习惯,就自己了解了一下,发现linux的终端提示符实通过PS1设置的。
在这里给大家介绍下如何修改终端的提示,顺便介绍下提示符的颜色。
Linux系统终端提示符的特征由系统环境变量PS1(是“prompt string one” 的简写)定义。通过命令echo $PS1查看当前设置。
1.基本转义字符
PS1的值由一系列静态文本或\和转义字符序列组成,如: [\u@\h \W]\$ (可以通过 echo $PS1查看当前的值 通过 export PS1=''设置值)
Shell 提示符中用到的转义字符
\a 以 ASCII 格式编码的铃声 . 当遇到这个转义序列时,计算机会发出嗡嗡的响声。
\d 以日,月,天格式来表示当前日期。例如,“Mon May 26”
\h 本地机的主机名,但不带末尾的域名。
\H 完整的主机名。
\j 运行在当前 shell 会话中的工作数。
\l 当前终端设备名。
\n 一个换行符。
\r 一个回车符。
\s shell 程序名。
\t 以24小时制,hours:minutes:seconds 的格式表示当前时间.
\T 以12小时制表示当前时间。
\@ 以12小时制,AM/PM 格式来表示当前时间,例如“10:51 PM”。
\A 以24小时制,hours:minutes 格式表示当前时间。
\u 当前用户名。
\v shell 程序的版本号,例如4.3。
\V shell 程序的版本号,例如4.3.11。
\w 当前工作目录名。
\W 当前工作目录名的最后部分。
\! 当前命令的历史号。
\# 当前 shell 会话中的命令数。
\$ 这会显示一个"$"字符,除非你拥有超级用户权限。在那种情况下, 它会显示一个"#"字符。
\[ 标志着一系列一个或多个非打印字符的开始。这被用来嵌入非打印的控制字符,这些字符以某种方式来操作终端仿真器,比方说移动光标或者是更改文本颜色。
\] 标志着非打印字符序列结束。
直接执行 export PS1="[\u@\h \W] \$ " 就可以把终端显示的改为 username@hostname workpath
2 颜色设置
在PS1中设置字符序列颜色的格式为:[\e[F;Bm]
其中“F”为字体颜色,编号30~37;“B”为背景色,编号40~47。
下面看下颜色表:
前景背景 颜色
------------------------
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色
效果控制代码:
代码 意义
-------------------------
0 OFF
1 高亮显示
4 underline
5 闪烁
7 反白显示
8 不可见
修改提示符颜色示例
$ PS1="\[\e[32m\]#\##\[\e[1;31m\]\u@\[\e[36m\]\h \w]\$\[\e[m\"
1、‘\[\e[32m\]’用来设置‘#\##’的颜色为绿色,#\##就是显示现在运行的是第几条命令
2、‘[\e[31m\]’设置‘\u@’的颜色为红色并高亮显示,如果指定多个数字需要用分号隔开。\u@ 就是当前登录的用户名后跟一个‘@’符号。
3、‘\[\e[36m\]’设置‘\h\w’为青蓝色,\h表示主机名的第一位,如果主机名为centos6.lampbo.org,那么就显示centos6;\w将显示完整的绝对路径。
4、‘\$’ 提示字符,如果是root时,提示符为:# ,普通用户则为:$。
5、‘\[\e[m\]’使用来关闭颜色设置的。要是你没有这个的话;那么,你的命令提示符,包括你通过命令提示符输出的东西都是和最后一次的颜色设置相同。
6、为了能够在启动和登录是可以保持刚刚设置的变量,需要将PS1的设置加入到用户home目录的.bashrc文件后。