使用 gnome-terminal (默认)并添加以下内容~/.bashrc
来为终端着色
# should be on the output of commands, not on the prompt
46# force_color_prompt=yes
47
48 if [ -n "$force_color_prompt" ]; then
49 if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
50 # We have color support; assume it's compliant with Ecma-48
51 # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
52 # a case would tend to support setf rather than setaf.)
53 color_prompt=yes
54 else
55 color_prompt=
56 fi
57 fi
58
59 RED='\[\033[01;31m\]'
60 YELLOW='\[\033[01;33m\]'
61 GREEN='\[\033[01;32m\]'
62 BLUE='\[\033[01;34m\]'
63
64 CYAN='\[\033[01;36m\]'
65 LIGHT_CYAN='\[\033[00;36m\]'
66 WHITE='\[\033[00m\]'
67 LIGHT_GRAY='\[\033[01;37m\]'
68 COLOR_NONE='\[\e[00m\]'
69
70
71 parse_git_branch () {
72 while read -r branch; do
73 [[ $branch = \** ]] && current_branch=${branch#* }
74 done < <(git branch 2>/dev/null)
75 [[ $current_branch ]] && printf '(%s)' "$current_branch"
76 }
77
78
79 if [ "$color_prompt" = yes ]; then
80 #PS1='${debian_chroot:+($debian_chroot)}\[\033[00m\]\t \[\033[01;37m\]\u@\[\033[01;36m\]\h\[\033[01;33m\]:\[\033[00;32m\]\w\[\033[01;31m\] $(parse_git_branch)\[\033[00m\]\$ '
81 PS1="${debian_chroot:+($debian_chroot)} \\[$(tput setaf 2)\\]\t ${LIGHT_GRAY}\u@\h${GREEN}:${BLUE}\w${RED} $(parse_git_branch)${WHITE}$ "
82 else
83 PS1="${debian_chroot:+($debian_chroot)}\t${LIGHT_GRAY}\u@\h${GREEN}:\w$(parse_git_branch)\$ "
84 fi
85 PS1="$PS1${RED}"
86
87 unset color_prompt force_color_prompt
但它没有定义主机和用户名不同的颜色,而目录和命令则按定义着色
这可能是什么问题?
注意:如果注释行#87 unset color-prompt forced-color-prompt
,则分支名称不会显示在 shell 中
请参阅下面所附的截图
那么我们如何才能为主机/用户名启用颜色呢?
撤消对第 83 行所做的添加,仅保留 git 分支名称;如果终端不支持颜色,则会显示以下提示:
然后在第 81 行设置颜色提示;为了举例说明,我将用户名设置为黄色、将设置
@
为白色、将主机名设置为青色(我将使用${GREEN}
而不是\\[$(tput setaf 2)\\]
来保持与提示其余部分的一致性):您可以考虑交换命令的 ANSI 颜色转义代码,
tput
以在安装的系统上实现不同终端之间的更好兼容性tput
,但需要付出一点开销。