如何在FreeBSD / cshrc上为提示添加颜色?

时间:2012-08-21 21:21:19

标签: freebsd csh tcsh

我负责管理一堆服务器,我想在每个服务器上设置我的提示,这样我就不会对我登录的位置感到困惑。

我已编辑了.cshrc个文件并将其放入其中:

set prompt=`whoami`@`hostname -s`:$cwd'$ '

但是我想给那个提示加上颜色,以便它更突出。也许绿色与白色文字或东西。我怎样才能做到这一点?我对shell语法不是很熟悉。

我正在使用Ubuntu附带的标准终端进行SSH连接,如果这是相关的。

3 个答案:

答案 0 :(得分:12)

This page有一个很好的解释,虽然csh的语法略有不同。这就是我想出的:

set prompt="%{\e[32;1m%}%n%{\e[37m%}@%{\e[33m%}%m%{\e[37m%}:%{\e[36m%}%~%{\e[37m%}"\$"%{\e[0m%} "
# root variation:
set prompt="%{\e[31;1m%}root%{\e[37m%}@%{\e[33m%}%m%{\e[37m%}:%{\e[36m%}%/%{\e[37m%}#%{\e[0m%} "

更新:我在此处的上一个提示在您更改目录时实际上没有更新。使用%n%~%m代替$cwdpwd实际更新。 see here

%{ ... %}表示之间的东西应该取0宽度 \e[ ... m指定颜色和粗体。 \e转义似乎有必要的[(我相信它等同于\033),m表示结束。

使用0作为颜色重置为默认值。

如果要设置颜色和背景,只需使用分号分隔数字即可。使用1启用粗体。

咨询此表格以选择颜色:

http://www.funtoo.org/images/1/1c/Colortable.gif

例如,“Hello World”以粗体显示,红色背景上的青色为%{\e[36;41;1m%}Hello World%{\e[0m%}

答案 1 :(得分:3)

据我所知,FreeBSD默认带有tcsh。看看examples

另外list for other shells也可用(bash, csh ,tcsh,ksh等)。取自该链接并使用tcsh进行测试(我没有安装csh):

  

要为提示设置颜色,您需要在提示中放置此符号。 %{\033[Xm%}

     

某些颜色需要分号才能显示。黄色[...]为1; 33不使用仅33或它会变成棕色。如果您有0; 31,则不需要放置0。

颜色为ANSI。看看ANSI colours list;只需使用颜色代码替换X

X = 0重置颜色:%{\033[0m%}

答案 2 :(得分:1)

# Add these lines to your ~/.cshrc.mine file on the linux grace machines...

# Colors!
set     red="%{\033[1;31m%}"
set   green="%{\033[0;32m%}"
set  yellow="%{\033[1;33m%}"
set    blue="%{\033[1;34m%}"
set magenta="%{\033[1;35m%}"
set    cyan="%{\033[1;36m%}"
set   white="%{\033[0;37m%}"
set     end="%{\033[0m%}" # This is needed at the end... :(

# Setting the actual prompt

set prompt="${green}%n${blue}@%m ${white}%~ ${green}%%${end} "

# Clean up
unset red green yellow blue magenta cyan yellow white end