用过终端的朋友肯定对默认的提示符 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