详细介绍了如何配置 bashrc,使得命令行的提示符更美观,包括当前路径、时间、用户、服务器名称等
常用显示参数
\d
:代表日期,格式为weekday month date,例如:”Mon Aug 1”\H
:完整的主机名称\h
:仅取主机的第一个名字\t
:显示时间为24小时格式,如:HH:MM:SS\T
:显示时间为12小时格式\A
:显示时间为24小时格式:HH:MM\u
:当前用户的账号名称\v
:BASH的版本信息\w
:完整的工作目录名称\W
:利用basename取得工作目录名称,所以只会列出最后一个目录\#
:下达的第几个命令\$
:提示字符,如果是root时,提示符为:#
,普通用户则为:$
\n
:换行符
可以在 bash 的 man 手册 PROMPTING 章节中查阅
颜色
PS1中设置字符颜色的格式为:\[\e[F;Bm\]
,其中“F“为字体颜色,编号为30到37,“B”为背景颜色,编号为40到47。可以只设置前景色或背景色。颜色表如下:
F | B | 颜色 |
---|---|---|
30 | 40 | 黑色 |
31 | 41 | 红色 |
32 | 42 | 绿色 |
33 | 43 | 黄色 |
34 | 44 | 蓝色 |
35 | 45 | 紫红色 |
36 | 46 | 青蓝色 |
37 | 47 | 白色 |
颜色格式后面跟着的就是\u
、\w
这样的显示参数,颜色格式后面的字符串都将使用该颜色,为了实现不同字段不同颜色,建议使用指定的颜色 显示参数 None颜色
这样进行划分。见下例
COLOR_GRAY='\[\e[1;30m\]' 还有一种写法是将\e写成\033
COLOR_RED='\[\e[1;31m\]'
COLOR_GREEN='\[\e[1;32m\]'
COLOR_YELLOW='\[\e[1;33m\]'
COLOR_BLUE='\[\e[1;34m\]'
COLOR_MAGENTA='\[\e[1;35m\]'
COLOR_CYAN='\[\e[1;36m\]'
COLOR_WHITE='\[\e[1;37m\]'
COLOR_NONE='\[\e[m\]'
PS1_USER="${COLOR_MAGENTA}\u${COLOR_NONE}"
PS1_HOST="${COLOR_CYAN}\h${COLOR_NONE}"
PS1_PWD="${COLOR_YELLOW}\w${COLOR_NONE}"
export PS1="${PS1_USER}@${PS1_HOST}:${PS1_PWD}\\\$ "
在颜色定制文本(例如: COLOR_GRAY='\[\033[1;30m\]'
)中,开始的\[
和结尾的\]
是必须的,否则当输入的命令很长的时候,就会回车但不换行,于是覆盖了行首的有颜色的字符串
通过Bash编程在Terminal上输出彩色的字符串,是不能添加\[
和\]
的。 例如:
function print { printf -- "$*\n"; }
function _isatty
{
typeset -l isatty=${ISATTY:-"auto"}
[[ $isatty == "yes" ]] && return 0 # yes
[[ $isatty == "no" ]] && return 1 # no
[[ -t 1 && -t 2 ]] && return 0 || return 1 # auto
}
function str2gray { _isatty && print "\e[1;30m$@\033[m" || print "$@"; }
function str2red { _isatty && print "\e[1;31m$@\033[m" || print "$@"; }
function str2green { _isatty && print "\e[1;32m$@\033[m" || print "$@"; }
function str2yellow { _isatty && print "\e[1;33m$@\033[m" || print "$@"; }
function str2blue { _isatty && print "\e[1;34m$@\033[m" || print "$@"; }
function str2magenta { _isatty && print "\e[1;35m$@\033[m" || print "$@"; }
function str2cyan { _isatty && print "\e[1;36m$@\033[m" || print "$@"; }
function str2white { _isatty && print "\e[1;37m$@\033[m" || print "$@"; }
在线网站
更多颜色参数,请参考:https://misc.flogisoft.com/bash/tip_colors_and_formatting
如果上面的方法觉得麻烦,可以使用推荐的在线制作网站:http://ezprompt.net/
参考: