我正在尝试将终端提示符的颜色更改为绿色文本,以便在开始时为用户提供白色~
目前,我的.bash_profile文件配置如下,为用户名提供黄色,为~
提供粉色。
PS1='\e[33;1m\u@\h: \e[31m\W\e[0m\$'
有人知道如何修改上述代码以将颜色更改为绿色和白色吗?
directory$ touch index.html
。 - user6002037directory $
。(保留斜线和美元符号在一起。) - bishop\e[...m
接受一个分号分隔的代码列表,用于控制以下文本的显示方式。 33
代表黄色前景文本,1
代表粗体文本,31
代表红色前景文本,而0则将所有值(前景和背景颜色、样式等)重置为终端默认值。# 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\$'
\[...\]
中,以便shell可以正确确定提示符的长度。PS1='\[\e[32;1m\]\u@\h: \[\e[37m\]\W\[\e[0m\]\$'
tput
输出实际终端使用的代码:PS1='\[$(tput bold; tput setaf 2)\u@\h: \[$(tput setaf y)\]\W$(tput sgr0)\$ '
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%# '
要更改每个部分提示符的颜色,请尝试使用这个简单的存储库:
https://github.com/joenmarz/bashrc-alias
您可以更改每个提示部分的颜色,例如:
您的提示将如下所示:
[username@hostname 00:00 AM ~/working/directory $]
转到此文件的第 33 行 (bashrc-alias/.bashrc) 自定义每个提示部分的颜色变量:
git clone https://github.com/joenmarz/bashrc-alias
. /home/$USER/bashrc-alias/aliases
source ~/.bashrc
我通过为每个提示部分添加一些变量使其更加简单。
这种方法比其他方法有两个好处:
\[
和 \]
来括起转义序列,以避免在编辑换行后的行时出现字符计数问题。它使用 tput
来更改颜色,使得正在执行的操作更加自我记录:
PS1='\[$(tput setaf 2)\]\u@\h: \[$(tput setaf 7)\]\W\[$(tput sgr0)\]\$'
bash
还是zsh
? - chepner/bin/bash
。 - user6002037