我正在尝试将终端中提示的颜色更改为用户在开始时的绿色文本并且白色~
目前我的.bash_profile文件配置方式如下:为用户名提供黄色,为~
提供粉红色
PS1='\e[33;1m\u@\h: \e[31m\W\e[0m\$'
有谁知道如何修改上面的内容以将颜色更改为绿色和白色?
谢谢!
答案 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)
这种方法比其他方法有两个好处:
\[
和``] to prevent character count problems with
CTRL-A`编辑包裹的行来包含转义序列它使用tput
来更改颜色,以便更多地自我记录正在做的事情:
PS1='\[$(tput setaf 2)\]\u@\h: \[$(tput setaf 7)\]\W\[$(tput sgr0)\]\$'
答案 3 :(得分:0)
要更改每个部分中提示的颜色,请尝试使用此简单的仓库:
https://github.com/joenmarz/bashrc-alias
您可以更改每个提示部分的颜色,例如:
您的提示外观如下:
[用户名@主机名00:00 AM〜/工作/目录$]
转到此文件的第33行(bashrc-alias / .bashrc)自定义每个提示部分的颜色变量:
git clone https://github.com/joenmarz/bashrc-alias
. /home/$USER/bashrc-alias/aliases
source ~/.bashrc
通过在每个提示部分添加一些变量,我变得更加容易。