一、前置预备知识
PS1是Linux终端用户的一个环境变量,用来定义命令行提示符的参数。
-
在~/.bashrc中修改PS1的环境变量可以修改主机提示符
常规设置参数
PS1是主提示符变量,也是默认提示符变量。默认值[\u@\h \W]\$,显示用户主机名称工作目录。
基本上通过设置PS1来定义命令行提示字符即可,最常用的需求就是显示登录的用户名、主目录、主机名等等。
$export PS1='[\u@\h \W]\$ \n\$' [yupei.syp@i22d01224 model]$ $
- PS1变量可以使用的参数值有如下:
参数 | 描述 |
---|---|
/d | 代表日期,格式为weekday month date,例如:”Mon Aug 1” |
/H | 完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux |
/h | 仅取主机的第一个名字,如上例,则为fc4,.linux则被省略 |
/t | 显示时间为24小时格式,如:HH:MM:SS |
/T | 显示时间为12小时格式 |
/A | 显示时间为24小时格式:HH:MM |
/u | 当前用户的账号名称 |
/v | BASH的版本信息 |
/w | 完整的工作目录名称。家目录会以 ~代替 |
/W | 利用basename取得工作目录名称,所以只会列出最后一个目录 |
/# | 下达的第几个命令 |
/$ | 提示字符,如果是root时,提示符为:# ,普通用户则为:$ |
/[ | 字符”[“ |
/] | 字符”]” |
/! | 命令行动态统计历史命令次数 |
- PS1颜色设置参数
在PS1中设置字符颜色的格式为:\[\e[F;Bm\]........\[\e[0m\] 其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47,\[\e[0m\]作为颜色设定的结束。
颜色对照表:
F B
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色
只需将对应数字套入设置格式中即可。
比如要设置命令行的格式为绿字黑底(\[\e[32;40m\]),显示当前用户的账号名称(\u)、主机的第一个名字(\h)、完整的当前工作目录名称(\w)、24小时格式时间(\t),可以直接在命令行键入如下命令:
$export PS1='[\[\e[32;40m\]\u@\h \w \t]$ \[\e[0m\]'
[yupei.syp@i22d01224 ~/wly.dev/model 09:46:47]$
二、显示git分支提示
- 基于上面PS1的基础知识进行配置PS1的设置,如下
function git_branch {
branch="`git branch 2>/dev/null | grep "^\*" | sed -e "s/^\*\ //"`"
if [ "${branch}" != "" ];then
if [ "${branch}" = "(no branch)" ];then
branch="(`git rev-parse --short HEAD`...)"
fi
echo " → $branch"
fi
}
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\[\033[01;32m\]$(git_branch)\[\033[00m\]\n\$'
- 效果图