【问题标题】:Changing Color of Linux Terminal Directory shown on command line [closed]更改命令行上显示的 Linux 终端目录的颜色 [关闭]
【发布时间】:2021-12-07 08:50:56
【问题描述】:

我正在尝试在我的 Macbook Pro 上自定义终端颜色。使用终端应用程序,我调整了对背景颜色、文本的偏好,并更改了 ANSI 颜色。我还在~/.bash_profile 文件中为ANSI 颜色指定export CLICOLOR=1export LSCOLORS=GxFxCxDxBxegedabagacad,然后获取它。当我使用ls 命令时,它会以我想要的正确颜色(蓝色,如图所示)列出目录。但是,如果我 cd 进入一个目录,则命令行上的目录路径不是我指定的 ANSI 颜色之一(它是紫色,如图所示)。为了将该颜色设置更改为与ls 相同的蓝色,我还需要进行其他更改吗?我不太了解 bash 和 ANSI 颜色,因此如果我错误地使用了某些术语,我深表歉意。 Terminal Example Picture Here
ANSI Color Settings Here

【问题讨论】:

  • Unix & LinuxSuper User 更适合询问有关配置和使用 UNIX 工具的问题。 Stack Overflow 仅针对编写软件的问题。
  • 也就是说——ANSI 颜色是一个旧的和有限的规范;早期版本只有 3 或 4 位数据,因此仅限于 8 或 16 色的调色板 total (GNU ls 的手册页暗示它只实现了 16 色原始调色板)。拥有一个终端支持的颜色比传统的 ANSI 颜色规范所能支持的颜色多得多,这并不奇怪。
  • 如果您希望软件帮助指导您设置使用超过手册页描述的 16 色调色板的 LSCOLORS 值,您可以从 github.com/sharkdp/vivid 开始

标签: bash terminal ls


【解决方案1】:

但是,如果我 cd 进入一个目录,则命令行上的目录路径不是我指定的 ANSI 颜色之一(它是紫色,如图所示)。

命令行提示符不关心LSCOLORS,它的外观由变量PS1定义。要获取您当前的 PS1 值,请使用:

declare -p PS1

我的看起来像这样(你的可能不同):

declare -- PS1="\\[\\e]0;\\u@\\h:\\w\\a\\]\\[\\e[1;32m\\]\\u@\\h\\[\\e[1;34m\\] [\\w] \\\$\\[\\e[0m\\] "

要更改目录部分的颜色,请在 [\\w] 之前修改转义序列,例如将\\[\\e[1;34m\\] 更改为\\[\\e[1;33m\\] 为黄色。

要使更改永久生效,请将新的 PS1 设置也添加到您的 .bash_profile

【讨论】:

    猜你喜欢
    • 2013-01-07
    • 2014-03-01
    • 1970-01-01
    • 2013-07-03
    • 2020-10-09
    • 1970-01-01
    • 2018-06-06
    • 1970-01-01
    • 2013-12-16
    相关资源
    最近更新 更多