8

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

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

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

但我想为该提示着色,使其更加突出。也许是带有白色文字的绿色或其他东西。我怎样才能做到这一点?我对shell语法不是很熟悉。

如果相关的话,我正在从 Ubuntu 附带的标准终端进行 SSH 连接。

4

3 回答 3

12

这个页面有一个很好的解释,虽然语法有点不同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实际更新。看这里

%{ ... %}意味着之间的东西应该采用 0-width
\e[ ... m指定颜色和粗体。\e逃避[似乎是必要的(我相信它相当于\033),m表示结束。

用作0您的颜色以重置为默认值。

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

请参阅此表以选择您的颜色:


(来源:funtoo.org

因此,例如,红色背景上的粗体青色“Hello World”将是%{\e[36;41;1m%}Hello World%{\e[0m%}

于 2012-08-21T22:06:44.237 回答
3

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

其他 shell (bash、csh、tcsh、ksh 等)的另一个列表也是可用的。取自该链接并使用 tcsh 进行测试(我没有安装 csh):

要为提示着色,您需要将此符号放在提示中。%{\033[Xm%}.

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

颜色是ANSI。看看ANSI 颜色列表;只需X用颜色代码替换。

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

于 2012-08-21T21:25:21.370 回答
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
于 2019-11-04T23:40:15.110 回答