用过终端的朋友肯定对默认的提示符 localhost:~ Meniny$ 或者 [Meniny@localhost ~]$ 很熟悉,现在我们来了解一下如果修改这个提示符的内容,以 bash 为例。
自定义命令提示符内容
在 UNIX/Linux 系统中,有一个变量叫做 PS1,我们要修改的内容就是它,首先来看一下它默认的内容,以 OS X 为例:
localhost:~ Meniny$ echo $PS1
\h:\W \u\$
你可以看到 PS1 中有很多转义符号,下面我们来了解一下 FC4 环境下这些转义符号所代表的意义:
| \d | 日期,格式为 年 月 日 | 
|---|---|
| \H | 完整主机名 | 
| \h | 缩写主机名 | 
| \t | 时间,24小时制,格式为 HH:MM:SS | 
| \T | 时间,12小时制 | 
| \A | 时间,24小时制,格式为 HH:MM | 
| \u | 当前用户名 | 
| \v | bash版本 | 
| \w | 工作目录, Home目录用~代替 | 
| \W | 利用 basename取得工作目录,只列出最后一个目录 | 
| \# | 命令编号 | 
| \$ | 提示字符,用户为 root时显示#,普通用户则显示$ | 
如上表,我们只需要使用自己需要的转义字符赋值给 PS1 即可,例如:
localhost:~ Meniny$ PS1='\t \h:\W \u\$ '
18:00:00 localhost:~ Meniny$
自定义命令提示符颜色
你一定和我一样,无法满足于仅仅命令提示符的内容,那么接下来我们再来修改它的颜色,这一操作与前面的类似,仍需要修改 PS变量,配置颜色的格式为:
\[\e[F;Bm\]变色部分\[\e[m\]
其中 F 的前景色,取值为 30 ~ 37;B 为背景色,取值为 40 ~ 47。
| F | B | 颜色 | 
|---|---|---|
| 30 | 40 | 黑色 | 
| 31 | 41 | 红色 | 
| 32 | 42 | 绿色 | 
| 33 | 43 | 黄色 | 
| 34 | 44 | 蓝色 | 
| 35 | 45 | 紫色 | 
| 36 | 46 | 青色 | 
| 37 | 47 | 白色 | 
此外还可以定义一些特殊显示样式:
| 0 | 默认样式 | 
|---|---|
| 1 | 高亮 | 
| 4 | 下划线 | 
| 5 | 闪烁 | 
| 7 | 反白 | 
| 8 | 不可见 | 
例如要关闭颜色输出,可通过使用 \e[0m\]变色部分\[\e[m\] 实现。
好了,举个栗子,将 localhost:~ Meniny$ 中的 localhost 部分变为绿色,~ 部分变为粉色,Meniny 部分变为黄色,: 和 $ 部分保持默认颜色:
localhost:~ Meniny$ PS1='\[\e[1;32m\]\h:\W\[\e[m\] \[\e[1;33m\]\u\[\e[m\]\[\e[0m\]$ \[\e[m\]'
localhost:~ Meniny$
保存配置
前面两部分的修改内容,都只是暂时性的,如果你想要让他们永久生效,就需要将它们定义到文件中,仅以 OS X 为例:
vi ~/.bash_profile
按 i 进入编辑模式,输入前面的指令(包括颜色与显示内容),例如:
PS1='\[\e[1;32m\]\h:\W\[\e[m\] \[\e[1;33m\]\u\[\e[m\]\[\e[0m\]$ \[\e[m\]'
如果你希望在开启子 shell 后仍然显示同样的效果,那么额外添加 export 关键字,也即:
export PS1='\[\e[1;32m\]\h:\W\[\e[m\] \[\e[1;33m\]\u\[\e[m\]\[\e[0m\]$ \[\e[m\]'
按 ⎋ 输入 :wq 回车以保存并退出编辑器:
source ~/.bash_profile
 李二狗 — @Meniny
                李二狗 — @Meniny
             
            
             
                 
                