【问题标题】:How to color a prompt on FreeBSD/cshrc?如何在 FreeBSD/cshrc 上为提示着色?
【发布时间】:2012-08-17 07:00:55
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: freebsd csh tcsh


    【解决方案1】:

    据我所知,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%}

    【讨论】:

    • 嗯,.cshrc 文件已经存在,并且编辑改变了我的提示。 tcsh 是否使用相同的文件?我怎样才能知道哪个正在运行?
    • @Mark:是的,它使用同一个文件。我的一个有一个if ($?tcsh) then 块用于 tcsh-specifics。检查使用env | grep -i shell
    • 我没这么说。他们只是没有得到很好的解释。哪个部分是颜色的开始?停止?不同的部分是什么意思?有表格或颜色供参考吗?
    【解决方案2】:

    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 启用粗体。

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


    (来源:funtoo.org

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

    【讨论】:

      【解决方案3】:
      # 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
      

      【讨论】:

        猜你喜欢
        • 2016-10-21
        • 2020-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-09
        • 1970-01-01
        • 2022-01-19
        • 2012-02-06
        相关资源
        最近更新 更多