在bash下,命令行提示符的格式是由PS1这个环境变量来设置的。通常在/etc/bashrc会有一个系统级别的设置,例如我本机/etc/bashrc中的:
PS1="[/u@/h /W]//$ "
/u,/h,/W分别代表用户名,主机名和当前目录名。/$的含义是如果用户为root则输出#,否则输出$。
因此在这种PS1的设置下,终端提示符通常如下:
[leconte@localhost ~]$
当然,用户可以~/.bashrc中自定义自己的提示符样式以满足自己的习惯。PS1支持的标示符很多,常用的有以下一些:
/d:日期,例如Tue May 26
/h:主机名
/H:机器名
/j:当前shell的job数
/t:/T/@/A:四种格式显示的当前时间
/u:当前用户名
/w/W:当前工作目录
/!:历史命令条数
/e:转义字符
值得一提的是可以通过/e结合终端的颜色支持实现提示符的彩色化,通过/e[开头,m结尾的格式可以定义一种颜色,例如/e[32;40m代表将当前色设置为绿色,如图:
可以看到提示符变成了绿色的,这个PS1的设置为[/e[32;40m/u@/w]/$/e[0m,我们来从前往后解析它,/e[32;40m代表将当前颜色改为绿色,因此它之前输出的[是白色,之后的leconte@~]$都是绿色,/e[0m代表恢复默认颜色,因此随后输出的ls的颜色为默认的白色。
这样以来,通过ascii颜色就可以定制出满足自身审美和需求的终端提示了,hoho