每次执行命令时,我都很难找到上一条命令的结果的起点。所以我想让默认行“Arthur-Mac-mini...”改变颜色,我该怎么做?
谢谢!
答案1
如何更改 iTerm2 中默认标题的颜色
您可以通过修改PROMPT_COMMAND
变量来实现这一点。
这个变量的内容并不像 那样只是一个字符串PS1
。它实际上是在 bash 显示提示符之前执行的命令。
如何自定义命令提示符
定制
PROMPT_COMMAND
更好的方法是使用变量
PROMPT_COMMAND
;这个变量的内容不仅仅是一个字符串,就像 一样PS1
。它实际上是在 bash 显示提示之前执行的命令。为了尝试一下,让我们将其添加到我们的.bashrc
:PROMPT_COMMAND='echo "comes before the prompt"'
我们在这里使用
echo
命令;如果您不熟悉它,只需向其传递一个字符串,它就会将其写入终端。它本身并不是非常有用(尽管您可以使用它来查看变量:)echo $PS1
,但与其他命令一起使用时效果很好,因此请显示它们的输出。让我们在这里做一些更有用的事情。让我们编写一个将分配给的 bash 函数
PROMPT_COMMAND
。试试这个:print_before_the_prompt () { echo "comes before the prompt" } PROMPT_COMMAND=print_before_the_prompt
如果您使用此功能,您应该不会看到提示与我们上面的提示有什么不同。现在,让我们让它变得有用。
print_before_the_prompt () { echo "$USER: $PWD" } PROMPT_COMMAND=print_before_the_prompt PS1='->'
print_before_the_prompt
后来被修改以给提示添加颜色。
...
添加一些颜色
看起来不错!但让我们更进一步。让我们给它添加一些颜色。我们可以使用一些特殊代码来更改终端中文本的颜色。使用实际代码可能相当令人生畏,所以我喜欢复制此颜色变量列表并将其添加到我的 .bashrc 文件的顶部:
txtblk='\e[0;30m' # Black - Regular txtred='\e[0;31m' # Red txtgrn='\e[0;32m' # Green txtylw='\e[0;33m' # Yellow txtblu='\e[0;34m' # Blue txtpur='\e[0;35m' # Purple txtcyn='\e[0;36m' # Cyan txtwht='\e[0;37m' # White bldblk='\e[1;30m' # Black - Bold bldred='\e[1;31m' # Red bldgrn='\e[1;32m' # Green bldylw='\e[1;33m' # Yellow bldblu='\e[1;34m' # Blue bldpur='\e[1;35m' # Purple bldcyn='\e[1;36m' # Cyan bldwht='\e[1;37m' # White unkblk='\e[4;30m' # Black - Underline undred='\e[4;31m' # Red undgrn='\e[4;32m' # Green undylw='\e[4;33m' # Yellow undblu='\e[4;34m' # Blue undpur='\e[4;35m' # Purple undcyn='\e[4;36m' # Cyan undwht='\e[4;37m' # White bakblk='\e[40m' # Black - Background bakred='\e[41m' # Red badgrn='\e[42m' # Green bakylw='\e[43m' # Yellow bakblu='\e[44m' # Blue bakpur='\e[45m' # Purple bakcyn='\e[46m' # Cyan bakwht='\e[47m' # White txtrst='\e[0m' # Text Reset
这种疯狂的做法是有一定道理的:第一组启用正常着色。第二组启用粗体着色。第三组启用下划线着色。第四组启用背景着色。最后一组将着色重置为正常。所以,让我们使用这些吧!
print_before_the_prompt () { printf "\n $txtred%s: $bldgrn%s \n$txtrst" "$USER" "$PWD" }
$txtred
在这里,我在第一个%s
和$bldgrn
第二个之前添加了%s
;然后,在最后,我重置了文本颜色。您必须这样做,因为一旦您设置了颜色,它将一直保持,直到您使用新颜色或重置颜色。您还会注意到,在设置变量时,我们不会在它前面加上美元符号;但在使用变量时我们会使用美元符号:这就是 bash 变量的工作方式。这给了我们以下内容: