在bash配置文件中更改提示的颜色

时间:2016-08-30 16:21:19

标签: bash terminal iterm

我正在尝试将终端中提示的颜色更改为用户在开始时的绿色文本并且白色~

目前我的.bash_profile文件配置方式如下:为用户名提供黄色,为~提供粉红色

PS1='\e[33;1m\u@\h: \e[31m\W\e[0m\$'

有谁知道如何修改上面的内容以将颜色更改为绿色和白色?

谢谢!

4 个答案:

答案 0 :(得分:2)

您希望更改ANSI escape sequences,特别是colors

\e[...m采用以分号分隔的代码列表来操作以下文本的显示方式。 33表示黄色前景文本,1表示粗体文本,31表示红色前景文本,0表示将所有值(前景色和背景颜色,样式等)重置为其终端默认值。< / p>

# Make text yellow and bold, then make it red (keeping it bold)
# and finally restore the default
PS1='\e[33;1m\u@\h: \e[31m\W\e[0m\$'

要使用绿色/白色而不是黄色/红色,请将33更改为32,将31更改为37.此外,请确保在\[...\]内的屏幕上包含不占用任何空间的字符,以便shell可以正确确定提示的长度。

PS1='\[\e[32;1m\]\u@\h: \[\e[37m\]\W\[\e[0m\]\$'

这假设您的终端了解ANSI转义序列;更便携的方法是使用tput输出您的实际终端使用的代码:

PS1='\[$(tput bold; tput setaf 2)\u@\h: \[$(tput setaf y)\]\W$(tput sgr0)\$ '
顺便提一下,{p> zsh使这更容易;它有内置的转义,用于以与终端无关的方式改变颜色:

# 1. Everything between %B and %b is in bold
# 2. Everything between %F{x} and %f is in a different color;
#    x can be a color name, and you can switch from one
#    color to another without using %f
# 3. zsh is smart enough to account for built-in escapes when
#    computing the prompt lenght, so no equivalent of \[...\]
#    is needed
# 4. %n is the same as \u
# 5. %m is the same as \h
# 6. %~ is roughly the same as \W
# 7. %# is roughly the same as \$
PS1='%B%F{green}%n@%m: %F{white}%~%b%f%# '

答案 1 :(得分:1)

PS1='\e[32;1m\u@\h: \e[37m\W\e[0m\$'

[后面的数字是颜色代码。 See this reference

答案 2 :(得分:0)

这种方法比其他方法有两个好处:

  1. 它使用\[和``] to prevent character count problems with CTRL-A`编辑包裹的行来包含转义序列
  2. 它使用tput来更改颜色,以便更多地自我记录正在做的事情:

    PS1='\[$(tput setaf 2)\]\u@\h: \[$(tput setaf 7)\]\W\[$(tput sgr0)\]\$'

答案 3 :(得分:0)

要更改每个部分中提示的颜色,请尝试使用此简单的仓库:

https://github.com/joenmarz/bashrc-alias

您可以更改每个提示部分的颜色,例如:

  • 用户名
  • “ @”符号
  • 主机名
  • 时间
  • 方括号“ [”和“]”
  • root指示器(root用户为#,非root用户为$)

您的提示外观如下:

[用户名@主机名00:00 AM〜/工作/目录$]

转到此文件的第33行(bashrc-alias / .bashrc)自定义每个提示部分的颜色变量:

  • open_brk_color 更改开括号颜色
  • closed_brk_color 更改右括号的颜色
  • at_color 更改'@'符号颜色
  • username_color 更改用户名颜色
  • hostname_color 更改 hostname 颜色
  • time_color 更改时间提示颜色
  • wd_color 更改工作目录提示颜色
  • ri_color 更改根指示器颜色

如何安装

  1. 将此存储库克隆到您的主目录中 git clone https://github.com/joenmarz/bashrc-alias
  2. 在现有〜/ .bash文件中添加文件路径: . /home/$USER/bashrc-alias/aliases
  3. 通过键入以下内容刷新您的.bashrc源: source ~/.bashrc

通过在每个提示部分添加一些变量,我变得更加容易。