详细介绍了如何配置 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/

参考:

https://www.jianshu.com/p/426d0eeee671

https://www.cnblogs.com/idorax/p/8270025.html

评论